LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 939|回复: 6

关于单网卡学习iptables的问题

[复制链接]
发表于 2004-12-7 11:00:56 | 显示全部楼层 |阅读模式
echo "1" > /proc/sys/net/ipv4/ip_forward
/sbin/iptables -t nat -A PREROUTING -d 192.168.1.76 --dport 80 -j DNAT --to 192.168.1.38:80

以上是我的规则,为什么不起作用??

我想是通过访问192.168.1.76(所在LINUX服务器)而映射到192.168.1.38上,因为是在学习,安装linux的机器只有一块网卡,麻烦指点。。。


还有个问题,我要在内网架设一些服务器,想通过linux做映射,关于一些服务性的攻击能否先在iptables里进行过滤,再映射到内网的服务器里??
发表于 2004-12-7 12:56:54 | 显示全部楼层
首先,规则写的不完整,缺-i 来说明数据进入的介质端口,缺-p说明协议类型。其次,如果要作forward(或routing),单网卡(或者说单介质)没有任何意义,还是要双网卡。
 楼主| 发表于 2004-12-7 14:55:31 | 显示全部楼层
谢了,-i 和-p 的话,我刚开始有,后台看别人的没写,我也这么调试,呵呵

那就想办法弄双网卡了。。。。
发表于 2004-12-7 17:03:21 | 显示全部楼层
ip alias。不过好像iptables 里面并不能用-i 或-o 来指定alias ether,但是可用的。
发表于 2004-12-7 18:45:08 | 显示全部楼层
其实最主要的原因是,在这种单网卡、所有设备都在同一ip地址段的环境里,即使PREROUTING链的规则写的没有错误,也应该不行,假设你从75访问76,且被成功forward到38,但38发现75和自己在同一网段,它会将响应连接请求的报文直接回给75,而不会经过76的路由,因为75并没有直接向38发出过请求连接的报文,所以当它收到38直接回过来的报文时,会将报文丢弃。
所以还是双网卡不同地址段作试验是硬道理,这样省事多了。
发表于 2004-12-10 21:21:32 | 显示全部楼层

单网卡也行

我的单网卡,做Adsl拨号的web服务器时为了方便管理使用了内网地址。规则如下
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 -j DNAT \
--to-destination 192.168.1.68

对于楼主的情况可能要把掩码扩大到27位
发表于 2004-12-11 00:20:19 | 显示全部楼层
说单网卡双网卡只是为了方便,其实严格意义讲应该指接口,而不一定是实体的网卡,adsl已经产生了一个ppp0,加上eth0,这就两个网络接口了。
其实单网卡(实体)非要写NAT的规则,也不是不可以,通过ip alias设定,弄出个eth0:0什么的,也能作NAT,但是我觉得这样做实在没有什么意义。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表