目录
Vsftpd服务的优化及部署
介绍 ftp:file transfer proto 互联网中最老牌的文件传输协议
实验环境:
关闭selinux: vim /etc/sysconfig/selinux
SELINUX=disabled
重启电脑后生效
getenforce
Disabled
搭建软件仓库
vim /etc/yum.repos.d/westos.repo
安装ftp服务
1、vsftpd安装及应用
dnf search ftp 查找ftp服务安装包
dnf install vsftpd.x86_64 lftp.x86_64 -y 下载ftp服务和客户端安装包
rpm -ql vsftpd 查看配置文件什么的位置
systemctl enable --now vsftpd 开启服务
netstat -antlupe | grep vsftpd 查看端口
lftp 172.25.254.220 不指定用户测试 (报错530)
lftp 172.25.254.220 -u westos 指定用户测试
vim /etc/vsftpd/vsftpd.conf 打开配置文件 12行: anonymous_enable=YES 设置匿名用户可以登录
systemctl restart vsftpd 重启服务
lftp 172.25.254.220 测试
firewall-cmd --permanent --add-service=ftp 火墙设置 添加ftp服务
firewall-cmd --reload 重启
firewall-cmd --list-all
网页: ftp://172.25.254.220/
实验前必须要在火墙添ftp服务,关闭selinux并重启否则服务会报错
2、vsftp基本信息
服务名: vsftp.service
配置目录: /etc/vsftpd
主配置文件: /etc/vsftpd/vsftpd.conf
默认发布目录:/var/ftp
报错信息:
550 程序本身拒绝(权限不够)
553 文件系统权限限制
500 权限过大
530 认证失败
3、匿名用户访问控制
lftp 172.25.254.220 #不加用户名 为匿名访问
lftp 172.25.254.220 -u westos #本地用户访问
匿名用户登录控制
anonymous_enable=YES|NO #yes允许匿名用户登录
家目录控制
ANON_root=/westosdir #/var/ftp更改为/westosdir 再次连接会在此目录中
上传控制
anon_upload_enable=YES|NO
chmod 775 /var/ftp/pub #通常不更改"/var/ftp"目录的权限(更改后服务无法正常启动)
chgrp ftp /var/ftp/pub
lftp 172.25.254.220
cd pub
put /etc/passwd #上传:put 下载:get
目录建立控制
anon_mkdir_write_enable=YES|NO
下载控制
anon_world_readable_only=NO #不限制匿名用户的下载(YES:限制匿名只能下载可读文件)
删除或重命名控制
anon_other_write_enable=YES|NO
匿名用户上传文件权限设定
anon_umask=xxx
anon_umask=022
权限=777-umask-111=644 #设定chown_username后上传文件权限将不是此参数设定
匿名用户上传文件的用户身份设定
chown_upload=YES
chown_usernam=lee
chown_upload_mode=0644
登录数量设定
max_clients=2 #默认为50个
上传速率限制
anon_max_rate=102400 (单位:字节)=100k
测试:dd if=/dev/zero of=westosfile bs=1M count=500 #截取500M(单位为1M,取500块)文件,文件取名为westosfile
put
5.本地用户的访问
登陆控制
useradd westos
useradd lee
echo lee | passwd --stdin westos
echo lee | passwd --stdin leelftp 172.25.254.220 -u westos
local_enable=NO|YES
家目录控制
local_root=/software
写权限控制
write_enable=NO|YES
上传文件权限控制
local_umask=077
用户登陆控制
/etc/vsftpd/ftpusers ##永久黑 (权限最高) ls: Login failed: 530 Login incorrect.
/etc/vsftpd/user_list ##默认黑 ls: Login failed: 530 Permission denied.
用户登陆白名单
userlist_deny=NO #设定/etc/vsftpd/user_list为白名单
#不在名单中的用户不能登陆ftp
锁定用户到自己的家目录中
chmod u-w /home/*
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_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
6. 虚拟用户的访问
建立虚拟用户过程
vim /etc/vsftpd/westos_pam 建立认证文件模板
user1
123
user2
123
user3
123db_load -T -t hash -f westos_pam westos_pam.db 加密认证文件
vim /etc/pam.d/westos 转换文件
account required pam_userdb.so db=/etc/vsftpd/westos_pam
auth required pam_userdb.so db=/etc/vsftpd/westos_pam
账号/密码 认证 插件 查询的文件
(此处westos_pam.db文件会自动补全,所以写的时候去掉后缀,否则会变成westos_pam.db.db)vim /etc/vsftpd/vsftpd.conf
pam_service_name=westos 指定认证策略文件
guest_enable=YES 指定虚拟用户功能开启
guest_username=ftp 指定虚拟用户在ftp服务器上的用户身份
虚拟用户家目录的独立设定
mkdir -p /ftphome/user{1..3}
touch /ftphome/user1/user1file
touch /ftphome/user2/user2file
touch /ftphome/user3/user3file
mkdir /ftphome/user{1..3}/pubvim /etc/vsftpd/vsftpd.conf
local_root=/ftpuserdir/$USER
user_sub_token=$USER 变量声明
用户独立配置
user_config_dir=/etc/vsftpd/westos 此目录中建立与用户名相同的文件为用户配置文件
mkdir /etc/vsftpd/westos
vim /etc/vsftpd/westos/user1
anon_upload_enable=YESchmod 775 /ftphome/user{1..3}/pub
chgrp ftp /ftphome/user{1..3}/pub
drwxrwxr-x 2 0 50 6 Jul 30 06:03 pub设定后user1用户可以上传文件 user2、3不行