(对于freeswitch安装在公网服务器上(比如阿里云、百度云、腾讯云、华为云等)需要对此进行安全设置),本文在centos 8系统中进行防盗打设置,其他系统也可参考类似。
原因如下:
1、服务器暴露在公网,国外IP扫描freeswitch端口,利用freeswitch盗打国际长途电话或诈骗电话,给用户造成经济损失。
2、国外IP攻击服务器,导致freeswitch不稳定,系统无法正常使用。
Putty中输入以下命令:
firewall-cmd --permanent --zone=public --new-ipset=china --type=hash:net
通过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
这步的执行比较慢,请耐心等待。
(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
按以下命令执行:
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
地址段是保存在如下的位置中,在这个位置中会有一个china.xml的文件:
/etc/firewalld/ipsets/
Centos系统重启后,需要重新设置防火墙。
关于freeswitch的探讨与交流,欢迎大家一起踊跃参与讨论。