论坛风格切换切换到宽版
  • 1150阅读
  • 8回复

[问题求助]为何设置的iptables规则过一段时间就失效 [复制链接]

上一主题 下一主题
离线pyemail.
 
发帖
2011
C币
-627237
威望
378
贡献值
4
银元
-4
铜钱
4531
人人网人气币
0
只看楼主 倒序阅读 使用道具 楼主  发表于: 2009-05-01
鄙人所.在的公司需要将内网的一台web服务器的80端.口映射到一个外网ip的82端口上,所用系统为ubu.ntu server 9.04的64位版本。机器就装了基本的系统以及ssh。所以iptables里应该默认为空吧!           鲜花

即.:eth0 (外网 210.*.*.*)             汽车
      .eth1(内网 19.2.168.10.1).
      web服务器(内网 19..2.168.10.100).

下面是我的i.ptales-save生成的文件设置:             电子

# Generated by iptables-save v1.4.1..1 on Mon Sep  7 1.7:20:39 2009.
*filter
:INPUT DROP [0.:0]    美容
:FORWARD .ACCEPT [27201:2120839.8]健康
:OUTPUT .ACCEPT [8548:1885648.].
-A .INPUT -i lo -j ACCEPT虚拟主机
-A INP.UT -m conntrack --ctstate RELATED,.ESTABLISHED -j ACCEPT    健康
-A INPUT -i eth1 -p tc.p -.m tcp --dport 22 -j ACCEPT.
-A INPUT -i eth1 -p tcp -m tcp --dport 80. -.j ACCEPT投资
-A INPUT -i eth1 -p tcp -m tcp .--dport. 53 -j ACCEPT             电子
-A INPUT -m limi.t --limit 5/min -j LOG --log-prefix. "iptables denied:" -.-log-level 7    美容
-A INPUT -s 192.16.8.10.0/24 -.d 192.168.10.1/32 -j ACCEPT.
-A INP.UT -j DROP(        游戏          )
-A FORWARD -d 192.168.10.100/32 -o eth1 -p tcp -m .tcp --dport 80. -j ACCEPT.
-A FORWARD -s 192.168.10.100/32 -i eth1 -p tcp -m tcp .--spor.t 80 -j ACCEPT投资
COMMIT
# Complete..d on Mon Sep  7 17:20:39 2009           建材
# Generated by iptables-save v1.4.1..1 on Mon Sep  7 17:20:39 .2009             汽车
*nat
: PRER.OUTIN.G ACCEPT [1858:246659]电影
: POS.TROUTIN.G ACCEPT [0:0]外贸
:OUTPUT ACCEPT. [32:2284].
-A PREROUTING -d 210.*.*.*/32 -p tc.p -m tcp --dpo.rt 8.2 -j DNAT --to-destination 192.168.10.100:80服务器
-A POSTROUTING -d 192.168.10.100/32 -p tcp -m .tcp --dport 80 -j SNAT --to-.so.urce 192.168.10.1电脑
-.A POSTRO.UTING -o eth0 -j MASQUERADE             女人
COMMIT
# Complete.d on .Mon Sep  7 17:20:39 2009[成人用品]


我怎么看也没找出有啥问题,但通过http://210.*.*.*:82访问该服务,总会有问题。刚开始是正常的,能正常访问,但过十多分钟之后,就访问不了。之后通过ssh访问192.168.10.1,只是运行iptables -L查看iptables而已,再看又可以打开了。我实在是想不通哪出问题了,我被雷到了。             汽车

各位大侠,帮帮我.脱离苦海吧!谢谢,谢谢!--------------彩票

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

精彩

感动

搞笑

开心

愤怒

无聊

灌水
离线vvvdong.
发帖
2096
C币
-236276
威望
360
贡献值
1
银元
-2
铜钱
4575
人人网人气币
0
只看该作者 沙发  发表于: 2010-04-13
你的脚本是什么样子的呢?

iptables -t nat -A PREROUTING -d 210.*.*.* -p tcp --dport 82 -j DNAT --to 192.168.10.100:80


-A FORWARD -d 192.168.10.100/32 -o eth1 -p tcp -m tcp --dport 80 -j ACCEPT
-A FORWARD -s 192.168.10.100/32 -i eth1 -p tcp -m tcp --sport 80 -j ACCEPT
这个有必要吗?

离线52niming.
发帖
2223
C币
-235325
威望
349
贡献值
1
银元
-3
铜钱
4874
人人网人气币
0
只看该作者 板凳  发表于: 2010-04-13


QUOTE:原帖由 西南一隅 于 2009-9-7 17:30 发表
:INPUT DROP [0:0]
:FORWARD ACCEPT [27201:21208398]
:OUTPUT ACCEPT [8548:1885648]
-A INPUT -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth1 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i eth1 -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -i eth1 -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied:" --log-level 7
-A INPUT -s 192.168.10.0/24 -d 192.168.10.1/32 -j ACCEPT
-A INPUT -j DROP
-A FORWARD -d 192.168.10.100/32 -o eth1 -p tcp -m tcp --dport 80 -j ACCEPT
-A FORWARD -s 192.168.10.100/32 -i eth1 -p tcp -m tcp --sport 80 -j ACCEPT


哎,你看你写的这。
你感觉有些规则存在的意义大吗?

离线zskj.
发帖
2010
C币
-262954
威望
359
贡献值
1
银元
-4
铜钱
4414
人人网人气币
0
只看该作者 地板  发表于: 2010-04-13
-A INPUT -i eth1 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i eth1 -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -i eth1 -p tcp -m tcp --dport 53 -j ACCEPT

这三条我是想开放ssh,www,dns的端口,其实后两条可以不写,我只是用ssh来访问设置该主机。

-A INPUT -s 192.168.10.0/24 -d 192.168.10.1/32 -j ACCEPT
-A INPUT -j DROP
这个的第一条我想让我的内部网络可以自由访问该主机。至于后一条,因为我默认设置INPUT为DROP,所以应该也可以不写。但这应该跟这个问题关系不大。因为一开始应用这些规则之后,外网访问速度都很好,过半个小时后,外网访问就变得超级慢,访问不了。所以想先排除是否是这些规则所造成的。
我一开始的时候只设置了这几条:(当时iptables是系统刚刚安装时的默认状态)
iptables -t nat -A PREROUTING -d 210.*.*.* -p tcp --dport 82 -j DNAT --to 192.168.10.100:80
-A POSTROUTING -d 192.168.10.100/32 -p tcp -m tcp --dport 80 -j SNAT --to-source 192.168.10.1
-A FORWARD -d 192.168.10.100/32 -o eth1 -p tcp -m tcp --dport 80 -j ACCEPT
-A FORWARD -s 192.168.10.100/32 -i eth1 -p tcp -m tcp --sport 80 -j ACCEPT
当时就是这样的状况。

[ 本帖最后由 西南一隅 于 2009-9-8 09:52 编辑 ]

离线trefoil.
发帖
1962
C币
-199277
威望
397
贡献值
1
银元
-1
铜钱
4497
人人网人气币
0
只看该作者 4楼 发表于: 2010-04-13
照着羊头没有错

离线日光兰.
发帖
1968
C币
-235780
威望
320
贡献值
1
银元
-2
铜钱
4252
人人网人气币
0
只看该作者 5楼 发表于: 2010-04-13


QUOTE:原帖由 西南一隅 于 2009-9-8 09:49 发表
-A INPUT -i eth1 -p tcp -m tcp --dport 53 -j ACCEPT
这一条我是想开放dns的端口


DNS使用的udp53端口;
另外,我觉得你这里不应该设置-i eth1,除非你内网有DNS服务器。




QUOTE:原帖由 西南一隅 于 2009-9-8 09:49 发表
:INPUT DROP [0:0]
。。。。。。。。。。
-A INPUT -s 192.168.10.0/24 -d 192.168.10.1/32 -j ACCEPT
-A INPUT -j DROP
因为我默认设置INPUT为DROP,所以应该也可以不写。但这应该跟这个问题关系不大。

既然你知道INPUT的默认规则是DROP,为什么还要写-A INPUT -j DROP?双保险?没必要吧,小心画虎不成反类犬。
规则可不是越多越好。
-A INPUT -s 192.168.10.0/24 -d 192.168.10.1/32 -j ACCEPT这一句的具体作用是什么呢?

建议你把你的需求及脚本贴出来,然后让大家看看。
论坛的人根据你的需求写出脚本,然后你对比一下自己的,找出你可以吸取的规则。
这样对你可能很有帮助。

离线uranas.
发帖
1976
C币
3483
威望
369
贡献值
2
银元
-2
铜钱
4543
人人网人气币
0
只看该作者 6楼 发表于: 2010-04-13
大致状况是:公司通过来双网卡的ubuntu server主机作软路由,一个接外网,网通提供的;一个接我们的内网,是内网的网关地址。现在要求就是把内网中的web服务器映射到外网ip的82端口(82端口现在是用来作测试用,以后将映射为80端口),我现在是通过ssh远程来设置防火墙主机,所以ssh的端口是必须开放的。
我一开始的时候是这样设置的:
iptables -t nat -A PREROUTING -d 210.*.*.* -p tcp --dport 82 -j DNAT --to--destination 192.168.10.100:80
这条把内网web服务器的80端口映射到外网的82端口
iptables -t nat -A POSTROUTING -d 192.168.10.100/32 -p tcp  --dport 80 -j SNAT --to-source 192.168.10.1
iptables -A FORWARD -d 192.168.10.100/32 -o eth1 -p tcp  --dport 80 -j ACCEPT
iptables -A FORWARD -s 192.168.10.100/32 -i eth1 -p tcp  --sport 80 -j ACCEPT
这三条是想保证从内网web服务器80端口到内网网关的链接畅通。
之后还加了一条:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
这条是设置用来伪装内网上外网用的。
其他的如:INUPUT OUTPUT FORWARD一开始都是默认ACCEPT。但是当时就出现这个状况,一开始从外网的82端口访问是正常的,等过一段时间后,就访问不了,一直处于网页缓冲状态。所以,现在有点怀疑是否是别的方面的问题,跟防火墙关系不大啊!

离线coolke.
发帖
2022
C币
-140624
威望
384
贡献值
1
银元
-3
铜钱
4664
人人网人气币
0
只看该作者 7楼 发表于: 2010-04-13


QUOTE:原帖由 西南一隅 于 2009-9-10 11:30 发表
大致状况是:公司通过来双网卡的ubuntu server主机作软路由,一个接外网,网通提供的;一个接我们的内网,是内网的网关地址。现在要求就是把内网中的web服务器映射到外网ip的82端口(82端口现在是用来作测试用, ...

内网这些都走你的内网交换机了,只有目标地址不是内网的才会被送到网关那里继续转发。所以认为你的内网如果只有一个网段的话,根本就没有必要搞那条路由。

离线yangjfa.
发帖
2064
C币
-152459
威望
378
贡献值
1
银元
-1
铜钱
4551
人人网人气币
0
只看该作者 8楼 发表于: 2010-04-13
如果要达到内网也访问82这个端口 只有是必须要有4条iptables的语句的
快速回复
限100 字节
批量上传需要先选择文件,再选择上传
 
上一个 下一个