|
发表于 2003-10-28 11:01:38
|
显示全部楼层
# 用于双网卡机器在 Linux kernel 2.4 下做iptables/NAT网关。
# 把下面的代码拷贝到 /etc/rc.d/rc.local 中即可,几乎不需要改动。
# 唯一可能需要改动的是外部网卡及内部网卡的设备名。
# 这里假设连接Internet的外部网卡是 eth0 ,
# 接intranet的内部网卡是 eth1 。
# 注:因为BBS发文每行长度限制,部分命令行末有\符号表示续行
# To use iptables-based NAT, we must enable IP forwarding for IPv4:
echo 1 > /proc/sys/net/ipv4/ip_forward
# Or modify /etc/sysctl.conf such that:
# net.ipv4.ip_forward = 1
# IPTABLES firewall
# extdev: the network device/interface for the external network
# intdev: the network device/interface for the internal network
extdev=eth0
intdev=eth1
# extip: the IP of the external network
# intranet: the network ID of the internal network
# Manually assign the value of extip or intranet:
#extip=20.30.40.50
#intranet=192.168.9.0/24
# Or extract the value from output of ifconfig:
extip=`/sbin/ifconfig $extdev | grep inet | cut -d : -f 2 | cut -d ' ' -f 1`
intranet=`/sbin/ifconfig $intdev | grep inet | cut -d : -f 2 | cut -d ' ' -f 1 | cut -d . -f 1-3`.0/24
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp
/sbin/iptables -F
/sbin/iptables -F -t nat
/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -P FORWARD DROP
/sbin/iptables -A INPUT -s $intranet -i $extdev -j DROP
/sbin/iptables -A FORWARD -s $intranet -i ! $extdev -o $extdev -j ACCEPT
/sbin/iptables -A FORWARD -i $extdev -o ! $extdev -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -t nat -A POSTROUTING -s $intranet -o $extdev -j SNAT --to-source $extip |
|