实验环境的搭建
1、服务器:
hostnamectl set-hostname westos_ser.westos.org //设置服务器主机名
nm-connection editor //配置网络设置等
vim /etc/sysconfig/selinux //改成disabled
reboot //重启服务器端
systemctl set-default multi-user.target //切换回有图形模式 init 5 然后reboot
systemctl set-default graphical.target //切回默认有图像启动
2、客户端:
hostnamectl set-hostname westos_cli.westos.org //设置客户端主机名
nm-connection editor //配置网络设置等
vim /etc/sysconfig/selinux //改成disabled
systemctl set-default multi-user.target //切换回有图形模式 init 5 然后reboot
一、ftp介绍
ftp:file transfer proto
互联中最老牌的文件传输协议
二、vsftpd安装及启用
1、服务器
(1)安装
dnf install vsftpd -y
systemctl enable --now vsftpd //启动ftp服务
(2)开启匿名访问,并添加防火墙允许服务
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES //12行
firewall-cmd --permanent --add-service=ftp //设置防火墙允许ftp访问
firewall-cmd --reload //重新加载
firewall-cmd --list-all //查看防火墙允许的服务列表
systemctl restart vsftpd //重新打开ftp服务
2、客户端
dnf install lftp -y //安装
lftp 172.25.254.141 //尝试第二次匿名连接,可以ls
3、测试连接是否成功
firefox:
ftp://ip
lftp ip //此访问方式必须能列出资源才算访问成功
//在使用完成后请输入exit推出lftp
三、vsftpd基本信息
服务名称:
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 //本地用户访问
1、登陆控制
anonymous_enable=YES|NO //允许匿名登陆,直接更改参数,12行
2、家目录控制
anon_root=/westosdir //需要手动输入
3、上传控制
(1)服务器端执行:
anon_upload_enable=YES|NO //29行改参数就好
chmod 775 /var/ftp/pub
chgrp ftp /var/ftp/pub
(2)客户端执行:
lftp 服务器端ip
cd pub
put /etc/passwd
4、目录建立控制
anon_mkdir_write_enable=YES|NO //手动输入
5、下载控制
anon_world_readable_only=NO //匿名用户可以下载不能读的文件
6、删除重命令控制
anon_other_write_enable=YES|NO //手动输入
7、匿名用户上传文件权限设定
anon_umask=xxx
anon_umask=022 ##当设定chown_username之后上传文权限将不是用此参数设定
8、匿名用户上传文件的用户身份设定
chown_upload=YES
chown_username=lee
chown_upload_mode=0644
9、登陆数量控制
max_clients=2
10、上传速率控制
anon_max_rate=102400
五、本地用户的访问
编辑的配置文件:
vim /etc/vsftpd/vsftpd.conf
1、登陆控制
useradd westos
useradd lee //添加两个本地用户
echo lee | passwd --stdin westos //更改本地用户的密码为lee
echo lee | passwd --stdin lee //更改本地用户的密码为lee
lftp 192.168.0.10 -u westos //以本地用户身份连接服务器
vim /etc/vsftpd/vsftpd.conf //编辑配置文件
local_enable=NO|YES //允许本地用户登陆
2、家目录控制
local_root=/westosdir //指定家目录文为/westosdir
3、写权限控制
write_enable=NO|YES //写的权限的控制,也就是上传的权限
4、上传文件权限控制
local_umask=077 //这个是家目录的目录的权限,上传到上面的文件的权限为6--0--0
5、用户登陆控制
/etc/vsftpd/ftpusers //永久黑,这个配置文件的程度更高,一旦是ftpusers里面有的用户,怎么操作都不可以登陆服务器
/etc/vsftpd/user_list //默认黑
6、用户登陆白名单
userlist_deny=NO //设定/etc/vsftpd/user_list位白名单。不在名单中的用户不能登陆ftp
7、锁定用户到自己的家目录中
chmod u-w /home/* //更改家目录的操作权限
chroot_local_user=YES //配置文件中修改
8、锁定用户到自己的家目录中的白名单
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
9、锁定用户到自己的家目录中的黑名单
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
六、虚拟用户访问
1、建立虚拟用户过程
(1)建立认证文件
其中为匿名用户名和passwd
vim /etc/vsftpd/ftp_auth_file
westos1
123
westos2
123
westos3
123
(2)生成目标的文件格式,方便系统辨别
db_load -T -t hash -f ftp_auth_file ftp_auth_file.db ##加密认证文件 -T 转换 -t type -f 指定转换文件
(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
(4)加载加密策略
vim /etc/vsftpd/vsftpd.conf //加载加密策略
pam_service_name=westos //指定认证策略文件
guest_enable=YES //指定虚拟用户功能开启
guest_username=ftp //指定虚拟用户在ftp服务器上的用户身份
二、实验:
1、虚拟用户家目录的独立设定
目的:每个虚拟用户有自己的家目录
(1)建立目录
mkdir -p /ftpuserdir/user{1..3}
touch /ftpuserdir/user1/westos1file
touch /ftpuserdir/user2/westos2file
touch /ftpuserdir/user3/westos3file
touch /ftphome/user{1..3}/pub //为每个用户创建userx/里面有westosxfile和/pub
(2)配置文件里面的
vim /etc/vsftpd/vsftpd.conf
local_root=/ftpuserdir/$USER
user_sub_token=$USER
systemctl restart vsftpd
然后:
连接服服务器,然后ls看文件 //这个时候user1里面就有westos1file和pub,其他一样。
2、用户配置独立
目的:针对不同的用户,可以下放不同的权力
user_config_dir=/etc/vsftpd/user_config //在此目录中与用户名称相同的文件为用户配置文件
mkdir /etc/vsftpd/user_config //在vsftpd下面创建其配置文件
vim /etc/vsftpd/user_config/user1 //user1中的配置文件中,允许匿名用户上传文件
anon_upload_enable=YES
设定完成后user1用户可以上传文件,user2,user3不可以上传