基于中软Linux实现代理服务器与防火墙(1)

王朝system·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

作者:李宇

#!/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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航