首页 > 技术文章 > CentOS 7 使用vsftpd部署FTP服务

zuoliping98 2020-07-31 15:14 原文

CentOS 7 使用vsftpd部署FTP服务

登陆方式

vsftp提供了三种不同的登陆方式:

  • 匿名用户:不需要密码,直接使用用户名anonymous登录。
  • 本地(系统)用户:需要用户名和密码,但此用户名和密码也可以登录服务器。
  • 虚拟用户:需要用户名和密码,但该用户密码不能登录服务器。

1.安装vsftpd

#运行一下命令安装vsftpd
[root@aliyun ~]# yum -y install vsftpd

#运行一下命令启动vsftpd服务
[root@aliyun ~]# systemctl start vsftpd

#运行以下命令设置开机自启动。
[root@aliyun ~]# systemctl enable vsftpd

#运行以下命令查看 FTP 服务端口。
[root@aliyun ~]# netstat -lnpt |grep vsftpd

#运行以下命令重启vsftpd服务。
[root@aliyun ~]# systemctl restart vsftpd

2.相关文件解读

#查看与vsftpd相关的文件
[root@aliyun ~]# rpm -qc vsftpd*

/etc/vsftpd/vsftpd.conf:vsfptd的主要配置文件。查阅 官方 文档 可以避开很多配置相关的坑

/etc/svftpd/ftpusers:控制登录系统用户的黑名单,记录其中的用户禁止登录ftp服务。

/etc/vsftpd/user_list :配合/etc/vsftpd/vsftpd.conf中的userlist_enableuserlist_deny两个配置项使用:1.当userlist_enable=YESuserlist_deny=YES,则/etc/vsftpd/user_list 为黑名单;2.当userlist_enable=YESuserlist_deny=NO/etc/vsftpd/user_list 为白名单;3.当userlist_enable=NO则不启用/etc/vsftpd/user_list

3.匿名用户登陆

修改/etc/vsftpd/vsftpd.conf配置文件,设置anonymous_enable=YES即可实现匿名登陆。若需要给匿名用户分配更多读写权限,可以在配置文件中修改或添加anon_umaskanon_upload_enableanon_mkdir_write_enableanon_other_write_enable等配置项。(修改后记得:wq保存退出,并且重启vsftpd服务)

4.本地(系统)用户登陆

#新建本地用户'xiaoming'
[root@aliyun ~]# adduser xiaoming

#输入以下命令,会提示设置用户xiaoming的密码 
[root@aliyun ~]# passwd xiaoming

修改/etc/vsftpd/vsftpd.conf配置文件,设置local_enable=YES即可使用本地用户登陆。(修改后记得:wq保存退出,并且重启vsftpd服务)

5.虚拟用户登陆

#建立虚拟FTP用户的宿主帐号virtual
[root@aliyun ~]# useradd -s /sbin/nologin virtual

#创建并编辑虚拟用户文件
[root@aliyun ~]# vim /etc/vsftpd/vuser.list
#奇数行为用户名,偶数行为对应的密码,:wq保存退出
xiaohong
12345
xiaohei
12345

#通过db_load工具创建出Berkeley DB格式的数据库文件,没有安装db工具的提前安装
#yum install-y compat-db47.x86_64
[root@aliyun vsftpd]# db_load -T -t hash -f vuser.list vuser.db

[root@aliyun vsftpd]# vim /etc/pam.d/vsftpd.vu
#写入以下两句,:wq保存退出
auth       required     /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
account    required     /lib64/security/pam_userdb.so vdb=/etc/vsftpd/vuser

修改/etc/vsftpd/vsftpd.conf配置文件,设置guest_enable=YESguest_username=virtualpam_service_name=vsftpd.vuvirtual_use_local_privs=YES即可使用虚拟用户登陆。(修改后记得:wq保存退出,并且重启vsftpd服务)

推荐阅读