编辑配置文件:
vi /etc/sysconfig/iptables
删除里边所有内容,粘贴:
*filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -s 127.0.0.1/32 -d 127.0.0.1/32 -j ACCEPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT -A INPUT -p tcp -m tcp --dport 20 -j ACCEPT -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT -A INPUT -p tcp -m tcp --dport 465 -j ACCEPT -A INPUT -p tcp -m tcp --dport 587 -j ACCEPT -A INPUT -p tcp -m tcp --dport 53 -j ACCEPT -A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-port-unreachable -A FORWARD -j REJECT --reject-with icmp-port-unreachable -A OUTPUT -j ACCEPT COMMIT
这里开放了常用的端口,可以根据自己需求酌情修改。需要注意的是一定要把你的SSH端口加进去,否则连不上SSH后果很严重。
重启iptables:
service iptables restart
以上是快捷方式,下面是设置iptables的一些指令。
清除已有iptables规则:
iptables -F iptables -X iptables -Z
开放指定端口:
允许本地回环连接
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
允许已建立的或相关连的通行
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
允许所有本机向外的访问
iptables -A OUTPUT -j ACCEPT
允许访问22端口
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
禁止其他未允许的规则访问
iptables -A INPUT -j REJECT iptables -A FORWARD -j REJECT
其中允许的端口可以根据自己需要添加,SSH端口必须开放,需要注意先设置允许的端口,最后再禁止不允许的端口,否则SSH就断开了。
屏蔽IP:
屏蔽单个IP
iptables -I INPUT -s 166.55.66.8 -j DROP
封整个段(从166.0.0.1到166.255.255.254)
iptables -I INPUT -s 166.0.0.0/8 -j DROP
封IP段(从166.55.0.1到166.55.255.254)
iptables -I INPUT -s 166.55.0.0/16 -j DROP
封IP段(从166.55.66.1到166.55.66.254)
iptables -I INPUT -s 166.55.66.0/24 -j DROP
查看已添加的规则:
iptables -L -n
参数说明:
v:显示详细信息,包括每条规则的匹配包数量和匹配字节数
x:在 v 的基础上,禁止自动单位换算(K、M)
n:只显示IP地址和端口号,不将ip解析为域名
删除已添加的iptables规则:
将所有iptables以序号标记显示:
iptables -L -n --line-numbers
删除INPUT里序号为5的规则:
iptables -D INPUT 5
保存规则:
service iptables save
设置开机启动:
chkconfig --level 345 iptables on