Linux中Vsftpd服务的部署及优化

实验环境
server主机:
主机名:westos_node3
ip地址: 172.25.254.20
selinux关闭:(设置完成需重启)
vim /etc/sysconfig/selinux
在这里插入图片描述
火墙开启
dnf安装设定完成

client主机:
主机名:westos_zxn
ip地址: 172.25.254.10
selinux关闭
dnf安装设定完成
安装lftp ftp协议文本浏览器

ftp介绍

ftp:file transfer proto(文件传输通道)
互联网中最老牌的文件传输协议

vsftpd安装及启用

在node3中:
dnf install vsftpd -y
在这里插入图片描述

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
在这里插入图片描述

vim /etc/vsftpd/vsftpd.conf
12 anonymous_enable=YES 启动匿名用户的访问功能
在这里插入图片描述

systemctl restart vsftpd

测试安装发布:

firefox中 ftp://172.25.254.20
在这里插入图片描述

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发现家目录已改变
在这里插入图片描述

上传控制
30 anon_upload_enable=YES|NO
在这里插入图片描述

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
在这里插入图片描述

目录建立控制

34 anon_mkdir_write_enable=YES|NO

在这里插入图片描述
此时可建立目录
在这里插入图片描述

匿名用户可以下载不能读的文件删除重命令控制
anon_other_write_enable=YES|NO
在这里插入图片描述

下载控制

anon_world_readable_only=NO
在这里插入图片描述

匿名用户上传文件权限设定

anon_umask=022 当设定chown_username之后上传文权限将不是用此参数设定,需使用chown_upload_mode
在这里插入图片描述
在这里插入图片描述

匿名用户上传文件的用户身份设定 默认上传身份为ftp

在这里插入图片描述

chown_upload=YES
chown_username=redhat 所有匿名用户在服务器生成的文件都是以redhat的身份生成
chown_upload_mode=0644 设定chown_username之后上传文权限必须用此参数设定
此时新上传的文件权限和拥有者已经更改
在这里插入图片描述

登陆数量控制:

max_clients=2
在这里插入图片描述

此时登陆的用户超过两个会出现如下情况:
在这里插入图片描述

上传速率控制

anon_max_rate=102400
在这里插入图片描述

在主机中:
dd if=/dev/zero of=file bs=1M count=100
可见此时下载文件速度已被限制
在这里插入图片描述

本地用户的访问
登陆控制
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
在这里插入图片描述

lftp 172.25.254.20 -u xxx 此时都可登录成功
在这里插入图片描述

local_enable=NO 在node3中修改配置文件
在这里插入图片描述

此时本地用户无法登陆成功!
在这里插入图片描述

家目录控制

local_root=/westosdir 将家目录修改为westosdir
在这里插入图片描述

此时家目录已经更改
在这里插入图片描述

写权限控制

write_enable=NO
此时尝试写文件会出现报错
在这里插入图片描述

上传文件权限控制

local_umask=077 将上传权限修改为077
在这里插入图片描述

可见此时新上传的文件权限为600(上传文件权限600=777-077(上传权限)-111)
在这里插入图片描述

锁定用户到自己的家目录中(不可浏览/目录) 作此操作前可以随意浏览/目录

在这里插入图片描述

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都不可访问 / 目录
在这里插入图片描述

锁定用户到自己的家目录中的黑名单

chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
在这里插入图片描述

vim /etc/vsftpd/chroot_list
systemctl restart vsftpd
在这里插入图片描述

此时除了被锁定的redhat都可访问 / 目录
在这里插入图片描述

用户登陆控制

做此实验前需将以下几个配置注销掉以保持纯净实验环境
在这里插入图片描述

/etc/vsftpd/ftpusers
永久黑
在这里插入图片描述

/etc/vsftpd/user_list
默认黑
在这里插入图片描述

用户登陆白名单

userlist_deny=NO 此服务开启后会设定/etc/vsftpd/user_list为白名单,不在名单中的用户不能登陆ftp
在这里插入图片描述
在这里插入图片描述

虚拟用户访问

建立虚拟用户过程(做此操作前需注释掉 userlist_deny=NO)

vim /etc/vsftpd/westos_user 建立认证文件模板
user1
123
user2
123
在这里插入图片描述

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
在这里插入图片描述

vim /etc/vsftpd/vsftpd.conf
pam_service_name=westos_ftp 指定认证策略文件
guest_enable=YES 指定虚拟用户功能开启
guest_username=ftp 指定虚拟用户在ftp服务器上的用户身份
在这里插入图片描述

systemctl restart vsftpd
在这里插入图片描述

虚拟用户家目录的独立设定
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/ U S E R u s e r s u b t o k e n = USER user_sub_token= USERusersubtoken=USER
在这里插入图片描述

systemctl restart vsftpd

此时再次登录虚拟用户家目录已经独立
在这里插入图片描述

用户配置独立

做此实验前需做如下配置
在这里插入图片描述

实验开始
user_config_dir=/etc/vsftpd/westos_conf 在此目录中与用户名称相同的文件为用户配置文件
在这里插入图片描述

mkdir /etc/vsftpd/westos_conf
vim /etc/vsftpd/westos_conf/user2
anon_upload_enable=YES
在这里插入图片描述

设定完成后user2用户可以上传文件,user1和user3不行

猜你喜欢

转载自blog.csdn.net/qq_42958401/article/details/108126045