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不行


云野 » Vsftpd服务的部署及优化

发表回复