####ftp服务####
###1.ftp的启用####
yum install vsftpd 安装vsftpd服务
systemctl start vsftpd 开启vsftpd服务
systemctl enable vsftpd 开启伴随启动vsftpd服务
firewall-cmd --permanent --add-service=ftp 防火墙永久允许ftp链接
firewall-cmd --reload 防火墙重启
测试: ftp://172.25.254.31 (此地址为实体机IP)
链接成功会出现下图:
##2.ftp的基本信息
访问数据端口:21
数据传输端口:>1024随即端口
默认发布目录: /var/ftp/
访问方式
lftp 172.25.254.131 ##匿名登陆 -->/var/ftp
lftp 172.25.254.131 -u student ##用户登陆 以student用户身份登陆IP172.25.254.131
配置文件:
vim /etc/vsftpd/vsftpd.conf 主配置文件 (此文件管理lftp服务)
systemctl restart vsftpd 重启vsftpd服务
##3.ftp的安全部署
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES|NO ##匿名用户是否可以登陆
local_enable=YES|NO ##本地用户是否可以登陆
当修改为NO时,本地用户登陆会出现下图:
提示只能匿名用户登陆
write_enable=YES|NO ##本地用户是否可以写
注意:此处的YES或NO必须为大写,小写无效。
##4.匿名用户
chmod 775 /var/ftp/pub 给予/var/ftp/pub目录 775的权限
chgrp ftp /var/ftp/pub 更改/var/ftp/pub目录的所有组为ftp
vim /etc/vsftpd/vsftpd.conf 编辑主配置文件
(1)anon_world_readable_only=YES 匿名用户可下载
(2)anon_other_write_enable=YES 匿名用户可以删除和重命名
(3)anon_mkdir_write_enable=YES 匿名用户可以建立目录
(4)anon_ upload_enable=YES 匿名用户可上传
#匿名用户使用的用户身份修改
chown_uploads=YES 可以更改上传文件所有人
chown_username=student 更改所有人为student
#最大上传速率
anon_max_rate=102400(100k)
#最大连接数
max_clients=2 (此处我设定的是2个,随意设定)
#本地用户家目录修改
local_root=/directory (此处的directory代指一切目录)
#本地用户上传文件权限
local_umask=xxx
##5.限制本地用户浏览目录
所有用户被锁定到自己的家目录中
chroot_local_user=YES
chmod u-w /home/*
锁定后随便切换到那个目录,仍然只能看家目录内容
用户黑名单建立
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list(名单内的用户受到限制)
在名单内输入:student
如图:
student用户被限制
而没有被限制的westos用户是这样:
用户白名单建立
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list (名单里的用户可以登,其余都不可以)
名单里依旧是student但此时,出现下图
student用户可以登陆
westos用户不能登陆
#限制本地用户登陆
vim /etc/vsftpd/ftpusers ##用户黑名单(永久)
vim /etc/vsftpd/user_list ##用户临时黑名单
名单内添加用户student
提示权力被拒绝
用户白名单设定
在主配置文件中添加:userlist_deny=NO
vim /etc/vsftpd/user_list (名单内依旧是student) ##参数设定,此文件变为用户白名单,只在名单里出现的用户可以登陆ftp
白名单内的student用户可以登陆,而其他的例如westos用户不能登陆。
#6.ftp虚拟用户的设定
创建虚拟帐号身份
vim /etc/vsftpd/westosfile ##文件名称任意,此处我用的是westosfile
user1 第一行为用户名
222 第二行为密码
user2
222
执行命令:db_load -T -t hash -f /etc/vsftpd/westosfile /etc/vsftpd/westosfile.db 将明文信息用hash加密
可以用file命令查看是否被加密
vim /etc/pam.d/westos ##文件名称任意
account required pam_userdb.so db=/etc/vsftpd/westosfile 此处文件名称须和刚建立的文件名称相同
auth required pam_userdb.so db=/etc/vsftpd/westosfile
vim /etc/vsftpd/vsftpd.conf
编辑为如图
第一行为认证服务名称 此名称和编辑文件时的名称要相同 pam.d/westos 同为westos
然后重启
注意:每次编辑完/etc/vsftpd/vsftpd.conf文件后,都要重启vsftpd服务。
测试:
登陆用户成功,代表实验成功。