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