FreeSwitch安装在云服务器禁⽌国外IP访问
项⽬上使⽤到FreeSwitch放到阿⾥云上,但是不可避免,被扫描盗打,运⽓不好,第⼀天放上去测试,就被打了2K+话费。
不管是阿⾥云,腾讯云,华为云等等,他们的ACL规则都是⽐较弱的,有项⽬曾经⽤过SBC来管制当然简单多了,不过也要⼀笔不⼩的费⽤,于是只有在系统防⽕墙上下⼿。
⾸先,扫描的基本上都是国外的IP,我们先禁⽌他们的访问,这⾥⽤到了iptables和ipset,本来我们的系统环境是CentOS7,没有iptables 的,因为7开始已经改为firewalld了。
iptables和ipset的配合使⽤先检查安装环境:
yum install ipset
yum install iptables-services
#建表
ipset create china hash:net hashsize 1024 maxelem 65536
#批量增加中国IP到ipset的china表
#以下内容保存成脚本执⾏即可,执⾏需要更改权限
#!/bin/bash
rm -
wget www.ipdeny/ipblocks/data/
for i in ``
do
ipset add china $i
done
ipset list china #查看⼀下
ipset save
#ipset命令建表和插IP数据都是直接写内存,所以需要让内存的数据持久化,各发⾏版的服务调⽤命令可能不太⼀样,这⾥⽤Redhat系列的命令
#iptables的filter表INPUT链根据需求加⼊相应的规则,以下是实例
#全部接受中国IP
-A INPUT -m set --match-set china src -j ACCEPT
#接受中国IP访问本机特定端⼝特定协议(例如5060UDP协议),freeswitch⼀般要⽤这条,直接具体到端⼝协议
-A INPUT -m set --match-set china src -p udp -m udp --dport 5060 -j ACCEPT
input命令#接受中国IP的ping响应
-A INPUT -m set --match-set china src -p icmp -j ACCEPT
service iptables save
————————————————
如果对命令不是太熟悉,可以把以下内容写到 /etc/sysconfig/iptables ⽂件⾥,增加或者修改对应的端⼝
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -m set --match-set china src -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -m set --match-set china src -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -m set --match-set china src -p udp -m udp --dport 5060 -j ACCEPT
-A INPUT -p udp -m udp --dport 16384:32768 -j ACCEPT
-A INPUT -s 172.18.0.0/16 -j ACCEPT
-
A INPUT -s x/32 -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
COMMIT
systemctl restart iptables
重启就⽣效。
最后,⼤家会发现,这种⽅式firewalld被关闭了,iptables服务起来了,实则是centos 7中已经默认不再⽀持iptables防⽕墙,⽽推荐使⽤firewalld防⽕墙。
后⾯有空再来对⽐⼀下,另外ipset是内存中存在的数据,⼀旦重启,将会被清空,个⼈建议是在脚本中启动,下⼀篇介绍⼀下。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论