Vsftp服务的部署及优化
实验环境
#westosa
#172.25.254.119
#selinux关闭
#火墙开启
#dnf安装设定完成
#
#client主机:
#westosb
#172.25.254.219
#selinux关闭
#dnf安装设定完成
#安装lftp #ftp协议文本浏览器
一、ftp介绍
ftp:file transfer proto
互联中最老牌的文件传输协议
二、Vsftpd安装及启用
dnf install vsftpd lftp -y #安装vsftpd和lftp服务
systemctl enable --now vsftpd #开启vsftpd服务
firewall-cmd --permanent --add-service=ftp #将ftp加入防火墙白名单
firewall-cmd --reload #重启防火墙
lftp 172.25.254.119 -u westos #指定用户访问172.25.254.119
vim /etc/vsftpd/vsftpd.conf #修改配置文件更改为任意用户都可以访问
修改的内容 anonymous_enable=YES
systemctl restart vsftpd #重启vsftpd服务
lftp 172.25.254.119 #访问172.25.254.119
cd /var/ftp/ #进入/var/ftp/目录
ls #查看/var/ftp/目录内容
touch jwl #新建文件jwl
ls #查看/var/ftp/目录内容
lftp 172.25.254.119 #访问172.25.254.119
三、Vsftpd基本信息
服务名称:
vsftpd.service
配置目录: /etc/vsftpd
主配置文件: /etc/vsftpd/vsftpd.conf
默认发布目录: /var/ftp
报错信息:
550 ##程序本身拒绝
553 ##文件系统权限限制
500 ##权限过大
530 ##认证失败
四、匿名用户的访问控制
1.环境
getsebool -a | grep ft #查看
setsebool -P ftpd_full_access on #开启对匿名用户无限制
getsebool -a | grep ft #查看是否开启
2.家目录控制
mkdir /westos #创建目录
cd /westos/ #进入目录
touch westosjwl #创建文件westosjwl
ls #查看创建的文件
vim /etc/vsftpd/vsftpd.conf #修改配置文件,更改默认目录为/westos
修改的内容 anon_root=/westos
systemctl restart vsftpd #重启vsftpd服务
lftp 172.25.254.119 #访问172.25.254.119的共享目录
ls #查看是否共享成功
3.上传控制
vim /etc/vsftpd/vsftpd.conf ##修改配置文件,更改回默认目录/var/ftp/
修改的内容 anonymous_enable=YES
systemctl restart vsftpd #重启vsftpd服务
lftp 172.25.254.119 #访问172.25.254.119的共享目录
ls #查看是否共享成功
vim /etc/vsftpd/vsftpd.conf #修改配置文件,打开上传权限
修改的内容 anon_upload_enable=YES
systemctl restart vsftpd #重启vsftpd服务
chgrp ftp /var/ftp/pub/ #修改文件拥有组为ftp,匿名访问用户默认为ftp
chmod 775 /var/ftp/pub/ #给予目录/var/ftp/pub/权限
ls -ld /var/ftp/pub #查看权限
lftp 172.25.254.119 #访问172.25.254.119的共享目录
cd pub/ #进入pub目录
put /etc/passwd #上传目录/etc/passwd到pub/中
4.目录建立控制
vim /etc/vsftpd/vsftpd.conf #修改配置文件
修改的内容 anon_mkdir_write_enable=YES
systemctl restart vsftpd #重启vsftpd服务
lftp 172.25.254.119 #访问172.25.254.119的共享目录
5.下载控制
vim /etc/vsftpd/vsftpd.conf #修改配置文件
修改的内容 anon_world_readable_only=NO
systemctl restart vsftpd #重启vsftpd服务
lftp 172.25.254.119 #访问172.25.254.119的共享目录
6.删除重命令控制
vim /etc/vsftpd/vsftpd.conf #修改配置文件
修改的内容 anon_other_write_enable=YES
systemctl restart vsftpd #重启vsftpd服务
lftp 172.25.254.119 #访问172.25.254.119的共享目录
7.匿名用户上传文件控制
vim /etc/vsftpd/vsftpd.conf #修改配置文件
修改的内容 anon_umask=022
systemctl restart vsftpd #重启vsftpd服务
lftp 172.25.254.119 #访问172.25.254.119的共享目录
8.匿名用户上传文件的用户身份设定
vim /etc/vsftpd/vsftpd.conf #修改配置文件
修改的内容 chown_uploads=YES
chown_username=westos
chown_upload_mode=0644
systemctl restart vsftpd #重启vsftpd服务
lftp 172.25.254.119 #访问172.25.254.119的共享目录
9.登陆数量控制
vim /etc/vsftpd/vsftpd.conf #修改配置文件
修改的内容 max_clients=2
systemctl restart vsftpd #重启vsftpd服务
lftp 172.25.254.119 #访问172.25.254.119的共享目录
修改访问限制2个用户
10.上传速度控制
vim /etc/vsftpd/vsftpd.conf #修改配置文件
修改的内容 anon_max_rate=102400
systemctl restart vsftpd #重启vsftpd服务
lftp 172.25.254.119 #访问172.25.254.119的共享目录
前后对比修改速度,发生极大变化。
五、本地用户的访问
1.登陆控制
useradd lee
echo lee | passwd --stdin lee
vim /etc/vsftpd/vsftpd.conf #修改配置文件
修改的内容 local_enable=YES
systemctl restart vsftpd #重启vsftpd服务
lftp 172.25.254.119 -u westos
lftp 172.25.254.119 -u lee
2.家目录控制
vim /etc/vsftpd/vsftpd.conf #修改配置文件
修改的内容 local_root=/westos
systemctl restart vsftpd #重启vsftpd服务
lftp 172.25.254.119 -u lee
3.用户登录黑名单
vim /etc/vsftpd/vsftpd.conf #修改配置文件
修改的内容
systemctl restart vsftpd #重启vsftpd服务
lftp 172.25.254.119 -u westos
lftp 172.25.254.119 -u lee
lftp 172.25.254.119 -u westos
chmod u-w /home/*
vim /etc/vsftpd/vsftpd.conf #修改配置文件
lftp 172.25.254.119 -u lee
vim /etc/vsftpd/vsftpd.conf #修改配置文件
systemctl restart vsftpd #重启vsftpd服务
lftp 172.25.254.119 -u westos
vim user_list
vim /etc/vsftpd/vsftpd.conf #修改配置文件
vim user_list
vim /etc/vsftpd/vsftpd.conf #修改配置文件
systemctl restart vsftpd #重启vsftpd服务
lftp 172.25.254.119 -u westos
vim /etc/vsftpd/vsftpd.conf #修改配置文件
ls
touch chroot_list
vim chroot_list
systemctl restart vsftpd #重启vsftpd服务
lftp 172.25.254.119 -u westos
vim /etc/vsftpd/vsftpd.conf #修改配置文件
vim chroot_list
systemctl restart vsftpd #重启vsftpd服务
lftp 172.25.254.119 -u westos
lftp 172.25.254.119 -u lee
六、虚拟用户访问
1.创建虚拟用户访问
cd /etc/vsftpd/ #进入/etc/vsftpd/目录
ls #查看/etc/vsftpd/目录下的文件
vim authfile #编写认证文件
db_load -T -t hash -f authfile authfile.db #加密认证文件 -T 转换 -t
ls #查看/etc/vsftpd/目录下的文件,加密文件是否生成
cd /etc/pam.d/ #进入/etc/pam.d/目录
ls #查看/etc/pam.d/目录下的文件
vim westos_auth #编写认证策略
vim /etc/vsftpd/vsftpd.conf #修改配置文件
pam_service_name=westos_auth #指定认证策略文件
guest_enable=YES #指定虚拟用户功能开启
guest_username=ftp #指定虚拟用户在ftp服务器上的用户身份
systemctl restart vsftpd #重启vsftpd服务
测试
lftp 172.25.254.119 -u jwl1
lftp 172.25.254.119 -u jwl2
lftp 172.25.254.119 -u jwl3
id jwl1
id jwl2
2.虚拟用户家目录的独立设定
mkdir /ftphome/{jwl1,jwl2} -p #创建目录
mkdir /ftphome/{jwl1,jwl2}/pub -p
mkdir /ftphome/jwl1/jwl1file -p
mkdir /ftphome/jwl2/jwl2file -p
chmod 777 /ftphome/{jwl1,jwl2}/pub #给予所有权限
vim /etc/vsftpd/vsftpd.conf #修改配置文件
systemctl restart vsftpd #重启vsftpd服务
lftp 172.25.254.119 -u jwl1
lftp 172.25.254.119 -u jwl2
vim /etc/vsftpd/vsftpd.conf #修改配置文件
user_config_dir=/etc/vsftpd/westos
mkdir /etc/vsftpd/westos #创建/etc/vsftpd/westos目录
systemctl restart vsftpd #重启vsftpd服务
cd /etc/vsftpd/westos/ #进入/etc/vsftpd/westos目录
vim jwl1 #编写文件
anon_upload_enable=YES
systemctl restart vsftpd #重启vsftpd服务
lftp 172.25.254.119 -u jwl2
lftp 172.25.254.119 -u jwl1