VSFTPD

第一步: 安装vsftpd软件

shell > dnf install -y vsftpd 

第二步: 防火墙放行端口和服务


# 我这里是修改FTP的默认端口成5566
shell > firewall-cmd --zone=public --permanent --add-port=5566/tcp
shell > firewall-cmd --zone=public --permanent --add-service=ftp
shell > firewall-cmd --reload

第三步:配置

# 备份目录
shell > cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.orig

# 修改配置
shell > vim cp /etc/vsftpd/vsftpd.conf

# 修改一下参数
userlist_enable=YES                          # vsftpd将从userlist_file给定的文件名中加载用户名列表
userlist_file=/etc/vsftpd/vsftpd.userlist    # 存储账户的配置文件
userlist_deny=NO                             # 如果是NO ,则只允许 userlist_file 文件列出的用户才可以登录。如果是YES,则  userlist_file 文件列出的用户不可以登录。
listen_port=5566                             # 监听端口

# 以下配置根据自己需求增加
chroot_local_user=YES                        # 如果是YES,则FTP用户登录后,锁定在用户的home目录,且仅有只读权限
allow_writeable_chroot=YES                   # 将锁定用户在home目录的用户,给与写权限

# PSAV 被动模式,如果开启这个被动接受模式,服务端将自定义开放一个端口与客户端连接,这个时候可以设置开放的端口群,然后记得防火墙打开这些端口的访问权限
pasv_enable=YES
pasv_max_port=10000
pasv_min_port=11000


# 重启软件
shell > systemctl restart vsftpd

# PSAV 被动防火墙
shell > firewall-cmd --add-port=10000-11000/tcp --permanent
shell > firewall-cmd --list-all

第四步:测试

# 创建一个普通系统用户
shell > useradd -m -c "web server file manage" -s /bin/bash www
shell > passwd www

# 将www系统用户加入ftp允许登录用户配置文件
shell > echo "www" | tee -a /etc/vsftpd/vsftpd.userlist
shell > cat /etc/vsftpd/vsftpd.userlist

# 安装ftp客户端连接工具
shell > dnf install ftp -y

# 连接
shell > ftp 127.0.0.1 5566
ftp[user] > www
ftp[password] > password