linux kernel2.6 上的linux全功能共享上网脚本
作者 佚名技术
来源 Linux系统
浏览
发布时间 2012-05-04
我自己写的linux kernel2.6 上的linux全功能共享上网脚本.这个本来没什么稀奇,不过呢,其实网络上有很多的Linux共享上网的脚本根本就是错的,也有的是RH9那样的2.4适用的脚本.呢,把这个东西翻了出来,完善了一下,保证绝对能用的. 这个脚本包含了限制ping,透明代理,端口映射等功能.其实呢,把dns端口53也透明一下的话,客户机设不设DNS就都无所谓了,呵呵~ ---------下行开始是脚本正文----------------------------- #!/bin/bash #write by xuzhi1977 12/03/2007 #define interface #WAN EXT_IF="eth1" EXT_IP="192.168.123.231" #LAN INT_IF="eth0" INT_IP_RANGE="192.168.200.0/24" INT_GW_IP="192.168.200.254" PROXY_IP="192.168.200.254" WEB_IP="192.168.200.8" # load mod echo 1 > /proc/sys/net/ipv4/ip_forward modprobe ip_tables modprobe iptable_filter modprobe iptable_nat modprobe ip_conntrack modprobe ip_conntrack_ftp modprobe ip_conntrack_irc modprobe ip_nat_ftp echo clear all rules iptables -F iptables -F -t nat iptables -X iptables -X -t nat iptables --flush INPUT iptables --flush FORWARD iptables --flush POSTROUTING --table nat iptables --policy FORWARD DROP echo Drop bad package iptables -A FORWARD -p TCP ! --syn -m state --state NEW -j LOG --log-prefix "New not syn:" iptables -A FORWARD -p TCP ! --syn -m state --state NEW -j DROP #echo trust LAN 这个在新的IPTALBES里面已经没有意义咯 #iptables -A INPUT --in-interface $LAN_IF -j ACCEPT #iptables -A OUTPUT --out-interface $LAN_IF -j ACCEPT echo ICMP:about ping #外网网卡可以ping到别人,别人ping不到本机外网网卡 iptables -A OUTPUT --out-interface $EXT_IF -p icmp -j ACCEPT iptables -A INPUT --in-interface $EXT_IF -p icmp --icmp-type echo-reply -j ACCEPT
iptables -A INPUT --in-interface $EXT_IF -p icmp --icmp-type echo-request -j DROP iptables -A FORWARD -i $EXT_IF --match state --state ESTABLISHED,RELATED --jump ACCEPT echo transport proxy #iptables -t nat -A PREROUTING -i $INT_IF -p tcp -s $INT_IP_RANGE --dport 80 -j DNAT --to $PROXY_IP:3128 #iptables -t nat -A PREROUTING -i $INT_IF -p tcp -s $INT_IP_RANGE --dport 80 -j REDIRECT --to-port 3128 #anther transport proxy------------------------------------------------------------------ #iptables -t nat -A PREROUTING -d $INT_IP -i $INT_IF -p tcp -m tcp --dport 80 -j ACCEPT #iptables -t nat -A PREROUTING -i $INT_IF -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128 echo nat iptables -t nat -A POSTROUTING -s $INT_IP_RANGE -o $EXT_IF -j MASQUERADE iptables -A FORWARD -s $INT_IP_RANGE -j ACCEPT echo port mapping #把对外网IP,80端口的访问,转发到$WEB_IP:80去 /sbin/iptables -t nat -A PREROUTING -d $EXT_IP -p tcp --dport 80 -j DNAT --to-destination $WEB_IP:80 #放行$WEB_IP:80的包 /sbin/iptables -A FORWARD -p tcp -d $WEB_IP --dport 80 -j ACCEPT #回流(可能应该把$INT_GW_IP改成$EXT_IP才对,没机会测试.呵呵) /sbin/iptables -t nat -I POSTROUTING -s $LAN_IP_RANGE -p tcp -d 172.16.0.50 --dport 80 -j SNAT --to $INT_GW_IP
|
||
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: 关于Solaris中执行文件的问题下一篇: linux(初学)
关于linux kernel2.6 上的linux全功能共享上网脚本的所有评论