防火墙

防火墙

我们的星号服务器已被入侵。上周末有一些电话打到了亚洲国家。

虽然我们已经改进了网络配置,但我们仍然想确定入侵是如何进行的,我们认为我们的星号日志文件中有一些线索。

但我们不知道要寻找什么,基于默认的星号:

安装星号服务器时需要考虑哪些安全问题?

答案1

这就是我保护 Asterisk 服务器的方法,该服务器自 2006 年以来一直在运行。

防火墙

仅为必要的服务打开入站端口。(您确实必须为 RTP 流打开一个较大的范围,但这通常不是问题,因为通常没有任何东西会在该端口范围内进行监听。)

  • 22/tcpssh(当然是用于管理)
  • 4520/udpDUNDi(如果您使用 DUNDi)
  • 4569/tcpIAX2(如果您使用 IAX)
  • 5060/udpSIP 注册
  • 10000-20000/udpRTP - 媒体传输
    某些设备用于 RTP 流的端口范围要窄得多。例如,某些 Cisco(以前称为 Linksys/Sipura;零件编号以 PAP、SPA 或 WRP 开头)设备仅使用16384-16482

扩展

如果可能,请限制允许 SIP 客户端连接的 IP 地址范围。如果部署在办公室,请将端口 5060 的连接限制为电话所在位置内的 IP 地址。如果您必须接受来自不受您控制的互联网地址的连接,请考虑阻止特定国家/地区的 IP 地址范围。

不要使用 SIP 分机号码作为用户名。如果您的 SIP 客户端支持此功能,请为所有客户端指定名称。

为所有 SIP 分机设置强密码。这应该是显而易见的,但并非总是如此。

通过阅读随附的日志你之前的问题,我能够确定您有一个使用用户名定义的 SIP 扩展1,其密钥很容易猜到,攻击者第一次尝试就猜对了。该扩展可能根本没有定义密钥。

使用alwaysauthreject=yessip.conf这可以防止攻击者通过暴力破解来确定 SIP 分机是否存在。

allowguest=no在 中使用sip.conf。这可防止未经身份验证的客户端进行调用。

行政

改变全部您的 UNIX 用户、数据库和管理前端(例如 FreePBX)的默认密码。

设置bindaddr = 127.0.0.1manager.conf确保Asterisk管理接口不对外开放。

其他

安装 fail2ban。我已将其配置为在两次尝试失败后阻止,但如果您可以完全控制所有设备,使它们永远不会无法正确登录,则可以将其设置为在一次尝试失败后阻止。

如果您不需要拨打国际电话,请让您的 SIP 中继提供商在其终端禁用此功能。您还可以配置您的 asterisk 服务器不路由此类呼叫。


这应该涵盖了基础知识,并且在大多数情况下可以让你避免麻烦。如果你部署任何不寻常的服务或编写自己的自定义配置,你可能需要做一些额外的工作来确保它们的安全。

答案2

我们前段时间也遇到过类似的问题。除了 Michael Hampton 的回答之外。我们做了三件事来解决这个问题。

1)安装失败2ban。它的作用是扫描日志文件,查找密码失败尝试。如果尝试次数过多,它会对 IP 进行防火墙保护。它不仅适用于 Asterisk,还适用于 SSH 和您需要的任何服务。

2) 将您想要/不想允许的国家/地区的 IP 列入白名单或黑名单。例如,您想允许来自中国的 SIP 访问吗?您可以从以下位置获取 IP 列表尼尔软件

3) 如果您正在中继或配对上游提供商,请查看您是否可以获得每日信用额度。如果前两者中的任何一个发生故障,这将限制您从他们那里收到的账单金额。如果您确实检测到问题,至少可以在问题真正失控之前为您争取一些时间。

答案3

我会在其他答案列出的建议中添加“良好的监控”。监控系统(建议检查日志的标题是 logwatch 或 logcheck)。查看可用的星号报告工具(我不知道任何标题,但Asterisk 监控列出了一些),看看您的上游电话提供商是否可以监控您的使用情况并在通话费用意外增加时发出警报。

答案4

设置 PBX 时需要考虑四种类型的安全性:

  1. 周长
  2. Asterisk 配置
  3. 黑客检测(入侵检测)
  4. 欺诈识别

1. 周长 这种安全措施通常应用于防火墙(而不是 PBX)。大多数防火墙只是将 SIP/IAX/RTP/等数据包路由到 PBX。因此它们实际上不做任何保护(但它们至少可以阻止 SSH/telnet/等连接)。第一个(已接受的)答案引用使用 iptables 的主机(PBX)规则。不建议这样做 - 不要让攻击者越过边界保护。知道攻击者/黑客/欺诈者应该在边界被阻止。

2.Asterisk 配置 这在今天已是常识,大多数配置生成器已经为您处理了这个问题。但如果您直接使用 Asterisk,则请使用复杂的设备名称和复杂的密钥。禁用访客访问 (allowguest) 并且不允许对攻击者做出有意义的失败响应 (alwaysauthreject)。此外,请小心使用拨号命令(在 Asterisk 中),因为错误的参数可能会允许呼叫者闪断并拨打任何外线。更改所有默认密码,不要让 Asterisk 在 root 下运行,如果您确实选择使用配置生成器,也请在那里更改默认密码。

3.黑客检测(入侵检测) 像 fail2ban 这样的工具并不重要(事实上 Digium 警告用户不要将 fail2ban 用作防火墙/安全设备)。也就是说,如果您真的没有设置更多功能的技能,那么 fail2ban 也比什么都没有好。大多数人没有意识到,fail2ban 完全依赖于 Asterisk 来检测和拒绝拨号/注册尝试,然后才能禁止 IP。因此,如果攻击不会导致这些 Asterisk 错误,则 fail2ban 不会执行任何操作。(同样,使用 fail2ban 您可以在 PBX 而不是防火墙处阻止攻击者)。

现在开始真正的黑客攻击。如何知道攻击者是否使用了格式错误的 SIP 数据包?在这种情况下,请查看“呼噜”或其他 SIP 数据包分析器。如果攻击者通过大型子网轮换 IP 或 VPN IP,该怎么办?确保您的检测工具可以跟踪这一点。那么基于地理围栏的阻止 IP 呢?高级防火墙可以做到这一点,一些开源防火墙也可以做到这一点,例如“pfSense”以及专有的 Asterisk 安全系统,如“安全助理”

配置生成器(例如:FreePBX)的安全历史很差,尤其是围绕最终用户 GUI 的漏洞。如果您选择将 HTTP GUI 暴露给互联网,那么最好安装基于主机的黑客检测,例如“绊线”

4.欺诈检测 严重的黑客会拦截数据包,甚至入侵手机本身,以窃取有效凭证。如何阻止拥有有效凭证的黑客?有一些开源工具可以跟踪 SIP 通道,您可以使用它们按来源检测通道数量(编写自己的检测脚本),或者使用商业产品,例如“安全助理”跟踪拨号速率、每秒呼叫建立次数(因为欺诈者在分机/IP/中继线被关闭之前竞相利用凭证进行收费欺诈)。

如何检测特定 DID 的可疑呼叫数量,这在长途电话欺诈中很常见。“安全助理”可以追踪这些号码,甚至可以与已知用于欺诈的电话号码进行比较(即使攻击者保持其总渠道量较低)。

与 #3 类似,如果您的用户在明确界定的地理区域内操作,那么即使他们拥有有效的凭证,地理围栏扩展也会起作用。高级防火墙可以做到这一点,一些开源防火墙也可以做到这一点,例如“pfSense”以及思科和专有的 Asterisk 安全系统“安全助理”

概括 因此,总而言之,您可以而且应该做很多事情来保护您的 PBX。我在上面列出了许多开源产品,它们可以让您实现合理的安全级别(如果您的技能足够)。我还提到了一些专有工具,它们通常可以为您处理上述所有问题,但您必须花一些钱才能使用它们。但是,在您支付了第一笔 400,000 美元的电话费后,您可能会发现现在便宜意味着以后会更贵(谷歌搜索 400,000 美元的电话费 Astricon,您就会明白我的意思)

相关内容