互联网服务器禁止国外IP访问
项目上服务器在互联网环境,开放了数据库3306端口,没几天就发现被搞了,需要支付比特币? 幸运的是测试环境,没有生产数据。查了日志发现是个国外IP搞的,于是就看了很多文章,确定了用ipset和iptables的白名单控制input。基本思路就是先创建IPSET国内IP地址表,之后防火墙阻断掉表内没有地址的请求。
1. IPSET
yum install ipset // 安装ipsetipset create china hash:net hashsize 10000 maxelem 1000000// 创建地址表 ipset add china 172.18.0.0/16 ipset list china//测试添加一个段
接下来是获取国内IP地址段并导入:
vi ipset_china.sh
#!/bin/bashrm -rf cn.zonewget /ipblocks/data/countries/cn.zonefor i in `cat cn.zone`doipset add china $idone~
ipset list china // 查看是否导入成功ipset list save// 可能就是保存吧
2. iptables
service iptables statusvi /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 22 -j ACCEPT-A INPUT -m set --match-set china src -p tcp -m tcp --dport 3306 -j ACCEPT-A INPUT -s 172.16.0.0/16 -j ACCEPT-A INPUT -p icmp -j ACCEPT-A INPUT -i lo -j ACCEPT-A OUTPUT -o lo -j ACCEPTCOMMIT
service iptables restartiptables -L
喝水不忘挖井人,挂个原文章连接:就在这