天天看點

防火牆iptables之常用腳本

防火牆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端口

iptables -P OUTPUT ACCEPT

iptables -P FORWARD ACCEPT

3.安全主機 的防火牆腳本

iptables -F -t nat

iptables -A INPUT -f -m limit --limit 100/sec --limit-burst 100 -j ACCEPT

iptables -A INPUT -p tcp -m multiport --dports 22,25,110,143,80 -j ACCEPT

4.自定義腳本

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 -Z #清除本機防火牆所有規則

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使用者執行

      本文轉自rshare 51CTO部落格,原文連結:http://blog.51cto.com/1364952/1955954,如需轉載請自行聯系原作者