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 -f cn.zone
wget http://www.ipdeny.com/ipblocks/data/countries/cn.zone
for i in `cat cn.zone`
do
ipset add china $i 
done
ipset list china #查看一下
#iptables的filter表INPUT链根据需求加入相应的规则,以下是实例
#全部接受中国IP
iptables -A INPUT -m set --match-set china src -j ACCEPT
#接受中国IP访问本机特定端口特定协议(例如5060UDP协议),freeswitch一般要用这条,直接具体到端口协议
iptables -A INPUT -m set --match-set china src -p tcp --dport 5060 -j ACCEPT
iptables -A INPUT -m set --match-set china src -p udp --dport 5060 -j ACCEPT
#接受中国IP的ping响应
iptables -A INPUT -m set --match-set china src -p icmp -j ACCEPT

你可能感兴趣的:(FreeSwitch安装在云服务器禁止国外IP访问)