centos 防火墙 iptables 用shell代码来添加
- |
- 浏览:501
- |
- 更新:2014-04-22 15:45
很多时候,添加iptable 防火墙规则的时候,大家都喜欢一条一条的命令打,确实很方便。
不过,我喜欢用shell scripts 来添加,原因是,不容易出错,还可以一直保存着,方便修改等等。
方法/步骤
-
#vim bin/firewall.sh
新建一个firewall.sh的用来写shell scripts的文件。
-
往firewall.sh里面输入以下内容,根据自己的服务器端口需要,添加,或者修改一些端口,或者规则。
#!/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin; export PATH
# 1. 清除规则
iptables -F
iptables -X
iptables -Z
# 2. 设定政策
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
# 3~5. 制订各项规则
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#SSH的端口,不然远程不了
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
#做了FTP服务器,开启21端口
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 10000:20000 -j ACCEPT
#WEB服务器,开启80端口.
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
#邮件服务器,开启25,110端口
#iptables -A INPUT -p tcp --dport 110 -j ACCEPT
#iptables -A INPUT -p tcp --dport 25 -j ACCEPT
#做了DNS服务器,开启53端口
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
#允许loopback!(不然会导致DNS无法正常关闭等问题)
iptables -A INPUT -i lo -p all -j ACCEPT
iptables -A OUTPUT -o lo -p all -j ACCEPT
#允许icmp包通过,也就是允许ping
iptables -A OUTPUT -p icmp -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
#减少不安全的端口连接
iptables -A OUTPUT -p tcp --sport 31337 -j DROP
iptables -A OUTPUT -p tcp --dport 31337 -j DROP
#samb
iptables -A INPUT -p tcp --dport 137 -j ACCEPT
iptables -A INPUT -p tcp --dport 138 -j ACCEPT
iptables -A INPUT -p tcp --dport 139 -j ACCEPT
iptables -A INPUT -p tcp --dport 445 -j ACCEPT
#iptables -A INPUT -i eth0 -s 192.168.1.0/24 -j ACCEPT
# 6. 写入防火墙规则配置文件
/etc/init.d/iptables save
最后保存退出
-
#chmod 700 /bin/firewall.sh
改一下权限,避免文件被人恶意修改
# sh bin/firewall.sh
来执行命令后,
# service iptables restart
重启iptables 防火墙,也可以把# service iptables restart加到firewall.sh里面的最后地方。这样只要实行# sh bin/firewall.sh就可以了。
-