LinuxSir.cn,穿越时空的Linuxsir!

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

iptables 设置FTP访问

[复制链接]
发表于 2007-1-23 16:09:41 | 显示全部楼层 |阅读模式
启动防火墙以后,默认状态下规则为:

  1. [root@testing24 root]# iptables -L -n
  2. Chain INPUT (policy ACCEPT)
  3. target     prot opt source               destination         
  4. RH-Firewall-1-INPUT  all  --  0.0.0.0/0            0.0.0.0/0         

  5. Chain FORWARD (policy ACCEPT)
  6. target     prot opt source               destination         
  7. RH-Firewall-1-INPUT  all  --  0.0.0.0/0            0.0.0.0/0         

  8. Chain OUTPUT (policy ACCEPT)
  9. target     prot opt source               destination         

  10. Chain RH-Firewall-1-INPUT (2 references)
  11. target     prot opt source               destination         
  12. ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0         
  13. ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0          icmp type 255
  14. ACCEPT     esp  --  0.0.0.0/0            0.0.0.0/0         
  15. ACCEPT     ah   --  0.0.0.0/0            0.0.0.0/0         
  16. ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0          state RELATED,ESTABLISHED
  17. REJECT     all  --  0.0.0.0/0            0.0.0.0/0          reject-with icmp-host-prohibited
复制代码

然后使用如下操作,

  1. [root@testing24 root]# iptables -A OUTPUT -p tcp --dport 21 -j ACCEPT
  2. [root@testing24 root]# iptables -A INPUT -p tcp --sport 21 -j ACCEPT
  3. [root@testing24 root]# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  4. [root@testing24 root]# iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
复制代码


执行后IPTABLE的规则为:

  1. [root@testing24 root]# iptables -L -n
  2. Chain INPUT (policy ACCEPT)
  3. target     prot opt source               destination         
  4. RH-Firewall-1-INPUT  all  --  0.0.0.0/0            0.0.0.0/0         
  5. ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0          tcp spt:21
  6. ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0          state RELATED,ESTABLISHED

  7. Chain FORWARD (policy ACCEPT)
  8. target     prot opt source               destination         
  9. RH-Firewall-1-INPUT  all  --  0.0.0.0/0            0.0.0.0/0         

  10. Chain OUTPUT (policy ACCEPT)
  11. target     prot opt source               destination         
  12. ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0          tcp dpt:21
  13. ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0          state RELATED,ESTABLISHED

  14. Chain RH-Firewall-1-INPUT (2 references)
  15. target     prot opt source               destination         
  16. ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0         
  17. ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0          icmp type 255
  18. ACCEPT     esp  --  0.0.0.0/0            0.0.0.0/0         
  19. ACCEPT     ah   --  0.0.0.0/0            0.0.0.0/0         
  20. ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0          state RELATED,ESTABLISHED
  21. REJECT     all  --  0.0.0.0/0            0.0.0.0/0          reject-with icmp-host-prohibited
复制代码


结果用FTP软件不能连接上。那位高人,指点下,谢谢!!
发表于 2007-1-23 16:46:49 | 显示全部楼层
客户端一般都采用passive模式:服务器要开一部分非特权端口,即1024以上的,允许客户端连接,作为数据通道。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-23 17:00:20 | 显示全部楼层
Post by seamonkey
客户端一般都采用passive模式:服务器要开一部分非特权端口,即1024以上的,允许客户端连接,作为数据通道。


先谢谢你的回复。但是具体怎么搞呢?我怎么知道开1024上的那些端口呢?

我在另外一台服务器上连接时报错:
[trul_test@testing28 trul_test]$ ftp 172.16.1.24
ftp: connect: No route to host
ftp>

上面我执行那几个命令有啥子问题没的呢?
回复 支持 反对

使用道具 举报

发表于 2007-1-23 17:42:35 | 显示全部楼层
traceroute能到达吗?服务器是如何连到互联网的,是直接连的吗?应该就是iptables问题。

你的规则有些奇怪,
Chain INPUT (policy ACCEPT)
最后加了条
REJECT     all  --  0.0.0.0/0            0.0.0.0/0          reject-with icmp-host-prohibited
回复 支持 反对

使用道具 举报

发表于 2007-1-23 19:01:10 | 显示全部楼层
Post by fush_linux
先谢谢你的回复。但是具体怎么搞呢?我怎么知道开1024上的那些端口呢?

我在另外一台服务器上连接时报错:
[trul_test@testing28 trul_test]$ ftp 172.16.1.24
ftp: connect: No route to host
ftp>

上面我执行那几个命令有啥子问题没的呢?

你先ping 一下172.16.1.24,看一看ping不ping通!(ftp :connect:NO route to host)

然后你的FTP要设置为被动模式!你设置的默认策略为ACCEPT,iptables是没有封那些1024以上的那些端口的!
回复 支持 反对

使用道具 举报

发表于 2007-1-23 19:03:00 | 显示全部楼层
iptables是没有封那些1024以上的那些端口的!


你看他的规则呢。
回复 支持 反对

使用道具 举报

发表于 2007-1-23 19:15:45 | 显示全部楼层
Post by seamonkey
你看他的规则呢。

~多谢指出错误!~~
刚才再看了一下
在INPUT链中..
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0          tcp spt:21
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0          state RELATED,ESTABLISHED

应该放在RH-Firewall-1-INPUT  all  --  0.0.0.0/0            0.0.0.0/0  前面吧!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-24 10:33:06 | 显示全部楼层

感谢那么多好心人的帮助

Post by sweety00
你先ping 一下172.16.1.24,看一看ping不ping通!(ftp :connect:NO route to host)

然后你的FTP要设置为被动模式!你设置的默认策略为ACCEPT,iptables是没有封那些1024以上的那些端口的!


我试着PING了下
[forcrm@testing008 expac_ant]$ ping 172.16.1.24
PING 172.16.1.24 (172.16.1.24) 56(84) bytes of data.
64 bytes from 172.16.1.24: icmp_seq=0 ttl=64 time=1.14 ms
64 bytes from 172.16.1.24: icmp_seq=1 ttl=64 time=0.142 ms

说明是可以PING通的,你说的被动模式怎么设置?

另外问个问题哈,我设置打开22端口的时候,使用
iptables -A INPUT -p tcp --dport 22 -j ACCEPT不行,必须将-A修改成-I,为什么添加规则无效,而使用I插入就行呢?这个设置有什么规律吗?

谢谢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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