目录
实验环境:
selinux关闭
vim /etc/sysconfig/selinux
SELINUX=disabled
重启电脑
软件仓库搭建好
1.ftp介绍
ftp:file transfer proto
互联中最老牌的文件传输协议
2.vsftpd安装及启用
dnf install vsftpd.x86_64 lftp.x86_64 -y #下载客户端和服务器
server client
systemctl enable --now vsftpd
netstat -antlupe | grep vsftpd #查看端口号
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES #设置允许匿名访问
如果出错可以查看日志,寻找错误原因,journalctl -xe
systemctl restart vsftpdfirewall-cmd --permanent --add-service=ftp #设置火墙
永久执行firewall-cmd --reload
firewall-cmd --list all
3.vsftpd基本信息
服务名称:
vsftpd.service配置目录:
/etc/vsftpd主配置文件:
/etc/vsftpd/vsftpd.conf默认发布目录:
/var/ftp报错信息:
550 #程序本身拒绝
553 #文件系统权限限制
500 #权限过大
530 #认证失败
4.匿名访问控制
lftp 172.25.254.221 #当访问ftp服务时没有加入用户认证为匿名访问
lftp 172.25.254.221 -u westos #本地用户访问
登陆控制
anonymous_enable=YES|NO #允许匿名登陆
家目录控制
anon_root=/westosdir #更改家目录指向上传控制
anon_upload_enable=YES|NO #允许匿名用户上传文件
chmod 775 /var/ftp/pub
chgrp ftp /var/ftp/pub
记得重启服务
lftp 172.25.254.221
cd pub
put /etc/passwd #上传文件
目录建立控制
anon_mkdir_write_enable=YES|NO
下载控制
anon_world_readable_only=NO #匿名用户可以下载不能读的文件删除或者重命名命令控制
anon_other_write_enable=YES|NO
匿名用户上传文件权限
anon_umask=xxx
anon_umask=022 #当设定chown_username之后上传文件权限不是用此参数设定
匿名用户上传文件的用户身份设定
chown_upload=YES
chown_username=westos #虚拟用户建立的文件用户为westos
chown_upload_mode=0644 #更新文件的权限为0644
登陆数量控制
max_clients=2 #最大登陆数量,一般是50个上传速率控制
anon_max_rate=102400 # 100k (单位是字节)
创建一个文件file1
dd if=/dev/zero of=file1 bs=1M count=500 给他500M大小
把file1上传到文件里,查看传输速率
5.本地用户的访问
登陆控制
useradd westos
useradd lee
echo westos | passwd --stdin westos
echo westos | passwd --stdin lee
lftp 172.25.254.221 -u leelocal_enable=NO|YES #是否本地用户可以登陆
家目录控制
local_root=/westosdir #改变家目录路径写权限控制
write_enable=NO|YES #是否可以写上传文件权限控制
local_umask=077 #上传的文件的权限
用户登陆控制
/etc/vsftpd/ftpusers #永久黑名单
/etc/vsftpd/user_list #默认黑名单
用户登陆白名单
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 #是否限制在主目录下的用户名单
锁定用户到自己的家目录中的黑名单
chroot_local_user=NO #将黑名单的用户限制在家目录
chroot_list_enable=YES #启动限制用户的名单
chroot_list_file=/etc/vsftpd/chroot_list #是否限制在主目录下的用户名单
6.虚拟用户访问
6.1 建立虚拟用户
vim /etc/vsftpd/ftp_auth_file #建立认证文件模板
westos1
123
westos2
123
westos3
123
6.2加密认证文件
db_load -T -t hash -f ftp_auth_file ftp_auth_file.db #加密认证文件
-T 转换 -t type -f 指定转换文件
6.3认证信息
vim /etc/pam.d/westos
account required pam_userdb.so db=/etc/vsftpd/ftp_auth_file
账号 认证 插件 查询的文件
auth required pam_userdb.so db=/etc/vsftpd/ftp_auth_file
6.4 指定认证策略
vim /etc/vsftpd/vsftpd.conf
pam_service_name=westos #指定认证策略文件
guest_enable=YES #指定虚拟用户功能开启
guest_username=ftp #指定虚拟用户在ftp服务器上的用户身份
7.虚拟用户家目录的独立设定
mkdir -p /ftpuserdir/westos{1..3}
touch /ftpuserdir/westos1/westos1file
touch /ftpuserdir/westos2/westos2file
touch /ftpuserdir/westos3/westos3file
vim /etc/vsftpd/vsftpd.conf
local_root=/ftpuserdir/$USER
user_sub_token=$USER #变量声明
systemctl restart vsftpd
8.用户配置独立
vim /etc/vsftpd/vsftpd.conf
先注释掉
anon_upload_enable=YES
anon_other_write_enable=YES
anon_other_readable_only=NO
user_config_dir=/etc/vsftpd/user_config #在此目录中与用户名称相同的文件为用户配置文件
mkdir /etc/vsftpd/westos
vim /etc/vsftpd/westos/westos1
anon_upload_enable=YESchgrp ftp /ftpuserdir/user{1..3}/pub
chmod 775 /ftpuserdir/user{1..3}/pub
设定完成后user1用户可以上传文件
user2和user3不行