FTP服务
1.FTP的定义
ftp:// ##文件传输协议
2.ftp协议提供的软件
在rhel7中叫vsftpd
3.部署ftp服务
yum install vsftpd 安装ftp
systemctl start vsftp 开启ftp
systemctl enable vsftpd 开机启动
检查vsftpd是否在运行
firewall-cmd –permanent –add-service=ftp 防火墙配置
firewall-cmd –reload 防火墙配置重新加载
浏览器可以访问到,ftp服务正常
ftp服务的基本信息
软件安装包:vsftpd
默认发布目录:/var/ftp
协议接口:21/ftp
服务配置文件:/etc/vsftpd/vsftpd.conf
4.ftp的基本配置
500文件系统权限过大
550服务本身拒绝
530用户认证失败(密码错误)
553本地文件系统权限过小
/etc/vsftpd/vsftpd.conf
anonymous enable=YES|NO 匿名用户是否可以登陆
实验
local-ensble=YES|NO 本地用户是否可以登陆,登陆后的默认位置是用户家目录
write enable=YES|NO 对登陆用户是否可写(匿名用户永远不可写)
实验
匿名用户上传
[[email protected] ~]# vim /etc/vsftpd/vsftpd.conf
anon_upload_enable=YES
[[email protected] ~]# systemctl restart vsftpd
[[email protected] ~]# chgrp ftp /var/ftp/pub/
[[email protected] ~]# chmod 775 /var/ftp/pub/
实验
改变默认匿名用户的登陆目录
anon_root=/westos 把匿名用户的登陆地改成/westos
改变默认上传文件的权限为600
anon_umask=044
实验
匿名用户建立目录
anon_mkdir_write_enable=YES
实验
匿名用户下载
anon_world_readable_only=NO NO表示匿名用户可以下载
实验
匿名用户删除
anon_other_write_enable=YES
匿名用户使用的用户身份
chown_uploads=YES
chown_username=student
实验
最大上传速率
anon_max_rate=多少k
最大链接数
max_clients=数字
本地用户家目录修改
local_root =/directory
本地用户上传文件权限
local_umask=xxx
5.限制本地用户浏览根目录
默认时,所有的用户被锁定在家目录中
chroot_local_user=YES(改文件生效后就可以去其他目录)
chmod u-w /home/*
用户黑名单建立(westos写在名单里)
chroot_local_user=NO(no表示所有的用户被锁在自己的家目录)
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list(名单表示里面的不可以出来)
监控
用户白名单建立
chroot_local_user=YES(所有的用户都没有锁)
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list(名单里的人可以出来)
监控
ftp的黑名单
/etc/vsftpd/
ftpusers:永久的黑名单(优先级高)
user_list:暂时的黑名单(有可能会是白名单)(优先级低)
用户白名单设定
当userlist_deny=NO
user_list名单会成为白名单
6.ftp虚拟帐号设定
vim /etc/vsftpd/westos ##文件名任意(一行用户名,一行密码)
westos1
1234
westos2
1234
westos3
1234
db_load -T -t hash -f /etc/vsftpd/westos /etc/vsftpd/westosfile.db
将westos文件加密,创建加密的db文件
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_service_name=westos(登陆时读取这个文件)
guest_enable=YES
guest_username=ftp(ftp代表匿名)(其他用户名就表示以其他用户的省份登陆)
测试
虚拟用户拥有自己的目录
mkdir -p /ftphomedir/westos{1..3}
touch /ftphomedir/westos1/westosfile1
touch /ftphomedir/westos2/westosfile2
touch /ftphomedir/westos3/westosfile3
先创建目录和文件
vim /etc/vsftpd/vsftpd.conf
pam_service_name=westos
local_root=/ftphomedir/$USER
user_sub_token=$USER
guest_enable=YES
guest_username=ftp
userlist_enable=YES
tcp_wrappers=YES
测试