Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5760311
  • 博文数量: 675
  • 博客积分: 20301
  • 博客等级: 上将
  • 技术积分: 7671
  • 用 户 组: 普通用户
  • 注册时间: 2005-12-31 16:15
文章分类

全部博文(675)

文章存档

2012年(1)

2011年(20)

2010年(14)

2009年(63)

2008年(118)

2007年(141)

2006年(318)

分类: LINUX

2007-07-13 10:23:34

前几天,帮bluejuade做的他们实验室的双线接入,使用的是教育网和网通的ADSL接入,由于是拨号所以不是固定IP。


根据实验室的网络状况,如果需要安装ADSL必须让校内和一些学术网站走校内IP,其它IPADSL,所以需要做双线策略路由。最终的脚本如下:

!/bin/sh

#This Script is run at startup,DO NOT RUN ME another time!

 

INNET=192.168.3.0/24

EXTIF=ppp0

FREEIF=eth0

INIF=eth1

INTERFACES="lo eth0 eth1 ppp0"

 

FREEGW=202.118.xxx.254

INETIP=202.118.yyy.170

SERVICES=22

 

IP=/sbin/ip

IPTABLES=/sbin/iptables


ADSL_START=/sbin/adsl-start

#重启网络,使连接ADSL的网卡down

/etc/init.d/network restart

 

echo "Starting ADSL....."

sleep 5

#ADSL连接拨号

$ADSL_START

 

#P_ADDR=`ifconfig ppp0 | grep inet | cut -d : -f 2 | cut -d " " -f 1`

 

#清除所有iptables规则,Drop掉所有的包

$IPTABLES -F

$IPTABLES -P INPUT DROP

$IPTABLES -P OUTPUT DROP

$IPTABLES -P FORWARD DROP

 

#打开IP转发

echo 1 > /proc/sys/net/ipv4/ip_forward

/sbin/modprobe ip_tables

#/sbin/modprobe ip_nat_ftp

/sbin/modprobe ip_nat_ftp

/sbin/modprobe ip_conntrack_ftp

 

#更改路由表

#拨号后,将默认路由改为了网通的线路;正好我们只需要添加教育网的路由就可以了

$IP route add via $FREEGW dev eth0 table free

#ip rule add to 202.118.0.0/16 pref 10000 table free

$IP rule add to 202.120.0.0/15 pref 10000 table free

$IP rule add to 202.112.0.0/13 table free

$IP rule add to 219.216.0.0/13 table free

$IP rule add to 59.64.0.0/12 table free

$IP rule add to 166.111.0.0/16 table free

$IP rule add to 198.81.200.2/32 table free

$IP rule add to 140.234.29.0/24 table free

$IP rule add to 140.98.193.0/24 table free

$IP rule add to 140.98.194.0/24 table free

$IP rule add to 208.215.179.0/24 table free

$IP rule add to 192.58.150.0/24 table free

 

 

#while read i; do

#ip=`echo $i | awk '{print $1}'`

#mask=`echo $i |awk '{print $2}'`

#$IPTABLES -A FreeIP -d $ip/$mask -j ACCEPT

#done < /etc/freeip

 

#ip rule add fwmark 1 table free

$IPTABLES -t nat -F

$IPTABLES -t mangle -F

 

$IPTABLES -A FORWARD -s 192.168.3.0/24 -j ACCEPT

$IPTABLES -A FORWARD -d 192.168.3.0/24 -j ACCEPT

 

#允许的IP列表

#iptables -t nat -A POSTROUTING -s 192.168.3.0/24 -d $free_ip -j SNAT --to $INETIP

$IPTABLES -t nat -A POSTROUTING -s 192.168.3.0/24 -d 202.120.0.0/15 -j SNAT --to $INETIP

$IPTABLES -t nat -A POSTROUTING -s 192.168.3.0/24 -d 219.216.0.0/13 -j SNAT --to $INETIP

$IPTABLES -t nat -A POSTROUTING -s 192.168.3.0/24 -d 202.112.0.0/13 -j SNAT --to $INETIP

$IPTABLES -t nat -A POSTROUTING -s 192.168.3.0/24 -d 59.64.0.0/12 -j SNAT --to $INETIP

$IPTABLES -t nat -A POSTROUTING -s 192.168.3.0/24 -d 166.111.0.0/16 -j SNAT --to $INETIP

$IPTABLES -t nat -A POSTROUTING -s 192.168.3.0/24 -d 198.81.200.2/32 -j SNAT --to $INETIP

$IPTABLES -t nat -A POSTROUTING -s 192.168.3.0/24 -d 140.234.29.0/24 -j SNAT --to $INETIP

$IPTABLES -t nat -A POSTROUTING -s 192.168.3.0/24 -d 140.98.193.0/24 -j SNAT --to $INETIP

$IPTABLES -t nat -A POSTROUTING -s 192.168.3.0/24 -d 140.98.194.0/24 -j SNAT --to $INETIP

$IPTABLES -t nat -A POSTROUTING -s 192.168.3.0/24 -d 208.215.179.0/24 -j SNAT --to $INETIP

$IPTABLES -t nat -A POSTROUTING -s 192.168.3.0/24 -d 192.58.150.0/24 -j SNAT --to $INETIP

 

 

#IP伪装,通过ADSL上网

$IPTABLES -t nat -A POSTROUTING -s $INNET -o $EXTIF -j MASQUERADE

ip route flush cache

 

#内网的请求全部允许

$IPTABLES -A INPUT -i $INIF -j ACCEPT

$IPTABLES -A OUTPUT -d 192.168.3.0/24 -j ACCEPT

#$IPTABLES -A INPUT -p tcp --dport 22 -j ACCEPT

 

for x in ${INTERFACES}

do

echo 1 > /proc/sys/net/ipv4/conf/${x}/rp_filter

done

 

#以下是一些防止检测到共享上网的规则#########################################

#关闭161,162端口防止SNMP检测

$IPTABlES -A INPUT -p all --dport 161 -j DROP

$IPTABLES -A INPUT -p all --dport 162 -j DROP

阅读(2389) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~