在我的ubuntu系统中我写了三个小的脚本互相调用,用与内网的防火墙,由于我是在内网中,而不是ADSL拨号上网的,请谨慎参考。

一共有三个脚本,

1.iptables.basicrule.sh这个是用于制定基本的规则的

2.iptables.allow.sh这个是允许通过的ip地址。

3.iptables.deny.sh这个是拒绝的ip地址。

现在在这里贴出我的脚本给朋友们参考,并且欢迎提出你的意见。(msn:jackning@live.com)

iptables.basicrule.sh

#!/bin/bash

#针对本机的防火墙配置

#1.设置内核的功能

echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts   #防止死亡之ping

#2.清空规则,设置默认规则,开放loop口

IPT="/sbin/iptables"

$IPT -F

$IPT -X

$IPT -Z

$IPT -P INPUT DROP

$IPT -P OUTPUT ACCEPT 

$IPT -P FORWARD DROP

$IPT -A INPUT -i lo -j ACCEPT 

$IPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 

#3.启动额外的防火墙模块

if [ -f /usr/local/ninglinux/iptables/iptables.deny.sh ]; then 

sh /usr/local/ninglinux/iptables/iptables.deny.sh

fi

if [ -f /usr/local/ninglinux/iptables/iptables.allow.sh ]; then 

sh /usr/local/ninglinux/iptables/iptables.allow.sh

fi

if [ -f /usr/local/ninglinux/httpd-err/iptables.http ]; then 

sh /usr/local/ninglinux/iptables/httpd-err/iptables.http

fi

#4.允许某些类型的icmp进入

$IPT -A INPUT -p icmp --icmp-type 0 -j ACCEPT  

#5.允许某些服务的进入

$IPT -A INPUT  -p tcp --sport 21 --dport 1024:65534 -j ACCEPT #FTP

$IPT -A INPUT  -p tcp --sport 20 --dport 1024:65534 -j ACCEPT #FTP

$IPT -A INPUT  -p tcp --sport 25  -j ACCEPT #SMTP

$IPT -A INPUT -p tcp --sport 53 --dport 1024:65534 -j ACCEPT #DNS

$IPT -A INPUT -p udp --sport 53 --dport 1024:65534 -j ACCEPT #DNS

$IPT -A INPUT -p tcp --sport 80 -j ACCEPT      #WWW

$IPT -A INPUT  -p tcp --sport 110 -j ACCEPT  #POP3

$IPT -A INPUT -p tcp --sport 443 -j ACCEPT    #HTTPS

$IPT -A INPUT -p tcp --sport 22 -j ACCEPT    #SSH

剩下的两个配置文件,根据自己的需要自己制作。