vsftpd搭建

391 阅读2分钟

简介

vsftpd是very secure FTP daemon的缩写,是一款在Linux发行版中最受推崇的、完全免费的、开放源代码的ftp文件服务器软件,其支持很多其他的 FTP 服务器所不支持的特征,具有很高的安全性。

安装

  1. 安装:yum -y install vsftpd

配置vsftpd:

vsftpd支持匿名用户、系统用户和虚拟用户三类账号登陆, 匿名用户访问存在安全问题,系统用户访问可以解决匿名用户带来的安全问题,但是系统用户使用系统账号和系统密码进行访问,依然存在安全隐患,所以实际工作中大多使用虚拟用户访问ftp服务器:多个虚拟用户映射一个系统用户,虚拟用户和所映射的系统用户均不能登陆linux系统,用户只能通过虚拟用户登陆ftp服务器,这样大大提高了系统安全性,步骤如下:

  1. 创建存储虚拟用户账户和密码的文件,并添加虚拟用户账户和密码
  • vim /etc/vsftpd/virtusers.txt
  • 添加用户信息,第一行为账号,第二行为密码,依此类推
  1. 生成虚拟用户账号和密码认证文件:
  • db_load -T -t hash -f /etc/vsftpd/virtusers.txt /etc/vsftpd/virtusers.db #db_load
  1. 配置pam验证文件:
    • vim /etc/pam.d/vsftpd
    • 注释掉原有配置,就可以禁止系统用户登录
    • 末尾追加以下配置:
       auth          required     pam_userdb.so db=/etc/vsftpd/virtusers
       account       required     pam_userdb.so db=/etc/vsftpd/virtusers
      
  2. 创建虚拟用户所映射的系统用户、ftp上传下载根目录
    • useradd vsftpd -d /home/share -s /sbin/nologin
    • chmod 755 /home/share
  3. 修改/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()

开放端口:

- `firewall-cmd --zone=public --add-port=21/tcp --permanent`
- `firewall-cmd --reload`

启动:

- `systemctl start vsftpd.service`

开机启动:

- `systemctl enable vsftpd.service`