防火墻iptables之常用腳本
轉自:http://zhujiangtao.blog.51cto.com/6387416/1286490
標簽:防火墻?主機
1。不允許別人ping我的主機,但是我可以ping別人的主機
#!/bin/bash
iptables -F
iptables -X
iptables -Z
modprobe ip_tables
modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ip_nat_irc
modprobe ip_conntrack
modprobe ip_conntrack_ftp
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p icmp --icmp-type?0 -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type?8 -j ACCEPT
iptables -A INPUT -p tcp -m multiport --dports 22,80 -j ACCEPT
2.普通web的防護腳本,只開放22和80端口
#!/bin/bash
iptables -F
iptables -X
iptables -Z
modprobe ip_tables
modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ip_conntrack
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -m multiport --dports 22,80 -j ACCEPT
3.安全主機?的防火墻腳本
iptables -F -t nat
iptables -X
iptables -Z
modprobe ip_tables
modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ip_nat_irc
modprobe ip_conntrack
modprobe ip_conntrack_ftp
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -A INPUT -f -m limit --limit 100/sec?--limit-burst 100 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -m multiport --dports 22,25,110,143,80 -j ACCEPT
4.自定義腳本
#!/bin/bash
function?fire(){
FTP="21"
SSH="22"
DNS="53"
HTTP="80"
MYSQL="3306"
IP="192.168.56.102"
if?[ -f?/etc/sysconfig/iptables?];then
cp?/etc/sysconfig/iptables?/etc/sysconfig/iptables.`date?+"%Y-%m-%d"`
fi??#若防火墻已存在,便備份
for?mod?in?$modules
do
testmod=`lsmod |?grep?"^${mod}"?|?awk?'{print $1}'`
if?[?"$testmod"?=?""?];then
modprobe $mod
fi
done??#加載模塊
iptables -F
iptables -X
iptables -Z?#清除本機防火墻所有規則
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT??#定義預設政策
iptables -A INPUT -i lo -j ACCEPT?#打開回環端口
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT??#打開外掛模塊
iptables -A INPUT -p tcp --dport $FTP -j ACCEPT?#允許ftp服務
iptables -A INPUT -p tcp -s $IP? --dport $SSH -j ACCEPT?#允許指定的主機可ssh到本機
iptables -A INPUT -p tcp --dport $DNS -j ACCEPT?#打開DNS服務
iptables -A INPUT -p udp --dport $DNS -j ACCEPT
iptables -A INPUT -p tcp --dport $HTTP -j ACCEPT?#允許訪問80端口
iptables -A INPUT -p tcp --dport $MYSQL -j ACCEPT?#允許訪問數據庫
/sbin/iptables-save?#保存防火墻規則
}
user=`whoami`
if?[?"$user"?=?"root"?];then
fire
else
echo?"the user must be root"
fi??#該腳本需root用戶執行