简单实现Iptables共享上网(shell版)
[quote]以某公司的网络连接方案为例:
服务器的配置为:HP LH300,RedHat 7.3 双网卡,其中eth0的IP为外部IP:202.107.112.123,eth1
为内部IP:172.16.3.254/255.255.255.0
工作站的配置为ELL 220,IP为172.16.3.*
下面为具体的配置:
1、首先用lsmod看一下ipchains等模块有没有装入,如果已经装入,则用rmmod命令移走它们。
2、装入iptables:modprobe ip_tables
3、打开IP转发功能:echo 1 > /proc/sys/net/ipv4/ip_forward
4、清除INPUT规则:iptables -F INPUT
5、清除FORWARD规则:iptables -F FORWARD
6、清除POSTROUTING规则:iptables -F POSTROUTING -t nat
7、设置默认转发策略:iptables -P FORWARD DROP
8、转发本网段的机器到任何地方去的包:iptables -A FORWARD -s 172.16.3.0/24 -j ACCEPT
9、对先前从防火墙外部接口出去的请求包的回复:iptables -A FORWARD -i eth0 -m state --
state ESTABLISHED,RELATED -j ACCEPT
10、打开IP伪装能:iptables -t nat -A POSTROUTING -o eth0 -s 172.16.3.0/24 -j MASQUERADE
11、目标端口为80的包可以进入:iptables -A INPUT -p tcp -i eth0 --syn --dport 80 -j
ACCEPT
12、拒绝不是目标端口是80的所求TCP新的连接请求包:iptables -A INPUT -p tcp -i eth0 --syn
-j DROP
13、工作站的IP地址设为:172.16.3.* 掩码:255.255.255.0网关:172.16.3.254
这样,工作站用户即使不设置任何代理,也同样可以上网。
[/quote]
引用的是lydr发表的<a href="http://bbs.linux-cn.com/thread-10816-1-1.html">这篇帖子</a>
看来老大还是不喜欢用shell,那这些事只有小弟来做啦 呵呵!
下面的脚本就不加以解释了!因该上面已经写的很清楚了。
简单步骤:
#vi iptables.sh(创建脚本文件,复制下面代码进去)
[code]
#!/bin/bash
modprobe ip_tables
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -F INPUT
iptables -F FORWARD
iptables -F POSTROUTING -t nat
iptables -P FORWARD DROP
iptables -A FORWARD -s 172.16.3.0/24 -j ACCEPT
iptables -A FORWARD -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -s 172.16.3.0/24 -j MASQUERADE
iptables -A INPUT -p tcp -i eth0 --syn --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -i eth0 --syn -j DROP
[/code]
#./iptables.sh (直接运行测试)
[[i] 本帖最后由 xuanfei2046 于 2007-5-2 17:47 编辑 [/i]] ddddddddddddddddd
页:
[1]