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_enable
和userlist_deny
两个配置项使用:1.当userlist_enable=YES
且userlist_deny=YES
,则/etc/vsftpd/user_list
为黑名单;2.当userlist_enable=YES
且userlist_deny=NO
则/etc/vsftpd/user_list
为白名单;3.当userlist_enable=NO
则不启用/etc/vsftpd/user_list
。
3.匿名用户登陆
修改/etc/vsftpd/vsftpd.conf
配置文件,设置anonymous_enable=YES
即可实现匿名登陆。若需要给匿名用户分配更多读写权限,可以在配置文件中修改或添加anon_umask
、anon_upload_enable
、anon_mkdir_write_enable
和anon_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=YES
、guest_username=virtual
、pam_service_name=vsftpd.vu
、virtual_use_local_privs=YES
即可使用虚拟用户登陆。(修改后记得:wq
保存退出,并且重启vsftpd服务)