服务器上的iptables 防火墙设置脚本规则
完整脚本如下:
#!/bin/bash
# by www.jbxue.com
iptab="/sbin/iptables"
#----------------------- 清空所有规则 -----------------------------------#
$iptab -F
$iptab -X
$iptab -Z
$iptab -t nat -F
$iptab -t nat -X
$iptab -t nat -Z
#------------------- 拒绝默认规则之前开放SSH 端口(33169)----------------#
$iptab -A INPUT -p tcp --dport 33169 -j ACCEPT
$iptab -A OUTPUT -p tcp --sport 33169 -m state --state RELATED,ESTABLISHED -j ACCEPT
#----------------------- 拒绝所有的规则 ---------------------------------#
$iptab -P INPUT DROP
$iptab -P OUTPUT DROP
$iptab -P FORWARD DROP
#-------------------------- 打开回环设备 ----------------------------------#
$iptab -A INPUT -p tcp -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
$iptab -A OUTPUT -p tcp -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
$iptab -A INPUT -i lo -j ACCEPT
$iptab -A OUTPUT -o lo -j ACCEPT
#----------------------- 打开FTP服务端口(21)-------------------------------#
$iptab -A INPUT -p tcp --dport 21 -j ACCEPT
$iptab -A OUTPUT -p tcp --sport 21 -m state --state RELATED,ESTABLISHED -j ACCEPT
#--------------------------- 开放SMTP 服务端口(25) -------------------------#
$iptab -A INPUT -p tcp --dport 25 -j ACCEPT
$iptab -A OUTPUT -p tcp --sport 25 -j ACCEPT
$iptab -A INPUT -p tcp --sport 25 -j ACCEPT
$iptab -A OUTPUT -p tcp --dport 25 -j ACCEPT
#------------------------ 开放DNS解析服务端口(53) ---------------------------#
$iptab -A INPUT -p udp --dport 53 -j ACCEPT
$iptab -A OUTPUT -p udp --sport 53 -j ACCEPT
$iptab -A INPUT -p udp --sport 53 -j ACCEPT
$iptab -A OUTPUT -p udp --dport 53 -j ACCEPT
#------------------- 开放http 服务端口(80)--------------------------------#
$iptab -A INPUT -p tcp --dport 80 -j ACCEPT
$iptab -A OUTPUT -p tcp --sport 80 -m state --state RELATED,ESTABLISHED -j ACCEPT
#------------- imp3(143) imp3s(995) pop3(110) pop3s(993) port ----------------#
$iptab -A INPUT -p tcp --dport 110 -j ACCEPT
$iptab -A OUTPUT -p tcp --sport 110 -j ACCEPT
$iptab -A INPUT -p tcp --dport 143 -j ACCEPT
$iptab -A OUTPUT -p tcp --sport 143 -j ACCEPT
$iptab -A INPUT -p tcp --dport 993 -j ACCEPT
$iptab -A OUTPUT -p tcp --sport 993 -m state --state RELATED,ESTABLISHED -j ACCEPT
$iptab -A INPUT -p tcp --dport 995 -j ACCEPT
$iptab -A OUTPUT -p tcp --sport 995 -m state --state RELATED,ESTABLISHED -j ACCEPT
#--------------------开放 Mysql 服务端口(3306)----------------------------#
$iptab -A INPUT -p tcp --dport 3306 -j ACCEPT
$iptab -A OUTPUT -p tcp --sport 3306 -j ACCEPT
#---------------------开放所有tomcat所依赖端口 ----------------------------#
$iptab -A INPUT -p tcp --dport 8005 -j ACCEPT
$iptab -A OUTPUT -p tcp --sport 8005 -j ACCEPT
$iptab -A INPUT -p tcp --dport 8009 -j ACCEPT
$iptab -A OUTPUT -p tcp --sport 8009 -j ACCEPT
$iptab -A INPUT -p tcp --dport 8080 -j ACCEPT
$iptab -A OUTPUT -p tcp --sport 8080 -m state --state RELATED,ESTABLISHED -j ACCEPT
$iptab -A INPUT -s 222.35.140.70 -p tcp --dport 8080 -j ACCEPT
$iptab -A OUTPUT -d 222.35.140.70 -p tcp --sport 8080 -j ACCEPT
$iptab -A INPUT -p tcp --dport 8081 -j ACCEPT
$iptab -A OUTPUT -p tcp --sport 8081 -m state --state RELATED,ESTABLISHED -j ACCEPT
#---------------------- 开放http监听端口(8084) --------------------------#
$iptab -A INPUT -p tcp --dport 8084 -j ACCEPT
$iptab -A OUTPUT -p tcp --sport 8084 -m state --state RELATED,ESTABLISHED -j ACCEPT
$iptab -A INPUT -p tcp --dport 8250 -j ACCEPT
$iptab -A OUTPUT -p tcp --sport 8250 -j ACCEPT
#----------------- 开放SSH服务端口(33169)--------------------------------#
$iptab -A INPUT -p tcp --sport 33169 -j ACCEPT
$iptab -A OUTPUT -p tcp --dport 33169 -m state --state RELATED,ESTABLISHED -j ACCEPT
#注意:最有一条规则是在SSH服务器再次的使用SSH服务访问他人的SSH服务所制定的规则。
总结:
在 linux中配置防火墙时,一定要注意iptables中规则的顺序,哪个在前,哪个在后,这点不能乱。
另外,配置iptables规则,建议在本机测试好,然后在放到生产环境的主机上。