FTP命令端口21,接收数据端口20?

favorit 2003-04-21 10:12:46
防火墙内部网络有一个FTP服务器,包经过防火墙要做NAT,如:
iptables -t nat -A PREROUTING -p tcp -d 192.168.0.107 --dport 21 -i eth0 -j DNAT --to 192.168.0.7
其中192.168.0.7是Real_FTP,192.168.0.107是地址转换后的IP,eth0是外部网络接口,eth1是内部网络接口
是否对出去的包也应该做NAT?如:
iptables -t nat -A POSTROUTING -p tcp -s 192.168.0.7 --sport 21 -o eth0 -j SNAT --to 192.168.0.107

而且只允许外部网络对FTP服务器访问,不允许该服务器访问外部网络,但是tcp的连接是双向的,如果是这样的话,怎么控制Web服务器不能访问外部网络呢?
偶是刚接触iptables,希望大家指点一下
...全文
173 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
foxjun 2003-04-21
  • 打赏
  • 举报
回复
没有必要用到 --syn ,而且有可能造成一些访问有问题
favorit 2003-04-21
  • 打赏
  • 举报
回复
十分感谢 foxjun(均)的回答!!!

不知下面的是否正确(仅对21端口的操作)
iptables -A FORWARD -p tcp -d 192.168.0.8 --dprot 21 -i eth0 -j ACCEPT
iptables -A FORWARD -p tcp -s 192.168.0.8 --sprot 21 ! --syn -o eth0 -j ACCEPT

因为如果要提供FTP服务的话,肯定有包要出去的
就不知道这样限制试图访问Internet的output包对不对
foxjun 2003-04-21
  • 打赏
  • 举报
回复
是的!但是FTP有时候开了21 20也没办法正常操作
还有些特殊的封包在模块里面!
TCP虽然是双向的,但是的规则有分INPUT 和OUTPUT的!
以前是加了 -b 才是双向的!
repus 2003-04-21
  • 打赏
  • 举报
回复
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -p tcp -d 192.168.0.7 --dprot 21 -i eth0 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -d 192.168.0.107 --dport 21 -i eth0 -j DNAT --to 192.168.0.7

即可解决问题,FORWARD的默认策略假定为DROP
favorit 2003-04-21
  • 打赏
  • 举报
回复
是否是:
iptables -t nat -A POSTROUTING -p tcp -s 192.168.0.8 -o eth1 -j DROP

19,612

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧