简单防火墙(iptables)搭建(先写个框框,..)

============readme-iptables-rule=============
#对外网络使用eth0 开放的服务有www ftp 假设回游对nternet的其他服务 nat www ssh smtp pop3 imap dns 
#ftp,telnet dhcp nfs 对内开放
##########关闭所有的,开放特定的########################
#Policy 选择 DROP
#iptables.rule:设定规则的档案,包括清除防火墙规则,载入模块,设定一些服务的进入与否
#iptables.deny:设定恶意ip或网段,
#iptables.allow:后门,嘿嘿
==================iptables.rule==============
#!/bin/bash
#说明:
#iptables.rule这个script来建立防火墙!
#需要额外设定,以适合你的环境!
#使用说明:
#将这个scripts权限更改为可执行:
# chmod 755 iptables.rule
#再将这个放置在 /usr/local/virus/iptables目录下
# mkdir -p /usr/local/virus/iptables
# mv /完整的路经/iptables.rule /usr/local/virus/iptables
#执行测试:
# /usr/local/virus/iptables/iptables.rule
# iptables -L -n (这个表示在检查查防火墙规则)
#将下边这一行加入 /etc/rc.d/rc.local中 用以开机时自动执行这个script
# /usr/local/virus/iptables/iptables.rule
# 取消防火墙:
# iptables -F
# iptables -X
# iptables -t nat -F
# iptables -t nat -X
#--------------------------------------------------
#2005.11.30 by clin003



#0.0please key in your parameters
# ADSL is ppp0
# static ip is eth0
# The interface that connect internet
EXTIF="eth0"

#下边的INIF主要为对内网络
#若没有,那么改成
#INIF=""
#另外INIF不是""的时候,请指定你的内部网域
#添入INNET中!INNET为内部网域的设定值!
INIF=""
INNET=""

#1.0 核心版本与防火墙模块
#根据需要可吧下边注释去掉
# kver=`uname -r | cut -c 1-3`
#if [ "Skver" != "2.4" ] && [ "Skver" != "2.5" ] && [ "Skver" != "2.6" ];then
# echo " your linux kernel version may not be suported by this script!"
# echo " this scripts will not be running"
# exit
#fi
#ipchains=`lsmod | grep ipchains`
#if [ "Sipchains" != "" ]; then
# echo "unload ipchains in your system"
# rmmod ipchains 2> /dev/null
#fi



#2.0 载入模块组
#根据需要去掉INIF前边的注释符号#
PATH=/sbin:/bin:/usr/sbin:/usr/bin
export PATH EXTIF #INIF INNET



#可用 启动iptables命令代替模块的加载过程
/etc/rc.d/init.d/iptables restart #其实能这样说明开机已启动啦吧 @_@

#fc3默认启用防火墙加载的默块(ip*)
#根据需要去掉注释,修改加载相关模块
#modprobe ipv6 > /dev/null 2>&1
#modprobe ip_tables > /dev/null 2>&1
#modprobe ip_conntrack > /dev/null 2>&1
#modprobe ipt_REJECT > /dev/null 2>&1
#modprobe ipt_state > /dev/null 2>&1
#modprobe iptable_filter > /dev/null 2>&1
#上边的模块是fc3中的

# modprobe ip_tablesmodprobe ip_tables > /dev/null 2>&1
# modprobe iptable_nat > /dev/null 2>&1
# modprobe ip_nat_ftp > /dev/null 2>&1
# modprobe ip_nat_irc > /dev/null 2>&1
# modprobe ip_conntrack > /dev/null 2>&1
# modprobe ip_conntrack_ftp > /dev/null 2>&1
# modprobe ip_conntrack_irc > /dev/null 2>&1


#3.0 清除所有防火墙规则
/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -Z
/sbin/iptables -F -t nat
/sbin/iptables -X -t nat
/sbin/iptables -Z -t nat
/sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables -t nat -P PREROUTING ACCEPT
/sbin/iptables -t nat -P POSTROUTING ACCEPT
/sbin/iptables -t nat -P OUTPUT ACCEPT


#4.0先允许信任网域,包含lo
#重点是可以启动linux成为nat主机
#这里根据你的需要可以去掉相应注释
/sbin/iptables -A INPUT -i lo -j ACCEPT
# if [ "$INIF" != "" ]; then
# /sbin/iptables -A INPUT -i $INIF -j ACCEPT
# echo "1" > /proc/sys/net/ipv4/ip_forward
# /sbin/iptables -t nat -A POSTROUTING -s $INNET -o $EXTIF -j MASQUERADE
# fi

#5.0开始载入信任与拒绝的网域设定
#下边的2个网域可以自己建立
#自己建立信任网域在iptables.deny和iptables.allow
if [ -f /usr/local/virus/iptables/iptables.deny ]; then
sh /usr/local/virus/iptables/iptables.deny
fi
if [ -f /usr/local/virus/iptables/iptables.allow ]; then
sh /usr/local/virus/iptables/iptables.allow
fi

#6下边的两个档案若存在,则执行!
#
if [ -f /usr/local/virus/httpd-err/iptables.http ]; then
sh /usr/local/virus/httpd-err/iptables.http
fi


#7允许icmp封包与允许已建立的连接通过!
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A INPUT -m state --state INVALID,NEW -j DROP #2005.12.1 clin003 append
AICMP="0 3 3/4 4 11 12 14 16 18"
for tyicmp in $AICMP
do
/sbin/iptables -A INPUT -i $EXTIF -p icmp --icmp-type $tyicmp -j ACCEPT
done


#8 allow serices

# /sbin/iptables -A INPUT -p TCP -i $EXTIF --dport 22 -j ACCEPT # SSH
# /sbin/iptables -A INPUT -p TCP -i $EXTIF --dport 25 -j ACCEPT # SMTP
# /sbin/iptables -A INPUT -p UDP -i $EXTIF --dport 53 -j ACCEPT # DNS
/sbin/iptables -A INPUT -p TCP -i $EXTIF --dport 80 -j ACCEPT # WWW
/sbin/iptables -A INPUT -p TCP -i $EXTIF --dport 60003 -j ACCEPT # WWW
#不要被上边这条迷糊拉哈,这是偶开的www端口
/sbin/iptables -A INPUT -p TCP -i $EXTIF --dport 21 -j ACCEPT # ftp
# /sbin/iptables -A INPUT -p TCP -i $EXTIF --dport 110 -j ACCEPT # POP3
# /sbin/iptables -A INPUT -p TCP -i $EXTIF --dport 113 -j ACCEPT # auth

 
 
================iptables.deny===================
#!/bin/bash
#
# This script will deny some IPs that I don't want it IN
#
#2005.11.30 by clin003

/sbin/iptables -A $INPUT -i $EXTIF -s 211.67.189.200 -j DROP
/sbin/iptables -A $INPUT -i $EXTIF -s 211.67.188.50 -j DROP
===============iptable.allow==================
#!/bin/bash
# This program is used to allow some IP or hosts to access your Server
#
#2005.11.30 by clin003
/sbin/iptables -A $INPUT -i $EXTIF -s 211.67.190.0/24 -j ACCEPT

===========================================================
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值