# 命令行放行某个端口
#/sbin/iptables -I INPUT -p tcp --dport 端口号 -j ACCEPT
#/etc/rc.d/init.d/iptables save
可是觉得命令行太复杂了怎么办?那就记住下面的脚本并让它自动执行吧,详细说明请看注释
# iptables 防火墙脚本
#!/bin/bash
sports="53 80 22 3306" # 自己机器对外开放的端口
dports="53 80 20 21 22 3306" # internet的数据可以进入自己机器的端口
# 初始化
init(){
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
}
# 启动
start(){
echo " * Starting firewall and allowing everyone..."
init
iptables -A INPUT -i ! eth0 -j ACCEPT
# 开放端口
for Port in $sports ; do
iptables -A INPUT -i eth0 -p tcp --sport $Port -j ACCEPT
iptables -A INPUT -i eth0 -p udp --sport $Port -j ACCEPT
done
for Port in $dports ; do
iptables -A INPUT -i eth0 -p tcp --dport $Port -j ACCEPT
iptables -A INPUT -i eth0 -p udp --dport $Port -j ACCEPT
done
iptables -A INPUT -i eth0 -p tcp -j REJECT --reject-with tcp-reset
iptables -A INPUT -i eth0 -p udp -j REJECT --reject-with icmp-port-unreachable
echo "Done!"
}
# 停止
stop(){
echo " * Stopping firewall and allowing everyone..."
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
echo "Done!"
}
# 重启
restart(){
stop
start
}
status(){
iptables -L
}
case "$1" in
start)
start ;;
stop)
stop ;;
restart)
restart ;;
status)
status;;
*)
echo "Usage: iptables {start|stop|restart}"
exit 1
esac
exit 0
## 注意:请将eth0替换成你的网卡号! |