其他分享
首页 > 其他分享> > Vsftpd的部署及优化

Vsftpd的部署及优化

作者:互联网

Vsftpd的部署及优化

Vsftpd的部署及优化

实验环境

server主机:
westos_node1
172.25.254.11
selinux关闭
火墙开启
dnf安装设定完成

client主机: westos_linux
172.25.254.111
selinux关闭
dnf安装设定完成
安装lftp
##ftp协议文本浏览器
在这里插入图片描述
在这里插入图片描述

1.ftp介绍

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

2.vsftpd安装及启用

1.安装ftp服务软件

vim /etc/yum.repos.d/westos.repo
dnf install vsftpd.x86_64 lftp.x86_64 -y

在这里插入图片描述
2.关闭火墙,启动ftp服务

getenforce
systemctl --now enable firewalld
firewall-cmd --permanent --add-service=ftp
systemctl enable --now vsftpd
firewall-cmd --reload
lftp 172.25.254.11

在这里插入图片描述
3.ftp默认不允许匿名用户登录

vim /etc/vsftpd/vsftpd.conf
##编辑ftp的主配置文件(12行)
##修改参数,允许匿名用户访问
systemctl restart vsftpd
lftp 172.25.254.111

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.vsftpd基本信息

服务名称:
vsftpd.service
配置目录:
/etc/vsftpd
主配置文件:
/etc/vsftpd/vsftpd.conf
默认发布目录:
/var/ftp
报错信息:
550 ##程序本身拒绝
553 ##文件系统权限限制
500 ##权限过大
530 ##认证失败
在这里插入图片描述

4.匿名用户访问控制

lftp 172.25.254.111
##当访问ftp服务时没有加入用户认证为匿名访问
id westos
lftp 172.25.254.111 -u westos
##本地用户访问

在这里插入图片描述

家目录控制

cd /var/ftp
mkdir /westosdir
touch /westosdir/westosdirfile
vim /etc/vsftpd/vsftpd.conf
##更改匿名用户的默认发布目录
anon_root=/westosdir
systemctl restart vsftpd
##重启服务
lftp 172.25.254.111

在这里插入图片描述
在这里插入图片描述

上传控制

匿名用户的上传目录

vim /etc/vsftpd/vsftpd.conf
anon_upload_enable=YES
systemctl restart vsftpd
lftp 172.25.254.111
get: Access failed: 550 Failed to open file. (passwd)
##550报错
##匿名用户默认情况下不能上传文件
##添加参数,保证匿名用户可以上传

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

put: /etc/passwd: Access failed: 553 Could not create file. (passwd)
##553报错
ls -ld /var/ftp/pub/
id ftp
chgrp ftp /var/ftp/pub/
chmod 775 /var/ftp/pub/
ls -ld /var/ftp/pub/
##权限过小
##更改所有组和权限
systemctl restart vsftpd
重启服务
lftp 172.25.254.111
lftp 172.25.254.111:~> cd pub/
cd ok, cwd=/pub
lftp 172.25.254.111:/pub> ls
-rw-------    1 14       50           2798 Feb 21 08:58 passwd

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

下载控制

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

lftp 172.25.254.111
lftp 172.25.254.111:~> cd pub/
cd ok, cwd=/pub
lftp 172.25.254.111:/pub> ls
-rw-------    1 14       50           2798 Feb 21 08:58 passwd
lftp 172.25.254.111:/pub> get passwd
2798 bytes transferred

在这里插入图片描述
在这里插入图片描述

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

anon_umask=xxx
777-022=644
##设定ftp上传文件预留权限值
systemctl restart vsftpd
##重启服务

在这里插入图片描述

在这里插入图片描述

匿名用户上传文件的用户身份设定

id lee
lftp 172.25.254.111
##上传文件时所有人指定为lee
vim /etc/vsftpd/vsftpd.conf
chown_uploads=YES
chown_username=lee
##重启服务
(此时之前权限不生效)
chown_upload_mode=0644
##指定上传的文件权限为0644
systemctl restart vsftpd
##再次重启服务
lftp 172.25.254.111
##测试时,权限生效

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

登陆数量控制

登陆连接默认最大建立50个 如何限定登陆个数?

vim /etc/vsftpd/vsftpd.conf
max_clients=3
##ftp服务器能够接受连接的最大数量
systemctl restart vsftpd
##重启服务
lftp 172.25.254.111
##第四个连接被拒绝

在这里插入图片描述
在这里插入图片描述

上传速率控制

anon_max_rate=102400
##匿名用户的上传速率被控制在每秒100K
dd if=/dev/zero of=/mnt/bigfile bs=1M count=1000
du -sh /mnt/bigfile
lftp 172.25.254.111
vim /etc/vsftpd/vsftpd.conf
systemctl restart vsftpd
lftp 172.25.254.111

在这里插入图片描述
在这里插入图片描述

5.本地用户的访问

本地用户登陆位置为自己的家目录
默认访问根下的home下的子目录

本地用户登陆

westos用户必须是本地用户,密码是westos登陆系统的密码

useradd westos
echo westos | passwd --stdin westos
ls -l /home/westos/
rm -fr /var/ftp/pub/*
rm -fr /mnt/bigfile
lftp 172.25.254.111 -u westos

在这里插入图片描述

local_enable=NO|YES
##禁止/允许本地用户登录
vim /etc/vsftpd/vsftpd.conf
systemctl restart vsftpd
lftp 172.25.254.111 -u westos

在这里插入图片描述
在这里插入图片描述

写权限控制

write-enable=NO|YES
##禁止ftp服务提供写的功能
vim /etc/vsftpd/vsftpd.conf
systemctl restart vsftpd
lftp 172.25.254.111 -u westos
lftp 172.25.254.111 -u lee
vim /etc/vsftpd/vsftpd.conf
systemctl restart vsftpd
lftp 172.25.254.111 -u westos

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

vim /etc/vsftpd/vsftpd.conf
systemctl restart vsftpd
lftp 172.25.254.111 -u westos
vim /etc/vsftpd/vsftpd.conf
systemctl restart vsftpd
##指定本地用户上传文件的默认保留权限
##更改为077

在这里插入图片描述
在这里插入图片描述

登陆控制

cd /etc/vsftpd/
ls
ftpusers  user_list  vsftpd.conf  vsftpd_conf_migrate.sh

永久黑名单:
ftpusers
任何用户出现在其中,都不可登陆
永久黑名单优先级最高
vim ftpusers lftp
172.25.254.111 -u yitian
在这里插入图片描述

临时黑名单:
user_list
默认黑名单,可更改为白名单
vim user_list lftp 172.25.254.111 -u
westos
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

vim /etc/vsftpd/vsftpd.conf
userlist_deny=NO
##当此参数生效时,默认用户不能使用ftp登陆
##只有在user_list中的用户可以登陆(相当于白名单)
systemctl restart vsftpd
##重启服务
vim ftpusers
lftp 172.25.254.111 -u yitian
vim ftpusers
lftp 172.25.254.111 -u westos
vim user_list
##测试:默认用户westos,lee登陆都被拒绝

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

设定本地用户家目录

vim /etc/vsftpd/vsftpd.conf
local_root=/westosdir
systemctl restart vsftpd
lftp 172.25.254.111 -u westos

在这里插入图片描述
在这里插入图片描述

本地用户家目录访问控制

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

当锁定用户到自己的家目录中时
如果家目录有写权利,会被禁止掉

vim /etc/vsftpd/vsftpd.conf
chroot_local_users=YES
systemctl restart vsftpd
lftp 172.25.254.111 -u westos
##500报错,所有用户对自己的家目录有写权利

在这里插入图片描述
在这里插入图片描述

vim /etc/vsftpd/vsftpd.conf
chroot_local_users=YES
systemctl restart vsftpd
##锁定用户到自己的家目录中,使用户不能浏览自己的家目录
ls -ld /home/*
chmod u-w /home/*
##去掉家目录写权利
lftp 172.25.254.111 -u westos

在这里插入图片描述
在这里插入图片描述

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

chroot_local_users=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
##当所有用户被锁定到自己的家目录中时
##此名单为白名单
vim /etc/vsftpd/vsftpd.conf
vim /etc/vsftpd/chroot_list
cat /etc/vsftpd/chroot_list
systemctl restart vsftpd
lftp 172.25.254.111 -u yitian
lftp 172.25.254.111 -u westos

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

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

chroot_local_users=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
##名单功能开启,当用户默认可以浏览根目录时
##此名单为黑名单
vim /etc/vsftpd/vsftpd.conf
vim /etc/vsftpd/chroot_list
systemctl restart vsftpd
lftp 172.25.254.111 -u westos
lftp 172.25.254.111 -u yitian

在这里插入图片描述在这里插入图片描述

6.虚拟用户访问

1.建立虚拟用户过程

建立系统认证文件

vim /etc/vsftpd/virt_users
cat /etc/vsftpd/virt_users
##建立认证文件模板
users1
123
users2
123

在这里插入图片描述
在这里插入图片描述

加密认证文件

db_load -T -t hash -f /etc/vsftpd/virt_users /etc/vsftpd/virt_users.db
##使用哈希算法进行转换加密
##否则系统不识别
##-T 转换
##-t type
##-f 指定转换文件
cd /etc/vsftpd
ls
cat virt_users.db
cd /etc/pam.d/
ls
vim vsftpd
vim virt_user
cat virt_user

在这里插入图片描述

编辑认证策略

account
##账号
auth
##密码
session
##认证级别
required
##认证策略必须通过
pam_userdb.so
##利用插件去拒绝错误认证
db=/etc/vsftpd/virt_user
##认证名单
在这里插入图片描述
在这里插入图片描述

account required pam_userdb.so db=/etc/vsftpd/virt_users
auth    required pam_userdb.so db=/etc/vsftpd/virt_users

更改配置参数

vim /etc/vsftpd/vsftpd.conf
systemctl restart vsftpd
lftp 172.25.254.111 -u user1
pam_service_name=virt_user
##指定认证策略文件
userlist_enable=YES
guest_enable=YES
##指定虚拟用户功能开启
guest_username=ftp
##指定虚拟用户在ftp服务器上的用户身份

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.虚拟用户家目录的独立设定

mkdir -p /ftphomedir/user{1,2}/pub
touch /ftphomedir/user1/user1file
touch /ftphomedir/user2/user2file
vim /etc/vsftpd/vsftpd.conf
local_root=/ftphomedir/$USER
##指定用户家目录,$USER是变量不是字符串
user_sub_token=$USER
##$符声明,家目录独立

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

systemctl restart vsftpd
lftp 172.25.254.111 -u user1
lftp 172.25.254.111 -u user2

在这里插入图片描述

3.用户配置独立

chgrp ftp /ftphomedir/user{1,2}/pub
##ftp对所有pub目录可写
chmod 775 /ftphomedir/user{1,2}/pub
vim /etc/vsftpd/vsftpd.conf
systemctl restart vsftpd
user_config_dir=/etc/vsftpd/userconfdir
##设定所有虚拟用户的配置目录为/etc/vsftpd/userconfdir
##在此目录中与用户名称相同的文件为用户配置文件
vim /etc/vsftpd/userconfdir/user1
anon_upload_enable=YES
##此参数只有在user1登陆时才能被识别
systemctl restart vsftpd
lftp 172.25.254.111 -u user2
cd pub/
put /etc/passwd
lftp 172.25.254.111 -u user1
cd pub/
put /etc/passwd
##设定完成后, user1用户可以上传文件
##user2用户不能上传文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

标签:lftp,etc,部署,254.111,Vsftpd,vsftpd,172.25,##,优化
来源: https://blog.csdn.net/weixin_44891093/article/details/113923283