vsFTPd 服务器初学者精通手册


vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序,非常好用,我都用了好长时间,那下面我就给大家介绍下vsftpd的学习手册。

1、vsFTPd的服务器的启动和关闭;

vsFTPd服务器启动和关闭是极容易的;我们可以直接把服务器运行调到后台运行;这是几乎所有服务器管理的运行方式;

1.1、vsFTPd服务器启动和关闭的通用方法;

运行vsftpd命令,要用到root权限,如果您当前操作用户并非是root,可以用su切换到root权限;关于root权限的切换,您有两种方式,一种是su,另一种是sudo;请参考: 《Linux 系统中的超级权限的控制》

vsFTPd服务器的运行;

[root@localhost ~]# /usr/sbin/vsftpd &

[root@localhost ~]# /usr/local/sbin/vsftpd &

vsFTPd服务器是否运行起来;

我们可以通过pgrep vsftpd 来查看vsftpd是否运行起来;

[root@localhost ~]# pgrep vsftpd

4248

上面显示vsFTPd服务器运行起来了,您可以通过ftp命令、lftp工具或gftp或其它的FTP客户端来测试连接;

vsFTPd 服务器关闭:

我们用pkill vsftpd 来杀死vsftpd进程,这样就把vsFTPd关闭,用psgrep vsftpd 来查看进程,如果没有进程,证明vsFTPd已经关掉;当然也要用到root权限。

[root@localhost ~]# pkill vsftpd

[root@localhost ~]# pgrep vsftpd

1.2、在Fedora/Redhat/CentOS中vsFTPd 服务器的启动和关闭:

在Fedora/Redhat/CentOS中,也可以用下面的方法来启动vsFTPd;当然也要用到root权限;

[root@localhost beinan]# /etc/init.d/vsftpd start

为 vsftpd 启动 vsftpd: [ 确定 ]

重新启动vsFTPd用下面的命令;

[root@localhost beinan]# /etc/init.d/vsftpd restart

关闭 vsftpd: [ 确定 ]

为 vsftpd 启动 vsftpd: [ 确定 ]

关掉vsFTPd服务器,应该用下面的命令;

[root@localhost beinan]# /etc/init.d/vsftpd stop

关闭 vsftpd: [ 确定 ]

2、vsFTPd的服务器和防火墙及SELINUX的关系;(重要)

我在论坛上看到有些弟兄说vsFTPd服务器启动正常,但却不能访问或用户不能上传文件,我感觉应该是防火墙或SELINUX的事;可能FTPD服务器被防火墙或SELINUX的安全机制防住了。所以您必须要让防火墙通过ftp,当然也要让SELINUX通过ftp服务器才行;

在Fedora/Redhat/CentOS中,您要设置一下防火墙,可以把防火墙关掉,或者在自定义中让ftp “通过”防火墙;

[root@localhost ~]# system-config-securitylevel-tui

或者运行一下如下的命令,清除防火墙规则(通用);

[root@localhost beinan]# iptables -F

关于SELINUX服务器的解说 ,可能老手或新手对SELINUX都有点麻烦,建议您SELINUX;或者让vsFTPd服务器跳过SELINUX启动;也就是说要用到 4.1、vsFTPd服务器启动和关闭的通用方法;;这在Fedora/Redhat/CentOS中这样启动vsFTPd服务器是有效的;

当然您可也可以关掉SELINUX,在/etc/selinux/config 配置文件如下;

/etc/selinux/config

# This file controls the state of SELinux on the system.

# SELINUX= can take one of these three values:

# enforcing - SELinux security policy is enforced.

# permissive - SELinux prints warnings instead of enforcing.

# disabled - SELinux is fully disabled.

SELINUX=Disabled #这样就把SELINUX服务器关掉了,请重新启动系统;

# SELINUXTYPE= type of policy in use. Possible values are:

# targeted - Only targeted network daemons are protected.

# strict - Full SELinux protection.

SELINUXTYPE=targeted

3、500 OOPS: vsftpd: refusing to run with writable anonymous root

如果我们已经把vsFTPd服务器启动好了,但登录测试是会出现类似下面的提示;

500 OOPS: vsftpd: refusing to run with writable anonymous root

这表示ftp用户的家目录的权限不对,应该改过才对;

[root@localhost ~]# more /etc/passwd |grep ftp

ftp:x:1000:1000:FTP User:/var/ftp:/sbin/nologin

我们发现ftp用户的家目录在/var/ftp,就是这个/var/ftp的权限不对所致,这个目录的权限是不能打开所有权限的;是您运行了chmod 777 /var/ftp所致;如果没有ftp用户这个家目录,当然您要自己建一个;

如下FTP用户的家目录是不能针对所有用户、用户组、其它用户组完全开放;

[root@localhost ~]# ls -ld /var/ftp

drwxrwxrwx 3 root root 4096 2005-03-23 /var/ftp

修正这个错误,应该用下面的办法;

[root@localhost ~]# chown root:root /var/ftp

[root@localhost ~]# chmod 755 /var/ftp

有的弟兄可能会说,那匿名用户的可读、可下载、可上传怎么办呢?这也简单,在/var/ftp下再建一个目录,权限是777的就行了,再改一改vsftpd.conf就OK了;没有什么难的;

vsFTPd出于安全考虑,是不准让ftp用户的家目录的权限是完全没有限制的,您可以去读一下vsFTPd的文档就明白的了;否则也不能称为最安全的FTP服务器了,对不对?

4、关于vsFTPd配置文件的说明;

vsftpd.conf是vsFTPd服务器的配置文件,此文件一般是/etc/vsftpd.conf或/etc/vsftpd/vsftpd.conf ,以系统为准吧。。

vsftpd.conf配置文件就是vsFTPd服务器的全局控制文件,此配置文件中,每行应该算做一个规则;前面带有#号的服务器不会解释,这和apache 的配置文件类似;#后所接的内容一般是说明性的,或者是关掉某些功能的选项;

vsftpd.conf 这个配置文件并不包括所有您想实现的功能,有些功能的实现,我们要自己动手来解决,我们要学会查vsFTPd的文档和FAQ等,虽然是英文的,但都是比较简单的;我们要习惯看洋文文档,为什么呢?因为Linux本来就是洋人厉害,重量级的软件都是洋人的。呵,兄弟不要抱怨,谁让我们落后了呢?

注意:修改完配置文件后,一定要重启vsFTPd服务器才能生效,切记~~

通过上文的介绍,我相信那些初学者都知道了vsFTPd的基础知识,希望对你们有帮助!

相关内容