使用iptables防火墙禁止某端口,开放某端口
最近收到阿里云的安全信息通知:
尊敬的 y****@XXX.com,您的云服务器(XX.XX.XX.240)由于被检测到对外攻击,已阻断该服务器对其它服务器端口(UDP:ALL)的访问,阻断预计将在2018-XX-XX 00:44:17时间内结束,请及时进行安全自查。若有疑问,请工单或电话联系阿里云售后。
感谢您对阿里云的支持。
memcache启动命令:
memcached -d -m 10 -u root -l 10.170.115.109 -p 11211 -c 256
查找服务器负载,发现mamcache负载跑满CPU。
此服务器又是别人安装的一些项目,又不能直接kill进程。好在memcache均为内网业务所使用,决定用iptables允许内网ip访问,阻止公网的11211端口访问本机服务。
修改iptables文件
vi /etc/sysconfig/iptables #开放指定的端口 -A INPUT -m state --state NEW -m tcp -p tcp --dport 端口号 -j ACCEPT #禁止端口号 -I INPUT -p tcp --dport 端口号 -j DROP #给指定的IP开放指定的端口 -I INPUT -s ip地址 -p tcp --dport 端口号 -j ACCEPT -I INPUT -s ip地址 -p tcp --dport 端口号 -j ACCEPT #如果是允许指定的IP访问指定的端口,则先禁止此端口,然后再开放给指定的ip,顺序不能乱 保存文件、重启iptables
命令:
iptables -I INPUT -p tcp --dport 11211 -j DROP iptables -I INPUT -s 10.170.115.109 -j ACCEPT 等同于修改iptables: -A INPUT -s 10.170.115.109/32 -j ACCEPT -A INPUT -p tcp -m tcp --dport 11211 -j DROP #并且顺序很重要!!!! service iptables save service iptables restart
测试:
root@10.170.115.109:~$telnet XX.XX.XX.240 11211 【连公网的mamcache,连不上】 Trying XX.XX.XX.240... ^C root@10.170.115.109:~$telnet 10.170.115.109 11211 Trying 10.170.115.109... Connected to 10.170.115.109. Escape character is '^]'. stats STAT pid 10624 ... ...