引子:centos一般本身就带有iptables防火墙,一hyper-v架构centos系统的VPS由于采用网上广为流传的IPTABLES设置方法,导致无法修改ssh的22端口,如果你修改ssh端口无效,那么也可以参考本文。之前的一些centos iptables教程设置有问题,不正确的设置也许可以起到作用,但是却会增加系统的负载,不能最优的iptables配置方法,然后被各网站抄来抄去,最终就会给linux新人带来一些困扰。强烈建议采用本文的配置方法重新配置centos的iptables。 一:centos iptables的正确设置方法和禁止PING 1.清除已有iptables规则 iptables -F iptables -X iptables -Z 2.iptables的配置,这里张小三资源网采用centos官方给出的默认的防火墙规则,我们只需要添加或删除不用的端口就可以了,这样才能最大化的兼容各种环境,降低防火墙不兼容造成的负载等问题。 首先运行命令:vi /etc/sysconfig/iptables添加如下内容。 # Firewall configuration written by system-config-securitylevel # Manual customization of this file is not recommended. *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :RH-Firewall-1-INPUT - [0:0] -A INPUT -j RH-Firewall-1-INPUT -A FORWARD -j RH-Firewall-1-INPUT #准许本机localhost访问 -A RH-Firewall-1-INPUT -i lo -j ACCEPT #是否禁止ping,禁止的话可以在下面这句的开头加#号。 -A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT #允许已建立的或相关连的通行 -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #开放s.s.h的22端口(开放其它端口可以按照下面规则自己添加) -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT #开放80端口 -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT #开放ftp的21端口 -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT #除放开的端口外禁止其它端口 -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited COMMIT 3.最后保存一下 service iptables save #防止iptables机器重启失效,重启iptables自动生效,运行如下命令 chkconfig --level 345 iptables on service iptables restart 二:iptables应用 1.查看已添加的iptables规则: iptables -L 2.删除已添加的iptables规则: 将所有iptables规则按照1.2.3....进行排序,执行: iptables -L -n --line-numbers 如果要删除INPUT里序号为5的规则,执行: iptables -D INPUT 5 3.利用iptables屏蔽指定的IP: #屏蔽单个IP的命令是 iptables -I INPUT -s 123.45.6.7 -j DROP #封整个段即从123.0.0.1到123.255.255.254的命令 iptables -I INPUT -s 123.0.0.0/8 -j DROP #封IP段即从123.45.0.1到123.45.255.254的命令 iptables -I INPUT -s 124.45.0.0/16 -j DROP #封IP段即从123.45.6.1到123.45.6.254的命令是 iptables -I INPUT -s 123.45.6.0/24 -j DROP (责任编辑:IT) |