文章目录
一、ftp介绍
ftp【file transfer proto】
互联网中最老牌的文件传输协议
(可以通过ftp在这台主机里访问另一台主机里的文件)
1.实验环境
server主机:
lyx_server
172.25.254.105
selinux关闭
火墙开启时要添加ftp服务
(8.0版本得关闭火墙才能被访问到)
安装vsftpd服务
systemctl enable --now vsftpd
client主机:
lyx_client
172.25.254.5
selinux关闭
安装lftp(ftp协议文本浏览器)
2.ftp的使用
在服务端编辑服务vsftpd的配置文件:
vim /etc/vsftpd/vsftpd.conf
systemctl restart vsftpd
在客户端测试:
lftp ip | 此访问方式必须能列出资源才算访问成功 |
---|---|
在使用完成后请输入quit退出lftp |
二、vsftpd基本信息
服务名称 | vsftpd.service |
---|---|
配置目录 | /etc/vsftpd |
主配置文件 | /etc/vsftpd/vsftpd.conf |
默认发布目录 | /var/ftp(匿名用户) /home/westos/ (本地用户) |
报错信息 | |
---|---|
550 | 程序本身拒绝 |
553 | 文件系统权限限制 |
500 | 权限过大 |
530 | 认证失败 |
三、用户访问控制
lftp 172.25.5.105 | 当访问ftp服务时没有加入用户认证为匿名访问 |
---|---|
lftp 172.25.5.105 -u westos | 本地用户访问 |
1.匿名用户的访问控制:
登陆控制: anonymous_enable=YES|NO
(NO的话匿名用户就无法访问了)
家目录控制: anon_root=/westos
上传控制: anon_upload_enable=YES|NO
修改权限(让匿名用户以ftp组身份并对其可写)
chmod 775 /var/ftp/pub
chgrp ftp /var/ftp/pub
目录建立控制: anon_mkdir_write_enable=YES|NO
下载控制: anon_world_readable_only=NO
(匿名用户可以下载其他人不可读的文件)
YES时候,文件的其他人必须有读的权限才允许下载,单单文件所有人为ftp且有读权限是无法下载的,必须其他人也有读权限,才允许下载;若为NO则只要ftp组对文件有读权限即可下载
get 文件
mirror 目录
删除命令控制: anon_other_write_enable=YES|NO
匿名用户上传文件权限设定: anon_umask=xxx
(文件权限=777-umask值-111
目录权限=777-umask值)
(当设定chown_username之后上传文权限将不是用此参数设定)
匿名用户上传文件的用户身份设定:
此时用户身份是ftp,我们设定上传文件时的用户身份为westos
chown_upload=YES(指定上传文件的归属)
[root@lyx_server pub]# id westos
uid=1000(westos) gid=1000(westos) groups=1000(westos)
此时上传文件的权限将不再是上面修改过的参数,需重新指定
chown_upload_mode=0644
登陆数量控制: max_clients=2
上传速率控制: anon_max_rate=102400
原本速率 大约74M/s
对上传文件速率进行限制102400(100K)
2.本地用户的访问控制
useradd westos
useradd lee
echo lee | passwd --stdin westos
echo lee | passwd --stdin lee
登陆控制: local_enable=NO|YES
如果后面改为NO,则以本地用户访问时会显示权限过小
家目录控制: local_root=/yau
mkdir /yau
touch /yau/haha
写权限控制: write_enable=NO|YES
针对所有
上传文件权限控制: local_umask=077
(文件权限为600)
用户登陆控制:
/etc/vsftpd/ftpusers | 永久黑 |
---|---|
/etc/vsftpd/user_list | 默认黑 |
用户登陆白名单:userlist_deny=NO
【默认上边两个文件都为黑名单,若在配置文件里将userlist_deny=NO,则/etc/vsftpd/user_list 为白名单】(不在名单中的用户不能登陆ftp)
注意:当etc/vsftpd/ftpusers和/etc/vsftpd/user_list里都有lee用户时,则首先读取ftpusers名单(ftpusers优先级高于user_list!)
锁定用户到自己的家目录中:
默认情况下以本地用户访问时,可以查看根目录下内容
将此命令=YES,所有用户不能切换到根目录下,就无法查看根目录下内容
chmod u-w /home/*
(避免出现权限过大报错)
锁定用户到自己的家目录中的白名单:
锁定用户到自己的家目录中的黑名单:
四、虚拟用户访问
1.建立虚拟用户过程
1)vim /etc/vsftpd/ftpuserlist 【建立认证文件模板】
2)db_load -T -t hash -f ftpuserlist ftpuserlist.db
【加密认证文件】 (-T 转换 -t type -f 指定转换文件)
3)vim /etc/pam.d/lyxauth
【填写认证策略】
PAM(负责认证的插件类模块)
4)vim /etc/vsftpd/vsftpd.conf
systemctl restart vsftpd.service
测试:
2.虚拟用户家目录的独立设定
vim /etc/vsftpd/vsftpd.conf
systemctl restart vsftpd
测试:
3.用户配置独立
(对虚拟用户的权力分开控制)
目录名可任意
让虚拟用户访问的目录可以读写
如果只想让虚拟用户lyx2可以上传,即再此目录下编辑lyx2(文件名就是用户名)
测试:
虚拟用户的默认目录:
local_root=/dir/$USER
上传权力:
anon_upload_enable=YES
- GET