[i=s] 本帖最后由 昊昊荡荡 于 2010-9-26 23:28 编辑 [/i]
我日常用的fedora 13(实体机)开启了vsftpd和sshd服务,主要浏览网页。vsftpd为主动模式。今天对vsftpd进行了设置,见下:
[root@fedora13 ~]# iptables -L -n
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 这个地方是执行iptables -I INPUT 1 -i lo -p all-j ACCEPT的结果,别以为是对所有访问放行
LOG all -- 0.0.0.0/0 0.0.0.0/0 state INVALID LOG flags 6 level 4 prefix `DROP INVALID'
DROP all -- 0.0.0.0/0 0.0.0.0/0 state INVALID
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 state NEW
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:21
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:20
Chain FORWARD (policy DROP)
target prot opt source destination
Chain OUTPUT (policy DROP)
target prot opt source destination
LOG all -- 0.0.0.0/0 0.0.0.0/0 state INVALID LOG flags 6 level 4 prefix `DROP INVALID'
DROP all -- 0.0.0.0/0 0.0.0.0/0 state INVALID
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 state NEW
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 state NEW
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 state NEW
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:53 state NEW
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:21
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:20
但问题是,我在同局域网内的另一台机器上用ftp 连接时,总是提示与远程主机断开连接。
昊昊荡荡 于 2010-09-27 13:55:30发表:
顶一下,让更多的人看到解决办法!
昊昊荡荡 于 2010-09-26 23:49:20发表:
本人对iptables非常感兴趣,希望坛里的iptables爱好者能多交流,谢谢!
昊昊荡荡 于 2010-09-26 23:45:44发表:
[i=s] 本帖最后由 昊昊荡荡 于 2010-9-26 23:47 编辑 [/i]
经多次实验,终于解决了这个问题。现在我把这个问题的解决办法写下了,方便跟我有同样困惑的人参看。也请高手斧正!
其实,出现这样的问题,并不是防火墙的配置出了什么问题。如果非要说防火墙有什么问题,也只能说,在OUTPUT链,因为有了“ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED”这行配置,所以“ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:21”这行和ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:20这行都是可以删掉的。当然这不能算是错,只能说不够严谨和完美。
这是防火墙配置上的问题。
客户端不能访问vsftpd服务问题到底出在哪里呢?下面揭晓----
客户端要顺利访问vsftpd服务,还应加载三个模块,指令如下:
modprobe ip _conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
这三个模块的作用分别是:
ip_conntrack模块能够使防火墙具有连接跟踪能力。(通过输入 "cat /proc/net/ip_conntrack" 可以查看您的机器参与的活动网络连接。)加载这个模块后,基本上所有有状态的返回包都能识别,例:telnet,http,QQ,mail,ping,dns等。
实际上,加载了ip_conntrack模块,ftp已经能够登陆,并能使用象pwd,cd等命令,但当使用ls命令显示文件内容时,就会timeout。原因在于显示文件列表的包防火墙无法识别,就会进入默认策略----禁止,此时就需要加载ip_conntrack_ftp模块。ip_conntrack_ftp模块使防火墙能够识别FTP某类特殊的返回包。
如果防火墙上对所有出去的返回包作了伪装,就需要加载ip_nat_ftp模块。ip_nat_ftp模块在出去的包作了伪装以后,必须加载,否则防火墙无法知道返回的包该转发到哪里。
后经多次实验,发现上面三个模块,只要加载了ip_conntrack_ftp模块,即可实现客户端对vsftpd服务的正常访问。加载ip_conntrack模块时是提示找不到这个模块。不知什么原因,Google也没找答案,还望高手指点。
昊昊荡荡 于 2010-09-26 23:28:30发表:
哪里哪里,只因linux太迷人了,我被她深深的吸引了!
wozdaixxma 于 2010-09-26 20:19:36发表:
昊昊荡荡同学很是好学啊,升级也很快
zifeiyu-fish 于 2010-09-16 12:23:21发表:
学习~
昊昊荡荡 于 2010-09-16 00:01:01发表:
继续顶!
昊昊荡荡 于 2010-09-15 01:17:38发表:
顶顶顶!
有知道的吗?
昊昊荡荡 于 2010-09-14 12:10:26发表:
再顶!
昊昊荡荡 于 2010-09-13 23:19:53发表:
自己顶!这么简单的问题都没人知道吗?