Linux中Vsftpd服务的部署及优化

实验环境 

server 主机
           主机名:westos_node3
            ip地址: 172.25.254.20
           selinux 关闭:(设置完成需重启)
           vim /etc/sysconfig/selinux
            Linux中Vsftpd服务的部署及优化_第1张图片
           火墙开启
           dnf 安装设定完成
 
client主机:
          主机名:westos_zxn
           ip地址:  172.25.254.10
          selinux 关闭
          dnf 安装设定完成
          安装lftp  ftp 协议文本浏览器
 

ftp介绍

ftp : f ile t ransfer p roto(文件传输通道)
互联网中最老牌的文件传输协议
 
 

vsftpd安装及启用

node3中:
dnf install vsftpd -y
Linux中Vsftpd服务的部署及优化_第2张图片
systemctl enable --now firewalld
systemctl enable --now vsftpd
firewalld -cmd --permanent --add-service=ftp
firewalld -cmd --permanent --add-source=172.25.254.10 --zone=trusted
systemctl restart firewalld  或  firewalld-cmd --reload
Linux中Vsftpd服务的部署及优化_第3张图片
vim /etc/vsftpd/vsftpd.conf
    12 anonymous_enable=YES     启动匿名用户的访问功能
 
systemctl restart vsftpd
 
测试安装发布 :
firefox中     ftp ://172.25.254.20
Linux中Vsftpd服务的部署及优化_第4张图片
lftp 172.25.254.20      此访问方式必须能列出资源才算访问成功
在使用完成后请输入 exit 退出 lftp

 

vsftpd基本信息

服务名称 :
vsftpd.service
配置目录 :
/etc/vsftpd
主配置文件 :
/etc/vsftpd/vsftpd.conf
默认发布目录 :
/var/ftp
 
报错信息:
550   程序本身拒绝(即服务本身不允许,需在配置文件中修改)
 
553   文件系统权限限制
 
500   权限过大
 
530   认证失败(密码错误、匿名用户登录未开启)

 

匿名用户访问控制

 
lftp 192.168.0.10                        当访问ftp 服务时没有加入用户认证为匿名访问
 
lftp 192.168.0.10 -u westos       本地用户访问
 
登陆控制
/etc/vsftpd/vsftpd.conf
12 anonymous_enable = YES | NO
systemctl restart vsftpd
 
 
家目录控制
anon_root =/ westosdir
systemctl restart vsftpd
在主机中连接node3发现家目录已改变
Linux中Vsftpd服务的部署及优化_第5张图片
 
 
上传控制
30 anon_upload_enable = YES | NO
Linux中Vsftpd服务的部署及优化_第6张图片
systemctl restart vsftpd
chmod 775 /var/ftp/pub ( 此处若用777,会权限过大出现“500报错” )
chgrp ftp /var/ftp/pub/
lftp 172.25.254.20
cd pub
put /etc/passwd
Linux中Vsftpd服务的部署及优化_第7张图片
 
 
目录建立控制
34 anon_mkdir_write_enable = YES | NO
此时可建立目录
Linux中Vsftpd服务的部署及优化_第8张图片
 
 
匿名用户可以下载不能读的文件删除重命令控制
anon_other_write_enable = YES | NO
Linux中Vsftpd服务的部署及优化_第9张图片
 
 
下载控制
anon_world_readable_only = NO         
 
 
匿名用户上传文件权限设定
anon_umask=022         当设定chown_username之后上传文权限将不是用此参数设定,需使用 chown_upload_mode
Linux中Vsftpd服务的部署及优化_第10张图片
 
 
匿名用户上传文件的用户身份设定
默认上传身份为ftp
chown_upload=YES
chown_username=redhat      所有匿名用户在服务器生成的文件都是以redhat的身份生成
chown_upload_mode=0644    设定chown_username之后上传文权限必须用此参数设定
Linux中Vsftpd服务的部署及优化_第11张图片
此时新上传的文件权限和拥有者已经更改
Linux中Vsftpd服务的部署及优化_第12张图片
 
 
登陆数量控制:
max_clients = 2
此时登陆的用户超过两个会出现如下情况:
 
 
上传速率控制
anon_max_rate = 102400
在主机中:
dd if=/dev/zero of=file bs=1M count=100
可见此时下载文件速度已被限制
Linux中Vsftpd服务的部署及优化_第13张图片
 
 
 

本地用户的访问

登陆控制
useradd redhat
useradd xsb
useradd daddy
echo linux | passwd --stdin redhat
echo linux | passwd --stdin daddy
echo linux | passwd --stdin xsb
su - redhat/daddy/xsb
touch xxfile
Linux中Vsftpd服务的部署及优化_第14张图片
 
lftp 172.25.254.20 -u xxx      此时都可登录成功
Linux中Vsftpd服务的部署及优化_第15张图片
 
local_enable=NO         在node3中修改配置文件
 
此时本地用户无法登陆成功!
Linux中Vsftpd服务的部署及优化_第16张图片
 
 
家目录控制
local_root=/westosdir   将家目录修改为westosdir
此时家目录已经更改
Linux中Vsftpd服务的部署及优化_第17张图片
 
 
写权限控制
write_enable=NO
此时尝试写文件会出现报错
Linux中Vsftpd服务的部署及优化_第18张图片
 
 
上传文件权限控制
local_umask=077      将上传权限修改为077
可见此时新上传的文件权限为600(上传文件权限600=777-077(上传权限)-111)
Linux中Vsftpd服务的部署及优化_第19张图片
 
 
锁定用户到自己的家目录中(不可浏览/目录)
作此操作前可以随意浏览/目录
Linux中Vsftpd服务的部署及优化_第20张图片
 
chroot_local_user=YES  此时所有用户都被限制在自己的家目录中,为NO时所有人都可访问
chmod u-w /home/*    去掉写权限
此时无法浏览 / 目录
 
 
锁定用户到自己的家目录中的白名单
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
vim /etc/vsftpd/chroot_list
systemctl restart vsftpd
此时除了被白名单中的redhat都不可访问 / 目录
Linux中Vsftpd服务的部署及优化_第21张图片
 
 
锁定用户到自己的家目录中的黑名单
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
vim /etc/vsftpd/chroot_list
systemctl restart vsftpd
此时除了被锁定的redhat都可访问 / 目录
Linux中Vsftpd服务的部署及优化_第22张图片
 
 
用户登陆控制
做此实验前需将以下几个配置注销掉以保持纯净实验环境
Linux中Vsftpd服务的部署及优化_第23张图片
 
/etc/vsftpd/ftpusers         永久黑
Linux中Vsftpd服务的部署及优化_第24张图片
Linux中Vsftpd服务的部署及优化_第25张图片
 
/ etc / vsftpd / user_list        默认黑
Linux中Vsftpd服务的部署及优化_第26张图片
Linux中Vsftpd服务的部署及优化_第27张图片
 
 
用户登陆白名单
userlist_deny=NO        此服务开启后会 设定 /etc/vsftpd/user_list为 白名单,不在名单中的用户不能登陆ftp
Linux中Vsftpd服务的部署及优化_第28张图片

Linux中Vsftpd服务的部署及优化_第29张图片

 

虚拟用户访问

建立虚拟用户过程( 做此操作前需注释掉  userlist_deny=NO
 
vim /etc/vsftpd/westos_user       建立认证文件模板
user1
123
user2
123
Linux中Vsftpd服务的部署及优化_第30张图片
 
db_load -T -t hash -f westos_user westos_user.db        加密认证文件 - T 转换 - t type - f 指定转换文件
 
vim /etc/pam.d/westos_ftp
account            required         pam_userdb.so           db=/etc/vsftpd/westos_user
auth                  required         pam_userdb.so           db=/etc/vsftpd/westos_user
Linux中Vsftpd服务的部署及优化_第31张图片
 
vim /etc/vsftpd/vsftpd.conf
pam_service_name=westos_ftp     指定认证策略文件
guest_enable=YES                         指定虚拟用户功能开启
guest_username=ftp                      指定虚拟用户在ftp 服务器上的用户身份
 
systemctl restart vsftpd
 
Linux中Vsftpd服务的部署及优化_第32张图片
 
 
虚拟用户家目录的独立设定
mkdir /virtuserdir
mkdir /virtuserdir/user{1..2}
mkdir /virtuserdir/user{1..2}/pub
touch /virtuserdir/user1/user1file
touch /virtuserdir/user2/user2file
 
vim /etc/vsftpd/vsftpd.conf
local_root=/virtuserdir/$USER
user_sub_token=$USER
 
systemctl restart vsftpd
 
此时再次登录虚拟用户家目录已经独立
Linux中Vsftpd服务的部署及优化_第33张图片
 
 
用户配置独立
做此实验前需做如下配置
Linux中Vsftpd服务的部署及优化_第34张图片
 
实验开始
user_config_dir=/etc/vsftpd/westos_conf        在此目录中与用户名称相同的文件为用户配置文件
Linux中Vsftpd服务的部署及优化_第35张图片
mkdir /etc/vsftpd/westos_conf
vim /etc/vsftpd/ westos_conf /user2
anon_upload_enable=YES
Linux中Vsftpd服务的部署及优化_第36张图片
设定完成后 user2 用户可以上传文件,user1和user3 不行
Linux中Vsftpd服务的部署及优化_第37张图片

你可能感兴趣的:(Linux基础)