Vsftpd 安装与配置

vsftpd安装与配置

本文以vsftp软件3.0.2版本为例,教大家如何配置虚拟用户、验证权限等。
一、vsftp安装
注意:以Redhat7系列(或者支持systemd环境的linux系统)

1、安装包
vsftpd-3.0.2-29.el7_9.x86_64.rpm

2、查询并安装vsftp
rpm -qa | grep vsftpd
rpm -ivh vsftpd-3.0.2-29.el7_9.x86_64.rpm

二、启动vsftp
systemctl enable vsftpd.service
systemctl start vsftpd.service
systemctl status vsftpd.service
vsftpd进程
ps -ef | grep vsftpd
ps -aux | grep vsftpd

三、远端验证ftp
ftp 192.168.142.155

注意:我在搭建过程中遇到如下错误
OOPS: vsftpd: refusing to run with writable root inside chroot()
Login failed. 错误翻译为chroot配置没有写入的权限。只需要在在 vsftpd.conf 加入如下配置即可
vi /etc/vsftpd/vsftpd.conf
allow_writeable_chroot=YES

重启vsftpd服务(Redhat7系列)
systemctl restart vsftpd.service

四、后续配置
1、设置防火墙规则
防火墙加入ftp服务
firewall-cmd --zone=public --add-service=ftp --permanent

主动模式,防火墙开启20、21端口
firewall-cmd --zone=public --add-port=21/tcp --permanent
firewall-cmd --zone=public --add-port=20/tcp --permanent

设置当前ftp存储目录用户权限、chroot_list 文件配置用户登录、设置虚拟用户。
注意:如需在Windows资源管理访问,需要在网络共享中心->Internet属性->高级,开启被动访问ftp(开启兼容模式)

2、设置selinux
设置SELinux为宽容模式或者临时关闭
#临时改成宽容模式
setenforce 0
#查看selinux
# getenforce
Permissive
永久设置selinux,修改配置文件/etc/sysconfig/selinux
#查看,默认配置文件是开启的
cat /etc/sysconfig/selinux
SELINUX=enforcing
#禁用selinux
SELINUX=disable
#宽容模式
SELINUX=Permissive

五、配置示例
1、配置虚拟用户
编辑配置文件加入如下配置:
vi /etc/vsftpd/vsftpd.conf
listen_address=192.168.142.155
anonymous_enable=NO
local_enable=YES
write_enable=YES
allow_writeable_chroot=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=YES
chroot_list_enable=NO
chroot_list_file=/etc/vsftpd/chroot_list
guest_enable=YES
guest_username=ftp
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vconf
listen=YES
listen_ipv6=NO
pam_service_name=vsftpd.vu
pam_service_name=vsftpd
userlist_enable=YES
#tcp_wrappers=YES

在 /etc/vsftpd/chroot_list 加入虚拟用户 zzh1 和 zzh2 ,每行对应一个虚拟用户。
echo 'zzh1' >> /etc/vsftpd/chroot_list
echo 'zzh2' >> /etc/vsftpd/chroot_list

2、新增用户并指定虚拟用户对应的目录
建议:linux下赋予范围内满足需求最小权限即可(权限最小够用原则)。

#创建虚拟用户目录
mkdir -p /u01/ftp/{zzh1,zzh2}
#赋予权限,测试直接赋予最高权限了,实际工作中建议在最小权限范围内满足即可。
chmod -R 777 /u01/ftp/zzh1
chmod -R 777 /u01/ftp/zzh2

3、设置用户名以及密码至数据库
注意:使用的 \n 为正常的换行操作,并在虚拟用户list里面存储用户名以及密码。
#用 vusers.list 来区分本机用户与虚拟用户配置
echo -e "zzh1\n123456\nzzh2\n123456" > /etc/vsftpd/vusers.list
#切换到vsftpd配置目录
cd /etc/vsftpd/
#解析 vusers.list 到 vusers.db
db_load -T -t hash -f vusers.list vusers.db
#赋予权限
chmod 600 vusers.*

4、指定认证方式
echo -e "#%PAM-1.0\n\nauth required pam_userdb.so db=/etc/vsftpd/vusers\naccount required pam_userdb.so db=/etc/vsftpd/vusers" > /etc/pam.d/vsftpd.vu
#创建虚拟配置文件目录
mkdir /etc/vsftpd/vconf
#进入虚拟用户配置文件目录
cd vconf/
#新增配置
echo 'local_root=/u01/ftp/zzh1' > zzh1
echo 'local_root=/u01/ftp/zzh2' > zzh2
#查看配置
ls
zzh1 zzh2
#查看zzh1与zzh2的主目录
cat zzh1
local_root=/u01/ftp/zzh1
cat zzh2
local_root=/u01/ftp/zzh2

#新建测试文件
touch /u01/ftp/zzh1/test1
touch /u01/ftp/zzh2/test2

如果没有指定虚拟用户的ftp目录,默认访问目录就是ftp根目录 /u01/ftp/

5、命令登录验证
ftp 192.168.142.155
或者在资源管理验证测试是否能正常新增、删除、修改文件等,到这里vsftp就配置验证完成了。

  • 17
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ahern_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值