vsftpd 是“very secure FTP daemon”的缩写,是一款在Linux发行版中最受推崇的、完全免费的、开放源代码的ftp文件服务器软件,其支持很多其他的 FTP 服务器所不支持的特征,具有很高的安全性。
安装:
1、安装vsftpd:yum -y install vsftpd
2、配置vsftpd:
vsftpd支持匿名用户、系统用户和虚拟用户三类账号登陆, 匿名用户访问存在安全问题,系统用户访问可以解决匿名用户带来的安全问题,但是系统用户使用系统账号和系统密码进行访问,依然存在安全隐患,所以实际工作中大多使用虚拟用户访问ftp服务器:多个虚拟用户映射一个系统用户,虚拟用户和所映射的系统用户均不能登陆linux系统,用户只能通过虚拟用户登陆ftp服务器,这样大大提高了系统安全性,步骤如下:
a、创建存储虚拟用户账号和密码的文件,并添加虚拟用户账号和密码:
i、vim /etc/vsftpd/virtusers.txt
ii、添加用户信息,其中第一行为账号,第二行为密码,以此类推,如下所示:
iii、保存用户信息。
b、生成虚拟用户账号和密码认证文件:
db_load -T -t hash -f /etc/vsftpd/virtusers.txt /etc/vsftpd/virtusers.db #db_load 用于对信息文件进行hash加密,并生成二进制数据库文件,此时加密前的信息文件可以删除
c、配置pam验证文件
i、vim /etc/pam.d/vsftpd
ii、注释掉所有原有配置,可以禁止系统用户登陆
iii、末尾换行,添加如下配置:
auth required pam_userdb.so db=/etc/vsftpd/virtusers
account required pam_userdb.so db=/etc/vsftpd/virtusers
iv、保存配置信息。
d、创建虚拟用户所映射的系统用户、ftp上传下载根目录:
useradd vsftpd -d /home/share -s /sbin/nologin
chmod 755 /home/share
e、修改/etc/vsftpd/vsftpd.conf配置文件,如下所示:
anonymous_enable=NO #关闭匿名用户登录,不影响虚拟用户登陆
write_enable=YES #允许上传文件到FTP服务器
anon_upload_enable=YES #允许上传文件
anon_mkdir_write_enable=YES #允许创建和删除目录
anon_other_write_enable=YES #允许文件重命名、文件删除和文件覆盖
anon_world_readable_only=NO #允许浏览FTP目录和下载
chroot_local_user=YES #设置系统用户只能访问ftp根目录及其子目录,不能访问该目录的上级目录
pam_service_name=vsftpd #指定pam服务名,该名称为/etc/pam.d/目录下vsfptd文件的文件名
guest_enable=YES #开启虚拟用户
guest_username=vsftpd #指定虚拟用户所映射的系统用户
allow_writeable_chroot=YES#在vsftpd 2.3.5之后,vsftpd增强了安全检查,如果系统用户只能访问ftp根目录及其子目录,则该根目录(/home/share)不能有写权限,如果检查发现还有写权限,则登陆ftp服务器时报错:500 OOPS: vsftpd: refusing to run with writable root inside chroot()
3、开放端口:
firewall-cmd --zone=public --add-port=21/tcp --permanent
firewall-cmd --reload
4、启动:systemctl start vsftpd.service
5、开机启动:systemctl enable vsftpd.service