centos7.9安装vsftpd

1.推荐使用dnf安装
sudo dnf install vsftpd -y

 或者下载安装https://security.appspot.com/vsftpd.html

rpm -ivh vsftpd-3.0.2-29.el7_9.x86_64.rpm
 2.检查是否安装
rpm -qa | grep vsftpd
3.安装完成后,启动 vsftpd 服务并设置开机自启动 
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
sudo systemctl status vsftpd
4.创建虚拟用户(不建议创建系统用户):安装libdb-utils
sudo yum install vsftpd libdb-utils -y
5.创建虚拟用户配置
sudo nano /etc/vsftpd/virtual_users.txt

在文件中按如下方式配置,用户名和密码交替书写(如 ftpuser1 的密码是 123456ftpuser2 的密码是 password):

ftpuser1
123456
ftpuser2
654321
6.创建虚拟用户数据库

使用 db_load 命令将上面的用户名和密码文件转换为数据库文件,并设置权限

sudo db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
sudo chmod 600 /etc/vsftpd/virtual_users.db

后续每增加一个用户,都需要执行上面的第一行命令进行用户同步,可以将此命令写入脚本文件,后续只需执行脚本即可。

7.配置 PAM 认证,创建或编辑 /etc/pam.d/vsftpd.virtual 文件
sudo nano /etc/pam.d/vsftpd.virtual

在文件中添加以下内容:

auth    required    pam_userdb.so db=/etc/vsftpd/virtual_users
account required    pam_userdb.so db=/etc/vsftpd/virtual_users

这将告诉 vsftpd 使用 /etc/vsftpd/virtual_users.db 作为虚拟用户认证数据库。

8.配置 vsftpd,编辑 vsftpd 配置文件 /etc/vsftpd/vsftpd.conf,以启用虚拟用户并为每个用户指定不同的配置文件。
sudo nano /etc/vsftpd/vsftpd.conf

确保有以下配置:

# 允许本地用户
local_enable=YES

# 允许写入
write_enable=YES

# 禁用匿名用户
anonymous_enable=NO

# 启用虚拟用户
guest_enable=YES
guest_username=ftp

# 使用 PAM 认证
pam_service_name=vsftpd.virtual

# 启用 chroot 将用户限制在主目录
chroot_local_user=YES

# 虚拟用户配置文件目录
user_config_dir=/etc/vsftpd/vuser_conf
9.为每个虚拟用户配置访问权限

创建用户配置文件目录

sudo mkdir /etc/vsftpd/vuser_conf

为每个虚拟用户创建配置文件

ftpuser1 创建配置文件,并添加以下内容,设置用户的根目录和写权限:

sudo nano /etc/vsftpd/vuser_conf/ftpuser1

添加内容: 

#根目录根据需要更改成实际存在的目录即可
local_root=/ftp_users/ftpuser1
write_enable=YES

ftpuser2 创建类似的配置文件:

sudo nano /etc/vsftpd/vuser_conf/ftpuser2

 添加内容:

#根目录根据需要更改成实际存在的目录即可
local_root=/ftp_users/ftpuser2
write_enable=YES

设置虚拟用户的目录访问权限

#根据需要将目录改成自己的
sudo mkdir -p /ftp_users/ftpuser1
sudo mkdir -p /ftp_users/ftpuser2

sudo chown -R ftp:ftp /ftp_users/ftpuser1
sudo chown -R ftp:ftp /ftp_users/ftpuser2
10.设置防火墙并重启vsftpd服务
sudo firewall-cmd --permanent --add-service=ftp
sudo firewall-cmd --reload

sudo systemctl restart vsftpd

现在可以使用 ftpuser1ftpuser2 测试连接(端口21),并验证他们各自是否只能访问指定的目录。

用FileZilla尝试连接报错:

响应:    500 OOPS: vsftpd: refusing to run with writable root inside chroot()
解决办法:编辑 vsftpd 配置文件

sudo nano /etc/vsftpd/vsftpd.conf

添加或修改以下配置

allow_writeable_chroot=YES

保存文件并重启 vsftpd

sudo systemctl restart vsftpd

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值