目录
- 服务端:server主机
192.168.189.131
(1)关闭selinux
(2)开启火墙并设定添加ftp服务
(3)安装vsftpd并设定开机启动
vim /etc/selinux/config ##设定selinux状态
reboot ##更改完selinux必须重启才有效
systemctl enable --now firewalld.service ##设定火墙开机启动
firewall-cmd --permanent --add-service=ftp ##在火墙中添加ftp服务
firewall-cmd --reload ##刷新火墙
dnf install vsftpd -y ##安装vsftpd
systemctl enable --now vsftpd ##设定vsftpd开机启动
- 客户端:client主机
192.168.189.133
(1)关闭selinux
(2)安装lftp(ftp协议文本浏览器)
vim /etc/selinux/config ##设定selinux状态
reboot ##更改完selinux必须重启才有效
dnf install lftp -y ##安装lftp
1.ftp介绍
2.vsftpd安装及启用
1. 安装
dnf install vsftpd - y #rhel8-1dnf install lftp - y #rhel8-2关闭 selinuxsystemctl disable -- now firewalld
2、启用(开启匿名用户的访问功能)
(1)服务端:
vim / etc / vsftpd / vsftpd.conf12 anonymous_enable = YESsystemctl restart vsftpd
(2)客户端:
用firefox访问服务端ip:firefox ftp://ip
3.vsftpd基本信息
服务名称 : vsftpd.service配置目录 : / etc / vsftpd主配置文件 : / etc / vsftpd / vsftpd.conf默认发布目录 : / var / ftp
550 ##程序本身拒绝553 ##文件系统权限限制500 ##权限过大530 ##认证失败
4.匿名用户访问控制
1.登陆控制
anonymous_enable = YES | NO
2.家目录控制
anon_root =/ sk
3.上传控制
anon_upload_enable = YES | NO
553错误:权限受限,修改权限和用户组
chmod 775 / var / ftp / pubchgrp ftp / var / ftp / publftp 192.168.0.100cd pubput / etc / passwd
4、目录建立控制:YES为允许建立目录
anon_mkdir_write_enable=YES|NO
5、下载控制:NO表示匿名用户可以下载不能读的文件
- YES:文件所有人为ftp且有读权限,文件的其他人必须有读的权限才允许下载
- NO:只要ftp组对文件有读权限即可下载
- 下载位置为使用lftp命令的位置
anon_world_readable_only=NO ##匿名用户可以下载不能读的文件
6、删除命令控制:YES为允许删除
anon_other_write_enable = YES | NO
7、匿名用户上传文件权限设定
- 目录权限=777-umask
- 文件权限=777-umsak-111
- 当设定
chown_username
之后上传文件权限将不由此参数设定
anon_umask = xxxanon_umask = 022 ## 当设定 chown_username 之后上传文权限将不是用此参数设定
8、匿名用户上传文件的用户身份设定
chown_upload = YESchown_username = yylchown_upload_mode = 0644
9、登录数量控制
max_clients=2
10、上传速率控制
anon_max_rate = 102400
5.本地用户的访问
1、登录控制:YES表示允许本地访问
local_enable = NO | YES
2、家目录控制
local_root=/sk
3、写权限控制:YES表示写权限开启
write_enable=NO|YES
(1)YES:
(2)NO:
4、上传文件权限控制
- 目录权限=777-umask
- 文件权限=777-umsak-111
5、用户登录控制
永久黑名单:/etc/vsftpd/ftpusers
默认黑名单:/etc/vsftpd/user_list
YES表示/etc/vsftpd/user_list为默认黑名单
当为NO时/etc/vsftpd/user_list为白名单,只有在白名单中的用户才可以登录ftp
/etc/vsftpd/ftpusers的优先级高于/etc/vsftpd/user_list,即如果一个用户同时存在两个名单中,则会优先看永久黑名单
userlist_deny = NO # 设定 / etc / vsftpd / user_list 位白名单# 不在名单中的用户不能登陆 ftp
永久黑名单> 当为NO时/etc/vsftpd/user_list的白名单 白名单中没有yyl所以也被拒绝
6、锁定用户到自己的家目录
chmod u - w / home /*chroot_local_user = YES
- YES表示锁定用户到自己的家目录中
- 家目录中不能有写的权限(之前更改了家目录为
/sk
,并设定权限为777) - 如果家目录为默认
/home/*
,则只需chmod u-w /home/*
- 确保不会因为权限过大而报错
(1)锁定用户到自己的家目录中的白名单
chroot_local_user = YESchroot_list_enable = YESchroot_list_file =/ etc / vsftpd / chroot_list
(2)锁定用户到自己的家目录中的黑名单
chroot_local_user = NOchroot_list_enable = YESchroot_list_file =/ etc / vsftpd / chroot_list
yyl用户在黑名单中所有不能切换到根目录
lee用户不在黑名单中所以可以切换根目录
6.虚拟用户访问
1、建立虚拟用户过程
(1)建立认证文件模板
vim / etc / vsftpd / ftp_auth_file #建立认证文件模板
westos1123westos2123westos3123
(2)对认证文件加密-T
:转换,-t
:转换方式,-f
:指定文件
db_load -T -t hash -f ftp_auth_file ftp_auth_file.db ##加密认证文件
(3)编写认证策略文件
account required pam_userdb.so db =/ etc / vsftpd / ftp_auth_fileauth required pam_userdb.so db =/ etc / vsftpd / ftp_auth_file
pam——负责认证的插件类模块
(4)编辑配置文件
vim / etc / vsftpd / vsftpd.confpam_service_name = westos ##指定认证策略文件guest_enable = YES ##指定虚拟用户功能开启guest_username = ftp ##指定虚拟用户在 ftp 服务器上的用户身份
测试:
2、虚拟用户家目录的独立设定
(1)建立独立目录
mkdir - p / ftpuserdir / westos{1..3}touch / ftpuserdir / westos1 / westos1filetouch / ftpuserdir / westos2 / westos2filetouch / ftpuserdir / westos3 / westos3file
(2)编辑配置文件
vim / etc / vsftpd / vsftpd.conflocal_root =/ ftpuserdir / $USERuser_sub_token = $USERsystemctl restart vsftpd
3、用户配置独立
(1)编辑配置文件
vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/user_config
systemctl restart vsftpd
(2)建立配置文件目录并编写配置文件
mkdir /etc/vsftpd/user_config
vim /etc/vsftpd/user_config/qwa1
anon_upload_enable = YES
(3)更改家目录权限和用户组
chmod 775 /ftpuserdir/westos{1..3}/dir
chgrp ftp /ftpuserdir/westos{1..3}/dir
测试: