一、ftp简介

1.文件传输协议

ftp://
可用浏览器访问

2.默认发布目录

/var/ftp

3.接口协议

21/tcp

4.服务配置文件

/etc/vsftpd/vsftpd.conf

5.连接时部分报错id的解析
id解释
500文件系统权限过大
530用户认证失败
550服务本身功能未开放
553本地文件系统权限过小
6.ftp协议提供的软件

在rhel7中:
vsftpd

二、部署ftp服务

  • 在服务端部署
vim /etc/sysconfig/selinux		##关闭selinux
7 SELINUX=disabled		##更改第七行为disable

在这里插入图片描述
更改完后须重启

getenforce				##查看selinux状态

在这里插入图片描述

yum install vsftpd lftp -y

在这里插入图片描述

systemctl start vsftpd 						##打开vsftp服务
systemctl start firewalld					##打开防火墙
firewall-cmd --permanent --add-service=ftp	##允许ftp通过防火墙
systemctl restart firewalld

在这里插入图片描述

firewall-config			##用图形更改防火墙设置

在这里插入图片描述

firewall-cmd --list-all		##查看防火墙状态

在这里插入图片描述

  • 测试
    在客户端进行
lftp 172.25.254.210		##连接ftp服务器

在这里插入图片描述
在其中能使用命令则说明部署ftp服务成功

三、ftp配置文件

vim /etc/vsftpd/vsftpd.conf			##编辑ftp配置文件

Ⅰ.匿名用户的设定

1.匿名用户和本地用户的登陆限制
参数解释
anonymous_enable=YES/NO匿名用户是否可以登陆

在这里插入图片描述
在这里插入图片描述

2.匿名用户上传
参数解释
write_enable=YES/NOftp是否对登陆用户可写,即上传、下载、创建等功能的总开关
anon_upload_enable=YES/NO允许匿名用户是否可以上传

在这里插入图片描述

systemctl restart vsftpd	##重启vsftpd服务
chgrp ftp /var/ftp/pub		##更改该文件组为ftp
chmod 775 /var/ftp/pub		##允许该文件被ftp组可读可写

注:上传命令是put
在这里插入图片描述

3.匿名用户家目录修改
参数解释
anon_root=/directory该目录即是匿名用户登陆时进入的目录

在这里插入图片描述

systemctl restart vsftpd	##重启vsftpd服务

在这里插入图片描述

4.匿名用户上传文件默认权限修改
参数解释
anon_umask=022匿名用户新增文件时系统保留的权限为022

在这里插入图片描述
在这里插入图片描述
由于系统对文件保留执行权限,所以文件最后的权限为644

5.匿名用户建立目录
参数解释
anon_mkdir_write_enable=YES/NO默认在33行,匿名用户是否可以创建目录

在这里插入图片描述
在这里插入图片描述

6.匿名用户下载
参数解释
anon_world_readable_only=YES/NO设定参数值为NO表示匿名用户可以下载

在这里插入图片描述
在这里插入图片描述
注:下载命令是get,下载的文件会保存在进入lftp时所在的路径下

7.匿名用户删除
参数解释
anon_other_write_enable=YES/NO匿名用户是否可以删除文件

在这里插入图片描述
在这里插入图片描述

8.匿名用户使用的用户身份修改及最大上传速率和最大链接数
参数解释
chown_uploads=YES默认在48行,所有匿名上传的文件的所属用户将会被更改成chown_username
chown_username=redhat默认在49行,匿名用户身份指定,必须是服务端已有的用户
anon_max_rate=102400最大上传速率,单位为bit
max_clients=2允许同时有2个用户登陆该ftp服务器

在这里插入图片描述在这里插入图片描述
上传的文件用户uid已变成1001,即redhat
在这里插入图片描述
上传速率保持在100K左右
在这里插入图片描述
最大链接数为2,最右边的主机无法连接

Ⅱ.本地用户设定

1.本地用户登陆
参数解释
local_enable=YES/NO本地用户是否可以登陆

在这里插入图片描述
在这里插入图片描述

2.本地用户家目录修改
参数解释
local_root=/directory家目录的用户权限应没有w

在这里插入图片描述

chmod u-w /mnt/dc

在这里插入图片描述

3.本地用户上传文件权限
参数解释
local_umask=022本地用户新增文件时系统保留的权限为022

在这里插入图片描述
在这里插入图片描述
上传得到的passwd文件权限为777-022-111=644,与结果rw-r–r--相符

4.限制本地用户浏览根目录
参数解释
chroot_local_user=YES默认在101行,将所有本地用户被锁定到自己的家目录中

在这里插入图片描述
在这里插入图片描述

5.本地用户黑名单建立

作用:其他用户用黑名单上的本地用户登陆ftp时,会被锁定到该本地用户的家目录中。

touch /etc/vsftpd/chroot_list	##建立黑名单
vim /etc/vsftpd/chroot_list		##在里面添加的用户不能进入根目录

在这里插入图片描述

参数解释
chroot_local_user=NO默认在101行,NO表示下面的路径是黑名单
chroot_list_enable=YES默认在102行,YES表示开启黑白名单功能
chroot_list_file=/etc/vsftpd/chroot_list默认在104行,黑名单路径

在这里插入图片描述
在这里插入图片描述

6.本地用户白名单建立

作用:其他用户用白名单上的本地用户登陆ftp时,可以访问根目录

touch /etc/vsftpd/chroot_listb	##建立白名单
vim /etc/vsftpd/chroot_listb	##在里面添加的用户可以进入根目录

在这里插入图片描述

参数解释
chroot_local_user=YES默认在101行,YES表示下面的路径是白名单
chroot_list_enable=YES默认在102行,YES表示开启黑白名单功能
chroot_list_file=/etc/vsftpd/chroot_listb默认在104行,白名单路径

在这里插入图片描述
在这里插入图片描述

7.限制本地用户登陆
vim /etc/vsftpd/ftpusers      ##用户永久黑名单,只要在该名单上出现的用户不能登陆ftp服务器
vim /etc/vsftpd/user_list     ##用户临时黑名单,当userlist_deny=NO出现时该名单变为白名单

在这里插入图片描述

参数解释
userlist_deny=YES/NOYES时/etc/vsftpd/user_list时黑名单,NO时/etc/vsftpd/user_list是白名单

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Ⅲ.虚拟用户的设定

1.创建虚拟用户身份
vim /etc/vsftpd/virtfile		##新建账户名单文件,文件名任意,奇数行时帐号,偶数行是密码

在这里插入图片描述

db_load -T -t hash -f /etc/vsftpd/virtuser /etc/vsftpd/virtuser.db		##hash加密,账户名单文件

在这里插入图片描述

vim /etc/pam.d/virt		##指定文件名任意
用户或密码判定方式指向插件帐号文件
accountrequiredpam_userdb.sodb=/etc/vsftpd/virtuser
authrequiredpam_userdb.sodb=/etc/vsftpd/virtuser

在这里插入图片描述

vim /etc/vsftpd/vsftpd.conf	##更改配置文件
参数解释
pam_service_name=virt关联/etc/pam.d目录下的virt文件
guest_enable=YES打开虚拟用户登陆
guest_username=ftp虚拟用户登陆时用的身份

在这里插入图片描述
在这里插入图片描述

2.虚拟帐号独立家目录设置
mkdir -p /var/ftpuserdir/redhat{1..3}	##家目录名须和虚拟账户名相同
vim /etc/vsftpd/vsftpd.conf				##更改配置文件
参数解释
local_root=/var/ftpuserdir/$USER设置用户进入时的家目录为/var/ftpuserdir/$USER, $USER表示当前用户的名字
user_sub_token=$USER设置该配置文件识别$USER符号时使用shell里的 $USER

在这里插入图片描述
在这里插入图片描述

3.虚拟帐号独立配置
mkdir -p /etc/vsftpd/user_conf		##创建独立配置路径
vim /etc/vsftpd/vsftpd.conf			##更改配置文件
参数配置
user_config_dir=/etc/vsftpd/user_conf设置虚拟用户独立配置路径

在这里插入图片描述
在这里插入图片描述

Logo

更多推荐