免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1148 | 回复: 0
打印 上一主题 下一主题

一个防火墙的小脚本 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-07-29 09:59 |只看该作者 |倒序浏览
脚本如下:::
#!/bin/sh
#ver 1.1
#date 2009.7.14
IPTABLES=/sbin/iptables
INT_NET=192.168.1.0/24
MDPROBE=/sbin/modprobe
ifconfig eth0 192.168.1.4 netmask 255.255.255.0
ifconfig eth1 202.103.24.68 netmask 255.255.255.0
route add default gw 192.168.1.4
###SETTING UP rules and chain policy to DROP
$IPTABLES -F
$IPTABLES -F -t nat
$IPTABLES -X
$IPTABLES -P INPUT  DROP
$IPTABLES -P OUTPUT  DROP
$IPTABLES -P FORWARD  DROP
#load modprobe##
$MODPROBE  ip_conntrack
$MODPROBE iptable_nat
$MODPROBE ip_conntrack_ftp
$MODPROBE ip_nat_ftp
#setting ip INPUT rules.....
echo setting up INPUT chain....
$IPTABLES -A INPUT -m state --state INVIALID -j LOG --log-prefix "DROP INVIALID"--log-ip-options --log-tcp-options
$IPTABLES -A INPUT -m state --state INVIALTD -j DROP
$IPTABLES -A INPUT -m state --state  ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -i eth0 -s ! $INT_NET -j LOG --log-prefix "SPOOFED PKT"
$IPTABLES -A INPUT -i eth0 -s ! $INT_NET -j DROP
#ACCEPT rules...
$IPTABLES -A INPUT -i eth0 -p tcp -s $INT_NET  --dport 22 --syn -m state --state NEW -j ACCEPT
$IPTABLES -A INPUT  -p icm
p --icmp-type echo-request  -j ACCEPT
$IPTABLES -A INPUT  -i ! lo   -j LOG --log-prefix "DROP" --log-ip-options --log-tcp-options
#setting up OUTPUT chain rules.....
$IPTABLES -A OUTPUT -m state --state INVIALID -j LOG --log-prefix "DROP INVIALID"--log-ip-options --log-tcp-options
$IPTABLES -A OUTPUT -m state --state INVIALTD -j DROP
$IPTABLES -A OUTPUT -m state --state  ESTABLISHED,RELATED -j ACCEPT
###########
$IPTABLES -A OUTPUT  -p tcp  --dport 22 --syn -m state --state NEW -j ACCEPT
$IPTABLES -A OUTPUT  -p tcp  --dport 20 --syn -m state --state NEW -j ACCEPT
$IPTABLES -A OUTPUT  -p tcp  --dport 21 --syn -m state --state NEW -j ACCEPT
$IPTABLES -A OUTPUT  -p tcp  --dport 25 --syn -m state --state NEW -j ACCEPT
$IPTABLES -A OUTPUT  -p tcp  --dport 80 --syn -m state --state NEW -j ACCEPT
$IPTABLES -A OUTPUT  -p tcp  --dport 110 --syn -m state --state NEW -j ACCEPT
$IPTABLES -A OUTPUT  -p tcp  --dport 143 --syn -m state --state NEW -j ACCEPT
$IPTABLES -A OUTPUT  -p tcp  --dport 443 --syn -m state --state NEW -j ACCEPT
$IPTABLES -A OUTPUT  -p udp  --dport 53  -m state --state NEW -j ACCEPT
#####
$IPTABLES -A OUTPUT  -i ! lo   -j LOG --log-prefix "DROP" --log-ip-options --log-tcp-options
#####
echo setting up FORWARD chain rules.....
$IPTABLES -A FORWARD -m state --state INVIALID -j LOG --log-prefix "DROP INVIALID"--log-ip-options --log-tcp-options
$IPTABLES -A FORWARD -m state --state INVIALTD -j DROP
$IPTABLES -A FORWARD -m state --state  ESTABLISHED,RELATED -j ACCEPT
####SETTING UP RULES
$IPTABLES -A FORWARD -i eth0 -s ! $INT_NET -j LOG --log-prefix "SPOOFED PKT"
$IPTABLES -A FORWARD -i eth0 -s ! $INT_NET -j DROP
####
$IPTABLES -A FORWARD -p tcp  --dport 20 --syn -m state --state NEW -j ACCEPT
$IPTABLES -A FORWARD -p tcp  --dport 21 --syn -m state --state NEW -j ACCEPT
$IPTABLES -A FORWARD -p tcp -i eth0 -s $INT_NET --dport 22 --syn -m state --state NEW -j ACCEPT
$IPTABLES -A FORWARD -p tcp -i eth0 -s $INT_NET --dport 22 --syn -m state --state NEW -j ACCEPT
$IPTABLES -A FORWARD -p tcp  --dport 25 --syn -m state --state NEW -j ACCEPT
$IPTABLES -A FORWARD -p tcp  --dport 80 --syn -m state --state NEW -j ACCEPT
$IPTABLES -A FORWARD -p tcp  --dport 443 --syn -m state --state NEW -j ACCEPT
$IPTABLES -A FORWARD -p udp  --dport 53  -m state --state NEW -j ACCEPT
$IPTABLES -A FORWARD -p tcp --dport 43 --syn -m state --state NEW -j ACCEPT
$IPTABLES -A FORWARD  -i ! lo -j LOG --log-prefix "DROP" --log-ip-options --log-tcp-option
#####nat
$IPTABLES -t nat -A PREROUTING  -p tcp --dport 80 -i eth1 -j DNAT --to 192.168.1.4:80
$IPTABLES -t nat -A PREROUTING  -p tcp --dport 21 -i eth1 -j DNAT --to 192.168.1
.4:21
$IPTABLES -t nat -A PREROUTING  -p tcp --dport 20 -i eth1 -j DNAT --to 192.168.1
.4:20
$IPTABLES -t nat -A PREROUTING  -p tcp --dport 443 -i eth1 -j DNAT --to 192.168.1.4:443
$IPTABLES -t nat -A PREROUTING  -p udp --dport 53 -i eth1 -j DNAT --to 192.168.1
.4:53
$IPTABLES -t nat -A POSTROUTING -s $INT_NET -o eth1 -j MASQUERDE


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/90685/showart_2011723.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP