FreeSwitch防止sip攻击盗打

FreeSwitch防止sip攻击盗打

  • 1、防止SIP攻击和盗打的原因
  • 2、配置名为china的ipset
  • 3、增加中国国内的ip地址段
  • 4、ipset配置给freeswitch的端口
  • 5、重启防火墙
  • 6、china.xml位置
  • 7、注意项

1、防止SIP攻击和盗打的原因

(对于freeswitch安装在公网服务器上(比如阿里云、百度云、腾讯云、华为云等)需要对此进行安全设置),本文在centos 8系统中进行防盗打设置,其他系统也可参考类似。
原因如下:
1、服务器暴露在公网,国外IP扫描freeswitch端口,利用freeswitch盗打国际长途电话或诈骗电话,给用户造成经济损失。
2、国外IP攻击服务器,导致freeswitch不稳定,系统无法正常使用。

2、配置名为china的ipset

Putty中输入以下命令:
firewall-cmd --permanent --zone=public --new-ipset=china --type=hash:net

3、增加中国国内的ip地址段

通过linux脚本向这个ipset中增加中国国内的ip地址段,国内地址段的数据来自于http://www.ipdeny.com/ipblocks/data/countries/cn.zone,通过bash执行脚本文件(注意脚本文件要加可执行权限)
以下脚本内容:
#!/bin/bash
rm -f cn.zone
wget http://www.ipdeny.com/ipblocks/data/countries/cn.zone
for i in

(

c

a

t

c

n

.

z

o

n

e

)

d

o

f

i

r

e

w

a

l

l

?

c

m

d

?

?

p

e

r

m

a

n

e

n

t

?

?

i

p

s

e

t

=

c

h

i

n

a

?

?

a

d

d

?

e

n

t

r

y

=

(cat cn.zone) do firewall-cmd --permanent --ipset=china --add-entry=

(catcn.zone)dofirewall?cmd??permanent??ipset=china??add?entry=i >> /dev/null 2>&1
done
比如将脚本保存为ip_set_table.sh,并上传至于/usr/local目录下,如下图所示:
在这里插入图片描述
(1)、给脚本添加权限:
命令行中输入:chmod 777 ip_set_table.sh
(2)、运行脚本:
命令行中输入:./ip_set_table.sh
这步的执行比较慢,请耐心等待。

4、ipset配置给freeswitch的端口

(1)、信令控制配置
若fs的信令端口为5060,按如下配置:(备注:端口请按实际项目的端口填写)
命令行中分别输入以下两行,并执行。(只允许中国国内IP访问FS)
firewall-cmd --permanent --add-rich-rule “rule family=“ipv4” source ipset=“china” port protocol=“udp” port=“5060” accept”
firewall-cmd --permanent --add-rich-rule “rule family=“ipv4” source ipset=“china” port protocol=“tcp” port=“5060” accept”
(2)、fs RTP语音流控制配置
若fs的RTP语音流范围为:20000~20500,按如下配置:(备注:端口请按实际项目的端口填写)
firewall-cmd --zone=public --add-port=20000-20500/tcp --permanent

5、重启防火墙

按以下命令执行:
firewall-cmd --reload
service firewalld restart
配置完成,国外的攻击将被防火墙挡住。
备注:若其他应用程序端口需要开通防火墙,请按以上RTP范围控制命令执行。以下是作者的几个应用程序需要开通防火墙(实际中,请读者按照自己的应用程序端口进行设置)
1、CTI端口
firewall-cmd --add-port=23990/tcp --permanent
2、WS端口
firewall-cmd --add-port=23992/tcp --permanent
3、AES端口
firewall-cmd --add-port=23993/tcp --permanent
4、8001udp端口(IVR访问MsgEngine)
firewall-cmd --add-port=8001/udp –permanent
记住,一定要再次按以下命令执行才能生效:
firewall-cmd --reload
service firewalld restart

6、china.xml位置

地址段是保存在如下的位置中,在这个位置中会有一个china.xml的文件:
/etc/firewalld/ipsets/
在这里插入图片描述

7、注意项

Centos系统重启后,需要重新设置防火墙。

关于freeswitch的探讨与交流,欢迎大家一起踊跃参与讨论。