vsftpd服务的部署及优化
实验环境
server主机:
服务器主机名: westos_node1
IP: 172.25.254.100
关闭selinux。否则会影响实验结果
火墙开启
dnf安装设定完成
client主机
客户机名: westos_linux
IP: 172.25.254.250
selinux关闭
dnf安装设定完成
安装lftp(这是ftp协议文本浏览器是一个软件)
关闭selinux操作
vim /etc/sysconfig/selinux #修改selinux配置文件
SELINUX=disabled #将该参数修改为disable,即设置开机不启动selinux
getenforce #查看selinux是否关闭
reboot ##设置完成后需要重启
一、ftp介绍及vsftpd安装及启用
1.ftp:file transfer proto(文件传输协议)
互联中最老牌的文件传输协议
FTP允许用户以文件操作的方式(如文件的增、删、改、查、传送等)与另一主机相互通信。然而, 用户并不真正登录到自己想要存取的计算机上面而成为完全用户, 可用FTP程序访问远程资源, 实现用户往返传输文件、目录管理以及访问电子邮件等等, 即使双方计算机可能配有不同的操作系统和文件存储方式。
2.vsftpd安装及启用
dnf install vsftpd -y
dnf install lftp -y
systemctl enable --now vsftpd #vsftod服务开机后启动,并现在启动
firewall-cmd --permanent --add-service=ftp #允许火墙通过ftp协议访问系统
firewall-cmd --reload
3.允许匿名用户访问(登陆控制)
二、vsftpd基本信息
服务名称:
vsftpd.service
配置目录:
/etc/vsftpd
主配置文件:
/etc/vsftpd/vsftpd.conf
默认发布目录:(也就是匿名用户访问时的默认目录)
/var/ftp
报错信息 | |
---|---|
550 | 程序本身拒绝 |
553 | 文件系统权限限制 |
500 | 权限过大 |
530 | 认证失败 |
三、匿名用户访问控制
1.修改匿名用户家目录
2.匿名用户上传控制
anon_upload_enable=YES|NO #YES为允许匿名用户上传
下图是配置文件修改信息
3.匿名用户目录建立控制
4.匿名用户删除控制
man 5 vsftpd.conf #查看配置文件的帮助信息
5.匿名用户下载配置
配置如下
6.匿名用户上传权限设置
现在修改匿名用户上传文件的默认权限
7.匿名用户上传文件的用户身份设定及权限设定
配置文件设定如下
8.登陆数量控制
## 9.上传速率控制
四、本地用户访问控制
1.登陆控制
登陆控制
useradd westos ##添加用户并修改用户密码
useradd lee
echo lee | passwd --stdin westos
echo lee | passwd --stdin lee
lftp 192.168.0.10 -u westos #westos用户访问
vim /etc/vsftpd/vsftpd.conf #本地用户访问权限设定
local_enable=NO|YES
2.本地用户家目录控制
local_root=/指定目录
3.写权限控制
write_enable=NO|YES
4.上传文件权限控制
5.用户登陆黑白名单
本地用户黑白名单
/etc/vsftpd/ #在该目录下
ftpusers #永久黑名单,在该名单下的用户不能登陆ftp
user_list #临时黑名单,在该名单下的用户不能登陆ftp,可以修改参数变为白名单
永久黑名单中添加本地用户lee
把临时黑名单变为白名单
userlist_enable=YES #允许功能打开
userlist_deny=NO #禁止功能打开
修改完就会变成白名单
当本地用户白名单出现时,只有白名单中的用户可以访问,其他本地用户和匿名用户都不可以访问
6.锁定本地用户到自己的家目录
锁定用户到自己的家目录中的白名单
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
vim /etc/vsftpdchroot_list #文件不存在,需要自己创建,并添加用户
将上面的参数改成下面,就会变成黑名单,名单中的本地用户被锁定到家目录中
锁定用户到自己的家目录中的黑名单
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
五、虚拟用户访问
因为本地用户的权限太大,除了ftp程序可以应用外,其他程序也可以应用,所以需要建立虚拟用户
建立虚拟用户过程
1.建立虚拟用户
1)建立认证模板
vim /etc/vsftpd/users
user1
123
user2
123
user3
123
2)加密认证文件
[root@westoslinux100 vsftpd]# db_load -T -t hash -f users users.db ##加密认证文件 -T 转换 -t type -f 指定转换文件
(find / -name pam_userdb.so 这是一个插件,相当于门卫大爷,进行匹配审核)
3 )认证策略文件
vim /etc/pam.d/authfil
account required pam_userdb.so db=/etc/vsftpd/users
auth required pam_userdb.so db=/etc/vsftpd/user
4)配置文件中修改
vim /etc/vsftpd/vsftpd.conf
pam_service_name=authfile #指定认证策略文件
guest_enable=yes #指定虚拟用户功能开启
guest_username=ftp #指定虚拟用户在ftp服务器上的用户身份
5)验证
2.虚拟用户独立分配家目录
#创建不同的家目录并作标记文件
[root@westoslinux ~]#mkdir -p /ftphome/user{1..3}/pub
[root@westoslinux ~]# touch /ftphome/user1/user1file
[root@westoslinux ~]# touch /ftphome/user2/user2file
[root@westoslinux ~]# touch /ftphome/user3/user3file
vim /etc/vsftpd/vsftpd.conf #修改配置文件,给虚拟用户分配家目录
local_root=/ftphome/$USER
139 user_sub_token=$USER
[root@westoslinux userconf]# systemctl restart vsftpd.service #重启服务
3.虚拟用户配置独立
vim /etc/vsftpd/vsftpd.conf #修改配置文件,在配置文件中将匿名用户的权限全部关闭
user_config_dir=/etc/vsftpd/userconf #在此目录中与用户名称相同的文件为用户配置文件
chgrp ftp /ftphome/user{1..3}/pub #修改家目录的所有组,和权限,为了能上传文件
chmod 775 /ftphome/user{1..3}/pub
[root@westoslinux userconf]# vim /etc/vsftpd/userconf/user1
[root@westoslinux userconf]# cat /etc/vsftpd/userconf/user1
anon_upload_enable=YES #允许用户user1上传文件
[root@westoslinux userconf]# systemctl restart vsftpd.service #重启服务
![在这里插入图片描述](https://img-blog.csdnimg.cn/e5c9ebf2136c45408f8aa9e53a025e6e.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5aSa5LqO5bCR55qE5Yy65Yir,size_20,color_FFFFFF,t_70,g_se,x_16)
实验