使用iptables防火墙禁止某端口,开放某端口

如果您有代购或者代维服务器、PHP网站建设、程序代码修改、系统开发等需求,可以联系我购买付费服务。QQ401313302

使用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
... ...

未经允许不得转载:好玩吧 » 使用iptables防火墙禁止某端口,开放某端口