如何安装配置基于DB4的VSFTP?
- By : Will
- Category : FTP & SFTP & FTPS

1 前言
一个问题,一篇文章,一出故事。
笔者需要部署VSFTP服务,由于不喜欢使用传统那个基于用户名和密码的验证,于是笔者尝试使用基于DB4的VSFTP。
2 最佳实践
2.1 准备安装环境
2.1.1 系统的基本配置
Hostname = ftp.cmdschool.org
OS = Oracle Linux 9.x x86_64
IP Address = 192.168.0.21
2.1.2 系统的基本配置
2.1.3 安装BerkeleyDB
需要注意的是,
你需要安装比较低版本的软件包才能兼容,即db-4.8.30.tar.gz(berkeley-db 4.8.30版本,简称DB4),详细请参阅安装文档。
2.2 安装部署
2.2.1 安装软件包
dnf install -y vsftpd
然后,你需要使用如下命令启动并设置服务自动启动,
systemctl start vsftpd.service systemctl enable vsftpd.service systemctl status vsftpd.service
2.2.2 确定系统默认的ftp用户存在
id ftp
可见如下输出,
uid=14(ftp) gid=50(ftp) groups=50(ftp)
2.2.3 修改服务配置文件
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.defalut vim /etc/vsftpd/vsftpd.conf
配置修改如下,
listen=YES anonymous_enable=NO local_enable=YES virtual_use_local_privs=YES write_enable=YES connect_from_port_20=YES pasv_min_port=50000 pasv_max_port=60000 pam_service_name=vsftpd guest_enable=YES guest_username=ftp chroot_local_user=YES allow_writeable_chroot=YES user_sub_token=$USER local_root=/data/ftp/$USER hide_ids=YES xferlog_enable=YES vsftpd_log_file=/var/log/vsftp/vsftpd.log local_umask=0007
根据配置,我们需要手动创建数据目录,
mkdir -p /var/log/vsftp /data/ftp
配置修改后,你需要使用如下命令重载服务使配置生效,
systemctl restart vsftpd.service
2.2.4 配置服务认证文件
vim /etc/pam.d/vsftpd
修改如下配置,
#auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed #auth required pam_shells.so #auth include password-auth #account include password-auth auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/loginusers account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/loginusers
配置意图为只允许虚拟用户访问FTP(注解该类型即拒绝该登录方式),根据配置,你需使用如下命令创建ftp认证的用户名和密码,
echo 'ftpUser01' >> /etc/vsftpd/loginusers echo 'ftpPassword' >> /etc/vsftpd/loginusers
然后,你需要使用如下命令将用户名和密码转换为数据库,
db_load -T -t hash -f /etc/vsftpd/loginusers /etc/vsftpd/loginusers.db
另外基于安全的要求,你需要使用如下命令修改文件的权限,
chmod 0600 /etc/vsftpd/loginusers*
配置修改后,你需要使用如下命令重载服务使配置生效,
systemctl restart vsftpd.service
2.2.3 设置防火墙
firewall-cmd --permanent --add-service ftp firewall-cmd --permanent --add-port 50000-60000/tcp firewall-cmd --reload firewall-cmd --list-all
2.2.6 创建测试用户目录
mkdir -p /data/ftp/ftpUser01/myhome chown root:root /data/ftp/ftpUser01 chmod -R 775 /data/ftp/ftpUser01 chown ftp:ftp /data/ftp/ftpUser01/myhome
2.2.7 创建名称解析
echo '192.168.0.21 ftp.cmdschool.org' >> /etc/hosts
注:以上方法仅适用于测试环境,如果是生产环境请配置DNS
2.2.8 客户端测试
如上图所示,
在ftp客户端FileZilla中,
填写“主机名称”,范例中填写“ftp.cmdschool.org”
填写“用户”,范例中填写“ftpUser01”
填写“密码”,范例中填写“ftpPassword”
单击【连接】即可测试
如果遇到错误提示,请结合如下命令查看日志解决,
tail /var/log/vsftpd.log tail /var/log/secure
参阅文档
=======================
https://www.cnblogs.com/LiuChang-blog/p/14704183.html
https://blog.csdn.net/weixin_34132768/article/details/92820723
没有评论