FTP服务

来源:互联网 发布:数据库如何打开mdf文件 编辑:程序博客网 时间:2024/05/21 09:43

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 对登陆用户是否可写(匿名用户永远不可写)
这里写图片描述
实验
这里写图片描述

匿名用户上传
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
anon_upload_enable=YES
[root@localhost ~]# systemctl restart vsftpd
这里写图片描述
[root@localhost ~]# chgrp ftp /var/ftp/pub/
[root@localhost ~]# 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
这里写图片描述
测试
这里写图片描述