Vsftpd服务的部署及优化
实验环境
server服务主机:
配置好网络
配置好软件仓库
client测试主机:
配置好软件仓库
配置好软件仓库
ftp介绍
ftp:file transfer proto 互联中最老牌的文件传输协议
2.vsftpd安装及启用
dnf install vsftpd -y server
dnf install lftp -y client
安装好启用后,是需要用户和密码的
所以,我们要用匿名用户访问
vim /etc/vsftpd/vsftpd.conf
12 anonymous_enable=YES ##启动匿名用户的访问功能
systemctl restart vsftpd ##重启服务
测试安装:
lftp 192.168.2.200 ##能列出资源才算登陆成功
注意:在实验过程selinux一定要保证处于关闭状态,关闭后一定要重启不然不生效
vsftpd基本信息
服务名称: vsftpd.service
配置目录: /etc/vsftpd
主配置文件: /etc/vsftpd/vsftpd.conf
默认发布目录: /var/ftp
报错信息:
550 ##程序本身拒绝
553 ##文件系统权限限制
500 ##权限过大
530 ##认证失败
4.匿名用户访问控制
lftp 192.168.0.10 ##当访问ftp服务时没有加入用户认证为匿名访问
lftp 192.168.0.10 -u westos ##本地用户访问
登陆控制
anonymous_enable=YES|NO
家目录控制
vsftp默认家目录在/var/ftp/中,我们将匿名用户默认家目录更改为westosdir,然后在westosdir中建立三个文件,再次登陆的时候如果可以看见三个文件说名更改匿名默认家目录成功
如果要恢复其默认的家目录,只需将配置文件中修改的内容删除或者注释掉即可
anon_root=/westosdir
上传控制
vftp默认只有超级用户可写,我们登录是以匿名用户身份登录的,所以我们要先更改其权限,再更改其配置文件,以达到上传文件
chmod 775 /var/ftp/pub
chgrp ftp /var/ftp/pub
anon_upload_enable=YES|NO
lftp 192.168.155.200
cd pub
put /etc/passwd
目录建立控制
vftp默认匿名用户是不能建立目录的,要建立目录需要更改配置文件vim /etc/vsftpd/vsftpd.conf
anon_mkdir_write_enable=YES|NO
下载控制
vftp默认匿名用户是不能下载它没有权利的文件的,要下载需要更改配置文件
vim/etc/vsftpd/vsftpd.conf
anon_world_readable_only=NO
注意:你当前位置在哪,就会下载在哪
删除重命令控制
vftp默认匿名用户是不能删除它没有权利的文件的,要删除需要更改配置文件
vim/etc/vsftpd/vsftpd.conf
anon_other_write_enable=YES|NO
匿名用户上传文件权限设定
vftp默认匿名用户上传权限是600,我们将它更改为文件644,目录为755
anon_umask=022
匿名用户上传文件的用户身份设定
vftp默认匿名用户上传或者建立的文件目录所有人所有组属于ftp,我们可以将它更改为我们想要的所有人所有组
chown_upload=YES
chown_username=westos
chown_upload_mode=0644
登陆数量控制,限制登陆数量
max_clients=2
上传速率控制: anon_max_rate=102400
本地用户的访问
登陆控制
useradd westos
useradd lee
echo lee | passwd –stdin westos
echo lee | passwd –stdin lee
lftp 192.168.0.10 -u westos
local_enable=NO ##本地用户不能登录
local_enable=YES ##本地用户可以登录,系统默认是可以登陆的
家目录控制
vftp默认本地用户登陆后都是在自己的家目录里,我们可以更改其默认的家目录
local_root=/westos ##更改本地用户登陆后的家目录为/westsos/
写权限控制
write_enable=YES ##本地用户默认上传,删除等等权力是开放
write_enable=NO ##关闭本地用户权力
上传文件权限控制
vftp默认本地用户登陆后上传文件预留权限为644,我么们可以将其上传文件预留权限更改为600
local_umask=077
用户登陆控制
/etc/vsftpd/ftpusers ##永久黑名单
/etc/vsftpd/user_list ##默认黑名单
用户登陆白名单
userlist_deny=NO #设定/etc/vsftpd/user_list位白名单 ,不在名单中的用户不能登陆ftp
锁定用户到自己的家目录中
vftp默认本地用户登陆后不仅可以访问自己的家目录,还可以访问别的目录比如/目录这是相对来说不安全的,所以我们要设定他只能访问自己的家目录
chmod u-w /home/* ##设置完后默认是有写的权限的,安全级别太高会报错,所以要去掉写的权限
chroot_local_user=YES ##锁定他只能访问他自己的家目录
锁定用户到自己的家目录中的白名单
chroot_local_user=YES ##当chroot_local_user=YES时此名单为白名单
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list 默认/etc/vsftpd/chroot_list 名单是不存在的,需要自己建立
锁定用户到自己的家目录中的黑名单
chroot_local_user=NO ##当chroot_local_user=NO时此名单为黑名单
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list ##在名单中的可以访问,不在名单访问不了
1.vim /etc/vsftpd/westoa ##建立认证文件模板 node1 0000 node2 0000 2.db_load -T -t hash -f /etc/vsftp/westos /etc/vsftp/westos.db ##加密认证文件-T 转换 -t type -f 指定 转换文件 3.vim /etc/pam.d/westos ##编辑认证策略文件 account required pam_userdb.so db=/etc/vsftpd/etc/vsftp/westos auth required pam_userdb.so db=/etc/vsftpd/etc/vsftp/westos 4.vim /etc/vsftpd/vsftpd.conf ##更改配置文件 pam_service_name=westos ##指定认证策略文件 guest_enable=YES ##指定虚拟用户功能开启 guest_username=ftp ##指定虚拟用户在ftp服务器上的用户身份
mkdir-p /ftpuserdir/node{1..2}/pub vim /etc/vsftpd/vsftpd.conf local_root=/ftpuserdir/$USER user_sub_token=$USER systemctl restart vsftpd
用户配置独立
user_config_dir=/etc/vsftpd/user_config #在此目录中与用户名称相同的文件为用户配置文件 mkdir /etc/vsftpd/user_config vim /etc/vsftpd/user_config/westos2 anon_upload_enable=YES 设定完成后 node1用户可以上传文件 node2不行