论坛风格切换切换到宽版
  • 705阅读
  • 9回复

[问题求助]iptables可否设置仅访问特定端口的请求作NAT转换 [复制链接]

上一主题 下一主题
离线resoo.
 
发帖
2070
C币
-60419
威望
390
贡献值
1
银元
0
铜钱
4606
人人网人气币
0
只看楼主 倒序阅读 使用道具 楼主  发表于: 2009-05-01
我单位网络只用.sq.uid作代理上网,非透明,用户要设定代理服务器才能上网,有用户名密码验证。(        游戏          )

现.有一软件系.统需要访问某公网服务器端口(比如a.b.c.d:12345),此软件没有代理服务器的相关设置。请问能否将访问a.b.c.d:12345端口的请求不经.过squid直接nat出去,其他访问不变且不影响用户验证?如可以,如何写iptab.le规则?.

自己写个,大家看对不对

#!/bin/sh
echo "1">/proc/sys/net./ipv4/ip_forw.ard服务器
/s.bin/modprobe ip_tables域名
/sbin/modpro..be iptable_nat              乙肝
/.sbin/iptables -F.
/sbin/i.ptables -F -t nat服务器

/sbin/i.ptabl.es -P INPUT ACCEPT--- 印刷
/..sbin/iptables -P OUTPUT ACCEPT           建材
/sbin/iptables -.P .FORWARD ACCEPT           鲜花

/sbin/iptables .-t nat -A POSTROUTING -d a.b.c.d -p .tcp -dport 12345 .-o eth1 -j SNAT --to 1.2.3.4    美容

[ 本帖最后由 xiao6 .于 2007-.7-18 16:58 编辑 ].


最佳答案platinum
http://upload.bbs.csuboy.com/Mon_1004/126_6815_c2515fb4e40125e.gif[/img]明白了外贸
如果 squid 那.台机器是网关机器的话健康
iptables -t nat -I POSTROUTING -d a.b.c.d -p tcp --dport 12345 -j M.ASQUE.RA.DE 就可以了           鲜花
前提是打开内核转发 ip_f.orward[成人用品]


评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
离线hulutang.
发帖
2136
C币
-262553
威望
417
贡献值
1
银元
-1
铜钱
4723
人人网人气币
0
只看该作者 沙发  发表于: 2010-04-13
明白了
如果 squid 那台机器是网关机器的话
iptables -t nat -I POSTROUTING -d a.b.c.d -p tcp --dport 12345 -j MASQUERADE 就可以了
前提是打开内核转发 ip_forward


离线阿切.
发帖
2001
C币
-132461
威望
350
贡献值
1
银元
-1
铜钱
4409
人人网人气币
0
只看该作者 板凳  发表于: 2010-04-13
iptables -t nat -I PREROUTING -d a.b.c.d -p tcp --dport 12345 -j ACCEPT


离线jguzhou.
发帖
2015
C币
-235266
威望
407
贡献值
1
银元
-4
铜钱
4616
人人网人气币
0
只看该作者 地板  发表于: 2010-04-13
谢版主,完整的规则这样写行么?

#!/bin/sh
echo "1">/proc/sys/net/ipv4/ip_forward
/sbin/modprobe ip_tables
/sbin/modprobe iptable_nat
/sbin/iptables -F
/sbin/iptables -F -t nat

/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -P FORWARD ACCEPT

iptables -t nat -I PREROUTING -d a.b.c.d -p tcp --dport 12345 -j ACCEPT


离线03112.
发帖
2019
C币
-198744
威望
384
贡献值
1
银元
-1
铜钱
4562
人人网人气币
0
只看该作者 4楼 发表于: 2010-04-13
那句只是为了实现“不经过squid直接nat出去,其他访问不变且不影响用户验证”,其他语句还照旧
不知道你上面贴出来的是不是最终的,如果是,那么我没有看到有关 squid 的部分


离线my9449.
发帖
2057
C币
-139381
威望
379
贡献值
1
银元
-2
铜钱
4539
人人网人气币
0
只看该作者 5楼 发表于: 2010-04-13
原来没有用iptables,只安装运行了squid,用户要在IE等浏览器中设置代理才能上网(因为要验证用户,所有没有用透明代理)

这次就是专为解决a.b.c.d:12345这个问题才开启iptables,不知上面完整的规则是否可行?


离线hubbetter.
发帖
2010
C币
-152659
威望
365
贡献值
1
银元
-5
铜钱
4604
人人网人气币
0
只看该作者 6楼 发表于: 2010-04-13
#!/bin/sh
echo "1">/proc/sys/net/ipv4/ip_forward
/sbin/modprobe ip_tables
/sbin/modprobe iptable_nat
/sbin/iptables -F
/sbin/iptables -F -t nat

/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -P FORWARD ACCEPT

iptables -t nat -I POSTROUTING -d a.b.c.d -p tcp --dport 12345 -j MASQUERADE

上面的脚本可以么?

我在交换机上设定了默认路由 0.0.0.0 0.0.0.0 指向squid那台服务器

为什么用-I 而不用-A ?

[ 本帖最后由 xiao6 于 2007-7-18 17:33 编辑 ]


离线session1987.
发帖
1990
C币
-61049
威望
329
贡献值
1
银元
-2
铜钱
4261
人人网人气币
0
只看该作者 7楼 发表于: 2010-04-13
我不知道你的网络拓扑结构,所以不知道上面的脚本是否满足你的需求
-I 的目的是放到第一个地方,避免由于上面有其他规则的干扰


离线warriow.
发帖
2020
C币
-139333
威望
385
贡献值
1
银元
-5
铜钱
4588
人人网人气币
0
只看该作者 8楼 发表于: 2010-04-13
-I和-A对你这个脚本来讲应该是一样的……
反正也没有其他规则。


发帖
2111
C币
-60243
威望
399
贡献值
1
银元
-2
铜钱
4866
人人网人气币
0
只看该作者 9楼 发表于: 2010-04-13
我的网络情况是这样的,三层交换划分了若干vlan
172.16.1.1/24 squid服务器在此vlan
172.16.10.1/24 gw 172.16.10.254 部门A
172.16.20.1/24 gw 172.16.20.254 部门B
……
172.16.90.1/24 gw 172.16.90.254 部门I
squid服务器为eth0(内网) 172.16.1.1 ,eth1(公网) 1.2.3.4 ,用户浏览器要设置代理服务器为172.16.1.1才能上网

现在三层交换上设置默认路由 0.0.0.0 0.0.0.0 172.16.1.1
在squid服务器上配置如上规则,专为解决该软件系统访问a.b.c.d:12345的问题,不知这个脚本是否可行,这个脚本就是最终的脚本了。

我去试试吧,多谢版主

[ 本帖最后由 xiao6 于 2007-7-18 17:56 编辑 ]

快速回复
限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
上一个 下一个