搭建环境:
1)配置好网络和软件仓库
2)vim /etc/sysconfig/selinux
3)reboot 重启
1、安装vsftp与lftp
服务器:
dnf install vsftpd.x86_64 lftp.x86_64 -y ##安装vsftp与lftp
firewall-cmd --permanent --add-service=ftp ##关闭火墙,使别人可以访问
firewall-cmd --reload
firewall-cmd --list-all
systemctl enable --now vsftpd ##开启vsftp服务
客户端:
dnf install lftp.x86_64 ##安装lftp
2、匿名用户控制访问
客户端里编辑vsftpd的配置文件/etc/vsftpd/vsftpd.conf
登陆控制:
anonymous_enable=YES|NO ##是否可以匿名访问
家目录控制
anon_root=/westosdir (该目录的权限需为755)
上传控制
anon_upload_enable=YES|NO
注意要修改目录的权限与所有组,不然在此目录下的操作会受权限限制,若更改了家目录则需要对指定的家目录进行这些修改
chmod 775 /var/ftp/pub ##更改家目录pub的权限
chgrp ftp /var/ftp/pub ##更改家目录pub的所有组
目录建立控制
anon_mkdir_write_enable=YES|NO
下载控制
anon_word_readable_only=NO ##匿名用户可以下载不能读的文件
删除重命令控制
anon_other_write_enable=YES|NO
匿名用户上传文件权限设定
anon_umask=xxx
anon_umask=022 ##当设定chown_username之后上传文权限将不是用此参数设定
更改匿名用户上传文件的用户身份
chown_upload=YES
chown_username=lee
chown_upload_mode=0644 ##此时设置的anon_umask无效
登陆数量控制:
max_clients=2
上传速率控制
anon_max_rate=102400 ##最大上传速率为102400b
3、本地用户访问
开启本地访问
local_enable=NO|YES
家目录控制
local_root=/westosdir
写权限控制
write_enable=NO|YES
上传文件权限控制
local_umask=077
用户登陆控制
/etc/vsftpd/ftpusers ##最高级的黑名单
/etc/vsftpd/user_list ##默认黑名单(可变为白名单)
用户登陆白名单
userlist_deny=NO #设定/etc/vsftpd/user_list是白名单
锁定用户到自己的家目录中
chmod u-w /home/*
chroot_local_user=YES ##此时本地用户都被锁定
锁定用户到自己的家目录中的白名单
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list ##此时为白名单(不被锁定)
锁定用户到自己的家目录中的黑名单
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list ##此时为黑名单(被锁定)
4、虚拟用户建立
1)vim /etc/vsftpd/westos_pam #建立认证文件模板
user1
123
user2
456
user3
789
2)db_load -T -t hash -f westos_pam westos_pam.db ##加密认证文件 -T 转换 -t type -f 指定转换文件
3)vim /etc/pam.d/westos ##编写认证策略
account required pam_userdb.so db=/etc/vsftpd/westos_pam
auth required pam_userdb.so db=/etc/vsftpd/westos_pam
4)vim /etc/vsftpd/vsftpd.conf
pam_service_name=westos ##指定认证策略文件
guest_enable=YES ##指定虚拟用户功能开启
guest_username=ftp ##指定虚拟用户在ftp服务器上的用户身份
客户端中验证:
5、虚拟用户家目录
mkdir -p /ftphome/user{1..3} ##建立家目录,并且建些文件以便验证
vim /etc/vsftpd/vsftpd.conf
-----pam_service_name=westos
-----guest_enable=YES
-----guest_username=ftp
-----local_root=/ftphome/$USER ##指定家目录
-----user_sub_token=$USER
systemctl restart vsftpd
客户端验证:
6、用户配置独立(只给某些用户指定权利)
chmod 775 /etc/user{1..3}/pub
chgrp ftp /etc/user{1..3}/pub
实例:给user2上传权利,user1和user2不能上传
先将所用上传权限都关掉
vim /etc/vsftpd/vsftpd.conf
-----user_config_dir=/etc/vsftpd/westos #在此目录中与用户名称相同的文件为用户配置文件
mkdir /etc/vsftpd/westos
vim /etc/vsftpd/westos/user2 ##想赋予功能就写啥
-----anon_upload_enable=YES
客户端验证:
只有user2可以上传文件。