以下是一个现学现写的iptables 脚本
实现对外界只可对本机的www和ftp服务进行访问。相对而言,本机也就只能做牛做马,连外网都不能上了。。。
(当然,为了可以上论坛,把17.1列为信任主机。)
1 #!/bin/sh
2 #firewall shell script ..Writen by eternal ..
3 #
4 #
5 #This is a simple shell for developing a firewall for the server
6 #Which is open only for www and ftp service.
7 IPT=/sbin/iptables # the location of the iptables bin files
8 LOCALHOST=172.24.14.62 # the ip of the localhost
9 PSV_MAX=60000 #define the max port of the ftp PASV
10 PSV_MIN=50000 #define the min port of the ftp PASV
11 #TRUSTHOST=172.24.17.1 # the trusted host
12 $IPT -F # clear the iptables
13 $IPT -P INPUT DROP # input packets drop default
14 $IPT -P FORWARD DROP # forward packets drop default
15 $IPT -P OUTPUT ACCEPT # output packets accept default
16 $IPT -A INPUT -p tcp -d $LOCALHOST --dport www -i eth0 -j ACCEPT
17 $IPT -A INPUT -p tcp -d $LOCALHOST --dport ftp -i eth0 -j ACCEPT
18 #The rule below allows the passive ftp transmition.
19 $IPT -A INPUT -p tcp -d $LOCALHOST -m tcp --dport $PSV_MIN:$PSV_MAX -i eth0 -j ACCEPT
20
21 #$IPT -A INPUT -p tcp -s $TRUSTHOST -j ACCEPT
22 $IPT -A INPUT -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT#防止碎片包攻击
23 $IPT -A INPUT -p icmp -s 0/0 -d $LOCALHOST -m limit --limit 1/s --limit-burst 10 -j ACCEPT
#防止icmp泛滥攻击 (其实本人觉得还应该对部分icmp进行屏蔽)
24 $IPT -A INPUT -i lo -j ACCEPT // 允许本机对本机的所有访问
25 exit 0
#chmod u+x firewall
#./firewall
如果想把此filter作为默认filter,则可在/etc/rc.d/rc.local 里面增加一个firewall的执行语句
[ 此贴被eternal在2004-12-13 22:19重新编辑 ]