Vsftpd服务的部署及优化
前言
本章主要学习vsftpd服务的安装和启用以及基本操作,包括匿名用户、本地用户及虚拟用户的使用。
一、vsftpd的安装与启用
ftp:file transfer proto,是互联网中最老牌的文件传输协议。
dnf install vsftpd lftp -y
安装vsftpd lftp 注意:两个服务是独立的
开启服务,设定火墙
systemctl enable --now vsftpd 开启服务
firewall-cmd --permanent --add-service=ftp 设置火墙并刷新
firewall-cmd --reload
网页输入网址: ftp://172.25.254.139
登陆需要认证。
取消匿名用户认证:
vim /etc/vsftpd/vsftpd.conf ----> anonymous_enable=YES
systemctl restart vsftpd
重启服务,可无需认证登陆
shell中进入:
输入quit或exit退出。
二、基本信息
vsftpd基本信息:
服务名称 | vsftpd.service |
配置目录 | /etc/vsftpd |
主配置文件 | /etc/vsftpd/vsftpd.conf |
默认发布目录 | /var/ftp |
报错信息:
报错代码 | 含义 |
---|---|
550 | 程序本身拒绝 |
553 | 文件系统权限限制 |
500 | 权限过大 |
530 | 认证失败 |
三、匿名用户访问控制
当访问ftp服务时没有加入用户认证即为匿名访问
lftp 172.25.254.139
1.匿名用户访问控制
/etc/vsftpd/vsftpd.conf 访问修改主配置文件。
yes为允许匿名用户访问。
2.家目录控制
先创建新的家目录
mkdir /westos touch haha 建立目录和文件
ls -Zd /westos
chcon -t public_content_t /westos/ 修改文件安全上下文
ls -Zd /westos
vim /etc/vsftpd/vsftpd.conf 编辑主配置文件
---->anon_root=/westos
重启服务,
家目录修改成功。
3.上传控制
修改前,上传失败,报错550,程序本身拒绝。
设定vsftpd服务的波尔权限打开
getsebool -a | grep ftp
setsebool -P ftpd_full_access on
vim /etc/vsftpd/vsftpd.conf 修改主配置文件
anon_upload_enable=YES
重启服务,进入lftp
再次上传又失败,报错553,文件系统权限限制
chgrp ftp /var/ftp/pub/
chmod 775 /var/ftp/pub
修改文件权限,如果是777仍然会报错500,权限过大
再次上传成功。
4.目录建立控制
修改前创建目录失败
anon_mkdir_write_enable=YES
重启服务
5.下载控制
修改前下载不被允许。
进入主配置文件进行修改
重启服务
6.删除控制
修改前,无法删除
进入主配置文件进行修改
重启服务,删除成功。
7.匿名用户上传文件权限设定
修改前
进入主配置文件进行修改,anon_umask=022
重启服务
8.匿名用户上传文件的用户身份设定 修改后,上传之前文件权限修改将失效
chown_uploads=YES
chown_username=westos
chown_upload_mode=0644
重启服务,
9.登陆数量控制
max_clients=2
重启服务
可以看到,当打开第三个窗口进行lftp访问时需要等待,直到最大登陆数量小于2时,才可进入。
10.上传速率控制
先创建测试文件,
dd if=/dev/zero of=westoshyl bs=1M count=2000
上传测试文件到lftp
需要时间7s,上传速度268.79M/s。
修改配置文件,限制匿名用户上传速率。
anon_max_rate=1024000
重启服务,重新上传
上传速度控制在1M左右。
四、本地用户的访问
lftp 172.25.254.139 -u westos
本地用户访问
提前创建好用户
1.登陆控制
修改前,本地用户登陆控制被拒绝
进入主配置文件进行修改
local_enable=YES
重启服务
2.写权限控制
write_enable=YES
3.上传文件权限控制
local_umask=077
重启服务
4.用户登陆控制
黑名单 | |
---|---|
/etc/vsftpd/ftpusers | 永久黑名单 |
/etc/vsftpd/user_list | 默认黑名单 |
– | – |
userlist_deny=NO | 白名单 |
设定/etc/vsftpd/user_list 为白名单,不再名单中的用户不能登陆ftp。
5.锁定用户到自己的家目录
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
五、虚拟用户的访问
vim /etc/vsftpd/authfile 建立认证文件模板
user1
123
user2
123
db_load -T -t hash -f authfile authfile.db
加密认证文件
vim /etc/pam.d/westos_auth
可参考/usr/lib64/security/pam_userdb.so
account required pam_userdb.so db=/etc/vsftpd/authfile
auth required pam_userdb.so db=/etc/vsftpd/authfile
vim /etc/vsftpd/vsftpd.conf
pam_service_name=westos_auth 指定认证策略
guest_enable=YES 指定虚拟用户开启功能
guest_username=ftp 指定虚拟用户再ftp服务器上的用户身份
重启服务,登陆认证
总结
本章我们主要学习了vsftpd服务的部署以及优化。