ftp服务

ftp
实验环境:reset虚拟机desktop,配置网卡(ip=172.25.254.113)
配置yum源
用getenforce查看内核级火墙的状态,需要是关闭状态,显示为disab
在这里插入图片描述
若为enforcing
vim /etc/sysconfig/selinux 进入配置
在这里插入图片描述
修改后,需要reboot重启,才能使更改生效

下载软件vsftpd和lftp

在这里插入图片描述
rpm -ql vsftpd
/var/ftp ftp的发布目录

rpm -qc
在这里插入图片描述
/etc/logrotate.d/vsftpd ##日至文件
/etc/pam.d/vaftpd ###认证文件
etc/vsftpd/ftpusers ##黑名单
/etc/vsftpd/user_list ##用户名单
/etc/vsftpd/vsftpd.conf ##配置文件
登陆方式
不通过用户登陆 默认目录为共享目录
lftp 172.25.254.113
在这里插入图片描述
注意:第一次登录失败的原因就是没有开启vsftpd
通过用户登陆 默认目录为用户的家目录
lftp 172.25.254.113 -u student
在这里插入图片描述
vim /etc/vsftpd/vsftpd.conf ###修改配置文件
修改后需要重启服务
systemctl restart vsftpd.conf

12 anonymous_able=YES ##匿名用户是否可以登陆
在这里插入图片描述
YES表示匿名用户可以登陆

匿名用户登录失败
16 local_enbale=YES ##是否能以本地用户身份登陆

19 write_enable ##
29 anon_upload_enable=YES ##可以上传
在这里插入图片描述
修改后需要重启服务
systemctl restart vsftpd.conf

上传操作
在/var/ftp 发布目录不能上传
只能在/var/ftp/pub/ 下上传文件
在这里插入图片描述
但显示权限过小(553),需要给权限,
如果给发布目录777权限,会显示权限过大,
所以可以给pub777权限使它进行上传操作,
在这里插入图片描述
但是给pub777权限并不安全
匿名用户上传,用的ftp的身份,完成上传后它就不能在用ftp的身份
在这里插入图片描述
在这里插入图片描述
chgrp ftp /var/ftp/pub
或者acl:
setfacl -m u:ftp:rwx /var/ftp/pub
注:报错
530报错,认证失败
550报错 服务本身功能未开启
553报错 文件系统权力过小
500报错 服务本身所访问的权力过大

更多操作:
为保险起见,做完一个实验就将所更改的复原,以免对实验有影响。
#<匿名用户家目录修改>
anon_root=/direcotry
在这里插入图片描述
做好修改后重启服务,然后查看效果
在这里插入图片描述
<匿名用户上传文件默认权限修改>
anon_umask=xxx
anon_mkdir_write_enable=YES|NO
在这里插入图片描述
在这里插入图片描述
匿名用户下载
anon_world_readable_only=YES|NO 设定参数值为no表示匿名用户可以下载
在这里插入图片描述
在这里插入图片描述
匿名用户删除文件功能
anon_other_write_enable=YES|NO
在这里插入图片描述
在这里插入图片描述
匿名用户使用的用户身份修改
chown_uploads=YES
chown_username=student
chown_upload_mode=0644
在这里插入图片描述
匿名用户在上传时是使用的ftp的身份
现在来修改匿名用户上传时使用的身份
在这里插入图片描述
最大上传速率
anon_max_rate=102400
最大链接数
max_clients=8
本地用户设定
local_enable=YES|NO ##本地用户登陆限制
write_enable=YES|NO ##本地用户写权限限制
本地用户家目录修改
local_root=/directory
本地用户上传文件权限
local_umask=xxx
以上几个和匿名用户操作一样

限制本地用户浏览目录
chroot_local_user=YES
chmod u-w /home/* 去掉写权限
在这里插入图片描述
限制前
在这里插入图片描述
限制后
在这里插入图片描述
用户黑名单建立
chroot_local_user=NO
chroot_list_enable=YES 上面参数是NO的话就是黑名单
chroot_list_file=/etc/vsftpd/chroot_list
在这里插入图片描述
先用不在名单中的student登录查看,可以切到/目录下
在这里插入图片描述
在名单中的westos 不能切换
在这里插入图片描述
用户白名单建立
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
<限制本地用户登陆>
这是登陆的管理,设定黑白名单来管理洪湖能否登陆ftp
上面的黑白名单是设定哪些用户被锁定家目录的黑白名单
vim /etc/vsftpd/#<限制本地用户登陆>
vim /etc/vsftpd/ftpusers ##用户黑名单
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
vim /etc/vsftpd/user_list ##用户临时黑名单
用户白名单设定
userlist_deny=NO
在这里插入图片描述
/etc/vsftpd/user_list ##参数设定,此文件变成用户白名单,只在名单中出现的用户可以登陆ftp
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
黑白名单优先执行白名单,即一个用户同时出现在黑白名单中,则它可以登陆
在此实验完成后,切记将设定复原,否则下面实验将不能完成
<ftp虚拟用户的设定>
创建虚拟帐号身份)
vim /etc/vsftpd/westosfile ##文件名称任意
ftpuser1
123
ftpuser2
123
ftpuser3
123
在这里插入图片描述
注意:不要有空格,尤其在密码行的末尾,也会被加密
db_load -T -t hash -f /etc/vsftpd/westosfile /etc/vsftpd/westosfile.db
-T---->转换 -t---->格式 为 hash
把写着虚拟用户和密码的文件转换为加密文件
vim /etc/pam.d/westos ##文件名称任意
account required pam_userdb.so db=/etc/vsftpd/westosfile
auth required pam_userdb.so db=/etc/vsftpd/westosfile
westosfile后不加db 因为pam_userdb.so默认 它相当于看门老大爷
在这里插入图片描述
vim /etc/vsftpd/vsftpd.conf
pam_service_name=westos
guest_enable=YES
在这里插入图片描述
在这里插入图片描述
这样的虚拟帐号管理显然在实际中无法应用
它需要每个帐号有独立配置,只在自己的加目录中
虚拟帐号身份指定)
guest_username=ftpuser
chmod u-w /home/ftpuser
虚拟帐号家目录独立设定
vim /etc/vsftpd/vsftpd.conf
local_root=/ftphome/ U S E R u s e r s u b t o k e n = USER user_sub_token= USER
mkdir /ftphome/user1/user1dir -p
mkdir /ftphome/user2/user2dir -p

虚拟帐号配置独立
vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/userconf
mkdir -p /etc/vsftpd/userconf

vim /etc/vsftpd/userconf/ftpuser1 在此文件中设定配置文件中的所有参数,此文件的优先级高 #在单独配置各帐号的配置文件时,要将总的配置文件关掉,否则没有配置的帐号也可以享有总的配置文件中开启的服务