本文共 3929 字,大约阅读时间需要 13 分钟。
实验环境
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:file transfer proto(文件传输通道)
互联网中最老牌的文件传输协议在node3中:
dnf install vsftpd -ysystemctl enable --now firewalld
systemctl enable --now vsftpdfirewalld -cmd --permanent --add-service=ftp
firewalld -cmd --permanent --add-source=172.25.254.10 --zone=trusted systemctl restart firewalld 或 firewalld-cmd --reloadvim /etc/vsftpd/vsftpd.conf
12 anonymous_enable=YES 启动匿名用户的访问功能systemctl restart vsftpd
firefox中 ftp://172.25.254.20
lftp 172.25.254.20 此访问方式必须能列出资源才算访问成功
在使用完成后请输入exit退出lftpvsftpd基本信息
服务名称: 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|NOsystemctl restart vsftpd
anon_root=/westosdir
systemctl restart vsftpd
在主机中连接node3发现家目录已改变上传控制
30 anon_upload_enable=YES|NOsystemctl restart vsftpd
chmod 775 /var/ftp/pub(此处若用777,会权限过大出现“500报错”) chgrp ftp /var/ftp/pub/lftp 172.25.254.20
cd pub put /etc/passwd34 anon_mkdir_write_enable=YES|NO
此时可建立目录匿名用户可以下载不能读的文件删除重命令控制
anon_other_write_enable=YES|NOanon_world_readable_only=NO
anon_umask=022 当设定chown_username之后上传文权限将不是用此参数设定,需使用chown_upload_mode
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 xxfilelftp 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_listvim /etc/vsftpd/chroot_list
systemctl restart vsftpd此时除了被白名单中的redhat都不可访问 / 目录
chroot_local_user=NO
chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_listvim /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 123db_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_uservim /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/user2filevim /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=USERsystemctl 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不行
转载地址:http://foegn.baihongyu.com/