免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2679 | 回复: 14
打印 上一主题 下一主题

[网络管理] 请教一个IPTABLES的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-04-17 16:24 |只看该作者 |倒序浏览
我用虚拟机做实验平台,以下是我的模型

       客户机-------------------------------NAT服务器---------------------------web,ftp服务器
       本机XP---------------------------------Linux----------------------------------W2K
      192.168.1.30----------------192.168.1.1, 10.0.0.1-----------------------10.0.0.2


我在Linux上用Iptables配置的NAT后,本机XP可以正常访问W2K的WEB,FTP.
我想不让192.168.1.30这个IP的机子访问W2K的WEB,但是可以访问FTP和其它的WEB站点,
那么规则应该写在Linux的那个规则链里?
我在NAT表里写入iptables -t nat -A PREROUTING -d 10.0.0.2 -p tcp --dport 80 -j DROP
那么192.168.1.0这一个段的IP都不能访问10.0.0.2的WEB了
如果我写iptables -t nat -I POSTROUTING -s 192.168.1.30 -p tcp --sport 80 -j DROP
那么我的XP将不能访问所有的WEB站点了.
可不可以写iptables -t nat -A PREROUTING -s 192.168.1.30 -d 10.0.0.2 -p tcp --dport 80 -j DROP
或者iptables -t nat -I POSTROUTING -s 192.168.1.30 -d 10.0.0.2 -p tcp --dport 80 -j DROP
我写了但是不起作用.
请问各位高手,我要实现此目的应该怎么写规则,写在那个链里,另外我还想问一下.我用的是REDHAT Linux9.0
这个-d后面不能跟域名,写域名它报错,为什么???
请大家多多指点!!!

论坛徽章:
0
2 [报告]
发表于 2006-04-17 16:33 |只看该作者

回复 1楼 cuisir 的帖子

头一次请教问题,好像发错地方了,好像应该在网络与硬件里发,惭愧啊!!!

论坛徽章:
0
3 [报告]
发表于 2006-04-17 16:39 |只看该作者
能看看你的所有的IP归着么?

一般来说,做nat的,只要你将 FORWARD 链的关掉就行了

如 iptables -I FORWARD 1 -s 192.168.1.30 -p tcp --dport 80 -d 10.0.0.2 -j REJECT

论坛徽章:
0
4 [报告]
发表于 2006-04-17 18:11 |只看该作者
我没有其它规则,就写了一个NAT的功能规则
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
eth0是内网的,192.168.1.1
eth1是外网的,10.0.0.1
然后想在这个基础之上对192.168.1.30访问10.0.0.2的web做拦截,但是允许192.168.1.30访问其它的WEB

论坛徽章:
0
5 [报告]
发表于 2006-04-17 19:00 |只看该作者

回复 3楼 achaoge 的帖子

我按照你的方法做成功了,谢谢高手,不过我还想问一下,后面的-j REJECT和-j DROP有什么区别?

论坛徽章:
0
6 [报告]
发表于 2006-04-17 19:53 |只看该作者
原帖由 cuisir 于 2006-4-17 16:24 发表
如果我写iptables -t nat -I POSTROUTING -s 192.168.1.30 -p tcp --sport 80 -j DROP
那么我的XP将不能访问所有的WEB站点了.
可不可以写iptables -t nat -A PREROUTING -s 192.168.1.30 -d 10.0.0.2 -p tcp --dport 80 -j DROP
或者iptables -t nat -I POSTROUTING -s 192.168.1.30 -d 10.0.0.2 -p tcp --dport 80 -j DROP
我写了但是不起作用.

你用错地方了,专链专用,专表专用

论坛徽章:
0
7 [报告]
发表于 2006-04-18 01:26 |只看该作者

回复 6楼 platinum 的帖子

斑竹,我遇到了一个奇怪的问题,还是我这个模型
      客户机-------------------------------NAT服务器---------------------------web,ftp服务器
       本机XP---------------------------------Linux----------------------------------W2K
      192.168.1.30----------------192.168.1.1, 10.0.0.1-----------------------10.0.0.2
我在Linux上用
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
这2个命令起了NAT功能
我的客户机XP可以用域名www.abc.com访问到W2K的WEB,
但是不能用域名www.abc.com访问到W2K的FTP,
提示:

打开FTP服务器的文件夹时发生错误,请检查是否有权限访问该文件夹权限
200 Type set  to A
500 Invalid PORT Command

但是我用IP地址可以访问。
如果我把XP的IP地址改为和W2K一个段的10.0.0.4的情况下,我用域名或者是IP都能直接访问到W2K的FTP,
我想知道问题是不是出在我的NAT服务器上,不知道是那里出了问题,我没有加额外的其他任何规则,请斑竹高手帮我分析一下,我很是郁闷。

[ 本帖最后由 cuisir 于 2006-4-18 01:32 编辑 ]

论坛徽章:
0
8 [报告]
发表于 2006-04-18 05:49 |只看该作者
modprobe ip_nat_ftp
再试试?

论坛徽章:
0
9 [报告]
发表于 2006-04-18 12:42 |只看该作者
原帖由 platinum 于 2006-4-18 05:49 发表
modprobe ip_nat_ftp
再试试?


我按照斑竹你的方法做了,成功了,万分感谢!!
我正在努力看咱们论坛上的Iptables 指南 1.1.19帖子,有关ip_nat_ftp,和ip_conntrack_ftp这2个东西,是不是一个是NAT里用的,一个是FROWARD时用的,是不是相当于cisco里面的helper命令?请多多指教!!

另外一般做NAT时都需要modprobe那些东西?

[ 本帖最后由 cuisir 于 2006-4-18 12:43 编辑 ]

论坛徽章:
0
10 [报告]
发表于 2006-04-18 13:32 |只看该作者

回复 10楼 platinum 的帖子

终于明白了,正在看斑竹的经典大作,受益非浅啊,不知道斑竹做的那个经典练习平台有没有制作教程啊,我也想学习学习,自己做做啊!!!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP