2008-03-19, 03:50 PM
|
#5
|
|
初级会员
注册日期: 2007-11-01
帖子: 4
精华: 0
现金: 8 金币
资产: 8 金币
声望: 10 
|
回复: 大学校园网LINUX免费IP代理
|
#!/bin/bash
ExtIp=202.118.225.238
IntIp=100.100.100.100
LocalAddr=100.100.100.0/24
EXT=eth0
INT=eth1
FreeIpList=/etc/freeiplist
stop () {
iptables -F
iptables -F -t nat
iptables -F -t mangle
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P POSTROUTING ACCEPT
iptables -t mangle -P INPUT ACCEPT
iptables -t mangle -P OUTPUT ACCEPT
iptables -t mangle -P FORWARD ACCEPT
CHAINS=`iptables -n -L |perl -n -e '/Chain\s+(\S+)/ && !($1 =~
/^(INPUT|FORWARD|OUTPUT)$/) && print "$1 "'`
echo "remove defined chains: $CHAINS"
for c in $CHAINS; do
iptables -F $c
done
for c in $CHAINS; do
iptables -X $c
done
}
start () {
if ! [ -f $FreeIpList ]; then
echo Not Found necessory files: $FreeIpList
echo iptables firewall not be set!
exit 1
fi
Modules="ip_tables ip_nat_ftp ip_conntrack ip_conntrack_ftp ip_gre"
echo "Loading iptables modules:"
echo -n $"$Modules"
echo
for i in $Modules ; do
modprobe $i
done
iptables -F
iptables -F -t nat
iptables -F -t mangle
iptables -P INPUT ACCEPT
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -t nat -P POSTROUTING DROP
iptables -t nat -P PREROUTING DROP
iptables -t nat -P OUTPUT ACCEPT
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P POSTROUTING ACCEPT
iptables -t mangle -P INPUT ACCEPT
iptables -t mangle -P OUTPUT ACCEPT
iptables -t mangle -P FORWARD ACCEPT
CHAINS=`iptables -n -L |perl -n -e '/Chain\s+(\S+)/ && !($1 =~
/^(INPUT|FORWARD|OUTPUT)$/) && print "$1 "'`
echo "remove defined chains: $CHAINS"
for c in $CHAINS; do
iptables -F $c
done
for c in $CHAINS; do
iptables -X $c
done
###### new chain freeip,ctrl #############
iptables -N freeip
FreeIPMaskList=`cat $FreeIpList | grep -e "^[[:space:]]*\
\(\([0-9]\{1,3\}\)\.\)\{3\}\([0-9]\{1,3\}\)/\
\(\(\([0-9]\{1,3\}\)\.\)\{3\}\([0-9]\{1,3\}\)\|[0-9]\{1,2\}\)\
[[:space:]]*$"`
for i in $FreeIPMaskList ; do
iptables -A freeip -d $i -j ACCEPT
done
iptables -A OUTPUT -o $EXT -j freeip
iptables -A OUTPUT -o $INT -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 28800 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $INT -s $LocalAddr -m state --state NEW -j freeip
iptables -A FORWARD -i $EXT -d $LocalAddr -m state --state NEW -j ACCEPT
iptables -A FORWARD -m state --state INVALID -j freeip
iptables -t nat -A POSTROUTING -s $ExtIp -j ACCEPT
iptables -t nat -A POSTROUTING -s $IntIp -j ACCEPT
iptables -t nat -A POSTROUTING -s 127.0.0.1 -j ACCEPT
iptables -t nat -A POSTROUTING -s $LocalAddr -o $EXT -j SNAT --to $ExtIp
iptables -t nat -A POSTROUTING -d $LocalAddr -o $INT -j ACCEPT
iptables -t nat -A PREROUTING -i $INT -s $LocalAddr -j ACCEPT
iptables -t nat -A PREROUTING -i $EXT -p tcp --dport 3341 -j DNAT --to 100.100.100.197:3389
iptables -t nat -A PREROUTING -i $EXT -p tcp --dport 3146 -j DNAT --to 100.100.100.196:3389
iptables -t nat -A PREROUTING -i $EXT -d $ExtIp -j ACCEPT
iptables -t nat -A PREROUTING -i lo -j ACCEPT
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
start
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 1
esac
exit 0
|
|
|
|