作者:李宇
#!/bin/bash
#proxy and firwall
#定义变量
EXT_IFACE=eth0
EXT_ADDR=192.9.100.8
INT_IFACE=eth1
INT_ADDR=192.168.0.0/24
Manager_Addr=192.168.0.3/32
#初始化设置
service iptables stop
iptables -F
iptables -t nat -F
iptables -X
iptables -t nat -X
iptables -Z
iptables -t nat -Z
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -t nat -P POSTROUTING DROP
#启动模块
cd /lib/modules/2.4.3-3/kernel/net/ipv4/netfilter
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
cd /
#设置核心参数
##避免ping of death攻击
echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all
##禁止广播回应(可选)
#echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
##防止源路由攻击
echo 0 >/proc/sys/net/ipv4/conf/all/accept_source_route
##不接受重定向的icmp数据包
#echo 0 >/proc/sys/net/ipv4/conf/all/accept_redirects
##防止IP欺骗
for interface in /proc/sys/net/ipv4/conf/*/rp_filter; do
/bin/echo 1 > ${interface}
done
##禁止IP转发(在配置防火墙时,建议用户先关闭数据包的转发功能)
echo 0 >/proc/sys/net/ipv4/ip_forward
#IP伪装
iptables -t nat -A POSTROUTING -s $INT_ADDR -o $EXT_IFACE -j MASQUERADE
#定义forward 链规则
iptables -A FORWARD -m state --state INVALID -j DROP
iptables -A FORWARD -i $INT_IFACE -o $EXT_IFACE -s $INT_ADDR -m state --state
RELATED,NEW,ESTABLISHED -j ACCEPT
#iptables -A FORWARD -i $ INT_IFACE -s 192.168.0.3/32 -m mac --mac-source
00:D0:59:08:5f:23 -o $EXT_IFACE -j ACCEPT(可以使用该方法实现IP地址与物理地址的捆绑)
iptables -A FORWARD -i $EXT_IFACE -o $ INT_IFACE -d $ INT_ADDR -m state --state
RELATED,ESTABLISHED -j ACCEPT
#对包碎片的限制(会影响代理服务器的性能)
#iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT
#对外部访问该防火墙作的限制
iptables -A INPUT -i $EXT_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i $EXT_IFACE -p tcp ! --syn -j ACCEPT
#对内部用户访问防火墙的限制
iptables -A INPUT -i $ INT_IFACE -p icmp -j DROP #(可以对其他协议做限制)
#...........
#允许管理员对防火墙的操作
iptables -A INPUT -s $Manager_Addr -i $ INT_IFACE -p tcp --dport 3000 -j ACCEPT
iptables -A INPUT -s $Manager_Addr -i $ INT_IFACE -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -d $Manager_Addr -o $ INT_IFACE -m state --state ESTABLISHED
-j ACCEPT
#允许发送的数据包(from gateway)
iptables -A OUTPUT -o $EXT_IFACE -j ACCEPT
#允许IP数据包转发
echo 1 >/proc/sys/net/ipv4/ip_forward本U R L:http://www.qqread.com/linux/2006/08/f883195061.html
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
- 代理服务器技术专题 (459篇文章)
- FTP服务器 (5928篇文章)
- 网站服务器的选型 (8294篇文章)
- 网吧流媒体服务器 (6326篇文章)
- 刀片服务器专题 (5477篇文章)
- 网吧服务器专栏 (5452篇文章)
- 防火墙软件应用 (1868篇文章)
- 服务器配置专栏 (10964篇文章)
- IIS服务器应用技巧 (6039篇文章)
- 局域网中代理服务器的配置方案 (184篇文章)
- 实用技巧:配置Linux操作系统环境变量 (30次浏览)
- 安装qmail全套功略 (18次浏览)
- TurboLinux 入门教程:第七课 TurboLinux简介 (18次浏览)
- Linux系统管理员秘技:用快捷命令一招制胜 (18次浏览)
- Linux系统命令分类详解 (1) (18次浏览)
- Linux下使用aMsn详解 (18次浏览)
- 你会在Linux下用POP3收Web电子邮箱吗? (18次浏览)
- 在Linux中用三款工具轻松制作网页 (18次浏览)
- Linux上的偷窺裝置 (1394的使用) (18次浏览)
- 深入浅出分析Linux内核漏洞的问题 (18次浏览)



