linuxbox (pqrt) | | INTERNAL ------ ABCD ----- INTERNET (pqrs) (mnok)
ABCD有3个接口连接到linuxbox,INTERNAL N / W,INTERNET。
Linuxbox有一个私有地址(pqrt)。 目前我在ABCD上从linuxbox到INTERNET抓包。
我有一个关于FTP从linuxbox的小疑问,因为我必须支持ftp从linuxbox到INTERNAL N / W以及互联网。
我怎样才能纠正一个在ABCD中存在的iptables的规则,在那里它可以决定ftp服务器的目的IP地址是否在INTERNAL N / W之内,或者在INTERNET里面,然后做相应的处理。
如果linuxbox(pqrt)和INTERNAL(pqrs)在同一个子网上,那么你不应该打ABCD,因为它在你描述的场景中的确像一个伪装的路由器。 我必须假定在ABCD上启用了转发function,否则你将不会从那里连接到互联网,而且我还必须假定正确的路由已经到位,否则你的内部客户端将不会返回stream量。
什么womble说是正确的,但如果这是应该的电缆,那么ftp应该工作,如果它不是你的问题可能不是与ABCD。 您可以添加iptableslogging特定的stream量,看看是否ABCD是问题,如下所示:
iptables -A INPUT -p tcp -m tcp --destination-port 21 -j LOG --log-level 7 --log-prefix "FTP Testing"
如果networking上有大量FTPstream量,那么当然可以限制获得stream量logging的主机。 完成后closures它,因为它可以非常快地填满日志。
如果你想要一台机器在不同的网段,你应该把它放在一个单独的IP子网中 – 这样正常的路由工作就可以了。 如果真的无法完成,可以使用一种名为“代理ARP”的技术,其中网关盒(“ABCD”)可以伪装成networking上的其他机器,并代表彼此响应ARP请求。 不过,我不build议这样做,除非你真的知道自己在做什么,而且你应该创build单独的子网(这不像你没有足够的RFC1918空间)。
您需要设置的NAT规则是POSTROUTING规则(snat)。
POSTROUTING意味着生根后,你只能匹配到INTERNET的数据包,因为你的路由表已经决定了它。
有点像这样的想法:
iptables -t nat -I POSTROUTING -o nameOfABCDInterfaceGoingToInternet -p tcp etc …
如果ABCD是一个专门的路由器/交换机设备,那么它应该只是工作。 只需将内部networking服务器插入备用端口即可。 但是,如果ABCD是一个有多个NIC的服务器(因为它似乎来自你的问题),那么你将不得不将NIC连接在一起。
您将不再有两个网卡,但只有一个网桥设备在它们的位置,将作为一个单一的“网卡”。 一切似乎都在pqr0 / 24networking中。 您的防火墙规则应该更新以反映新设备(网桥)。 如果您需要限制INTERNAL和linuxbox中的机器之间的stream量,那么您需要编写这些规则。 请记住,FTP有两个非常不同的协议scheme,您需要考虑。 至于与INTERNET的沟通,你只需要改变那些已经在linuxbox上工作的规则来反映新的设备。
顺便说一句,你不应该select你自己的pqr0networking号码。 已经有一个专门用于这种types的范围。 / 16networking是192.168.xx,好像你应该使用它。 阅读它 。 / 16networking允许2 ^ 16 = 65,536(路由器和广播地址减2)。 192.168.1 / 8允许大约256个主机。 应该有一个规则,丢弃RFC1918源地址的数据包。