vsftpd安装和使用

刚才想安装一个博客相关的插件,结果提示需要使用到ftp进行文件的安装,才想到我服务器没有搭建ftp服务,于是有了这篇文章。这一篇是新写的,不是从以前的云笔记迁移过来的。

首先判断你服务器上是否安装了vsftpd

rmp -q vsftpd

如果提示你没有安装,则使用以下命令安装

yum -y install vsftpd

安装完成之后就启动vsftpd服务

service vsftpd start

到vsftpd的主配置文件里面, /etc/vsftpd/vsftpd.conf

把这个改为NO 默认是YES (改为NO 就是禁止匿名用户登录,不需要注释)

把ftp用户限制在自己的家目录,否则太危险了

默认是注释掉的,把#号去掉 然后重启vsftpd

创建ftp用户,创建的时候ftp用户家目录根据自己要求指定,比如我的是/usr/share/nginx/html目录。

useradd -s /sbin/nologin -d /usr/share/nginx/html  wanlianbo

(注:wanlianbo这个用户只能连接ftp无法登录系统,默认家目录是在/usr/share/nginx/html 文件夹下面)

给wanlianbo这个用户设置密码

passwd wanlianbo

给这个用户加上之前设定的家目录写的权限,不然无法上传文件

chmod o+w /usr/share/nginx/html

重启vsftpd服务,并且下次自动启动

service vsftpd restart

chkconfig vsftpd on

检查防火墙是否开启,开启需要关闭防火墙

service iptables status

service iptables stop

然后用软件来链接ftp测试一下

我使用的是firefox的一个插件FireFTP,可以在Extension里搜索安装,然后在自定义里把图标显示在菜单栏里。

点击打开后,创建一个连接目标,如下图:

把需要连接的目标机器ip和刚才创建的ftp用户名和密码填入,自己取一个连接名称点击OK即可。如下图:

选中刚才创建的连接,点击connect:

连接时,下面的控制台会输出信息,成功后,就能看到给用户设定的家目录下的文件了:

vsftpd高级用法之虚拟用户配置

1,安装vsftpd,然后如下配置(/etc/vsftpd/vsftpd.conf)
pam_service_name=vsftpd    #设置PAM使用的名称,该名称就是/etc/pam.d/目录下vsfptd文件的文件名

userlist_enable=YES

tcp_wrappers=YES

local_root=/home/wwwroot/asobio/mgm/    #虚拟用户的家目录

guest_enable=YES    #表示是否开启vsftpd虚拟用户的功能,yes表示开启,no表示不开启。

guest_username=vsftpd    #映射到系统的系统用户

user_config_dir=/etc/vsftpd/vuser_conf     #指定每个虚拟用户账号配置目录

2,创建虚拟用户文件,把这些用户名和密码存放在一个文件中
//生成虚拟用户口令库文件,按照格式编辑口令文件。单数行为用户名,偶数行为用户口令
#vi login.txt
liyangsuper//用户名
real//口令
patterson//用户名
jef//口令
guest//用户名
guest//口令
//存盘退出
3,这个文件的虚拟用户和密码的文本文件无法被系统帐号直接调用,所以我们需要使用db_load命令生成db口令数据库文件,命令如下:
db_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/login.db

4,为了使服务器能够使用上述生成的数据库文件,对客户端进行身份验证,需要调用系统的PAM模块。PAM(Plugable Authentication Module)为可插拔认证模块,不必重新安装应用系统,通过修改指定的配置文件,调整对该程序的认证方式。PAM模块配置文件路径为/etc/pam.d/目录,此目录下保存着大量与认证有关的配置文件,并以服务名称命名。我们现在切换到/etc/pam.d/ 目录下,编辑vsfptd文件。如下图:

auth是指对用户的用户名口令进行验证。

accout是指对用户的帐户有哪些权限哪些限制进行验证。

再后面的/lib64/security/pam_userdb.so表示该条审核将调用pam_userdb.so这个库函数进行。

注意该函数会根据系统的位数而所在位置不同。

如果是32bit系统,该文件所在位置是/lib/security/pam_userdb.so
如果是64bit系统,该文件所在位置是/lib64/security/pam_userdb.so
最后db=/etc/vsftpd/login则指定了验证库函数将到这个指定的数据库中调用数据进行验证。其实该文件指的是/etc/vsftpd/login.db文件。
注意:db=/etc/vsftpd/login格式是这样的,去掉.db后缀。

4,PAM配置完毕后,我们现在开始创建虚拟用户与系统用户对应的文件。切换到/etc/vsftpd/vuser_conf目录下,并创建mgm文件。注意该文件名称一定要与login.txt中的虚拟用户要对应。比如现在login.txt文件有mgm用户,那么在 /etc/vsftpd/vuser_conf目录下创建一个文件名为mgm的文件。[root@localhost vsftpd]# vim /etc/vsftpd/vuser_conf/mgm

local_root=/home/wwwroot/asobio/mgm/   #表示使用本地用户登录到ftp时的默认目录
virtual_use_local_privs=YES   #虚拟用户和本地用户有相同的权限
guest_username=vsftpd   #表示的是设置FTP对应的系统用户为vsftpd
write_enable=YES

anon_umask=022
5,以上配置完毕后,启动vsftpd服务完成.
6,登录时要区分是主动还是被动模式.
注:有时候登录后不能创建文件或目录,一个问题是SELINUX不是设置的disabled,另一个问题是先得在虚拟根目录下建一个目录,给虚拟用户使用。
另:
vsftpd安装,配置,案例与常见问题的网页:
http://os.51cto.com/art/201008/222036.htm