1.vsFTPd的服务器和防火墙及SELINUX的关系
在论坛上看到有些弟兄说vsFTPd服务器启动正常,但却不能访问或用户不能上传文件,我感觉应该是防火墙或SELINUX的事;可能FTPD服务器被防火墙或SELINUX的安全机制防住了。所以您必须要让防火墙通过ftp,当然也要让SELINUX通过ftp服务器才行;
在Fedora/Redhat/CentOS中,您要设置一下防火墙,可以把防火墙关掉,或者在自定义中让ftp“通过”防火墙;
[root@localhost~]#system-config-securitylevel-tui
或者运行一下如下的命令,清除防火墙规则(通用);
[root@localhostbeinan]#iptables-F
关于SELINUX服务器的解说,可能老手或新手对SELINUX都有点麻烦,建议您SELINUX;或者让vsFTPd服务器跳过SELINUX启动;这在Fedora/Redhat/CentOS中这样启动vsFTPd服务器是有效的;
当然您可也可以关掉SELINUX,在/etc/selinux/config配置文件如下;
/etc/selinux/config
#ThisfilecontrolsthestateofSELinuxonthesystem.
#SELINUX=cantakeoneofthesethreevalues:
#enforcing-SELinuxsecuritypolicyisenforced.
#permissive-SELinuxprintswarningsinsteadofenforcing.
#disabled-SELinuxisfullydisabled.
SELINUX=Disabled#这样就把SELINUX服务器关掉了,请重新启动系统;
#SELINUXTYPE=typeofpolicyinuse.Possiblevaluesare:
#targeted-Onlytargetednetworkdaemonsareprotected.
#strict-FullSELinuxprotection.
SELINUXTYPE=targeted
2.500OOPS:vsftpd:refusingtorunwithwritableanonymousroot
如果我们已经把vsFTPd服务器启动好了,但登录测试是会出现类似下面的提示;
500OOPS:vsftpd:refusingtorunwithwritableanonymousroot
这表示ftp用户的家目录的权限不对,应该改过才对;
[root@localhost~]#more/etc/passwd|grepftp
ftp:x:1000:1000:FTPUser:/var/ftp:/sbin/nologin
我们发现ftp用户的家目录在/var/ftp,就是这个/var/ftp的权限不对所致,这个目录的权限是不能打开所有权限的;是您运行了chmod777/var/ftp所致;如果没有ftp用户这个家目录,当然您要自己建一个;
如下FTP用户的家目录是不能针对所有用户、用户组、其它用户组完全开放;
[root@localhost~]#ls-ld/var/ftp
drwxrwxrwx3rootroot40962005-03-23/var/ftp
修正这个错误,应该用下面的办法;
[root@localhost~]#chownroot:root/var/ftp
[root@localhost~]#chmod755/var/ftp
有的弟兄可能会说,那匿名用户的可读、可下载、可上传怎么办呢?这也简单,在/var/ftp下再建一个目录,权限是777的就行了,再改一改vsftpd.conf就OK了;没有什么难的;
vsFTPd出于安全考虑,是不准让ftp用户的家目录的权限是完全没有限制的,您可以去读一下vsFTPd的文档就明白的了;否则也不能称为最安全的FTP服务器了,对不对?