linux之ftp服务器的搭建及其常用参数

一.ftp服务

1.ftp的定义
FTP是File Transfer Protocol文件传输协议的英文名称,用于在internet上控制文件的双向传输。同时它也是一个应用程序。
2.文件传输协议
ftp://
可在浏览器上访问
3.默认发布目录
/var/ftp
4.接口协议
21/ftp
5.服务配置文件
/etc/vsftpd/vsftpd.conf
6.ftp协议提供in的软件
在rhel7中:
vsftpd
7.连接时部分报错的分析

id 解释
500 文件系统权限过大
530 用户认证失败
550 服务本身功能未开放
553 本地文件系统权限过小

二.部署ftp服务

1.在服务端部署ftp服务
(1)更改selinux

vim /etc/sysconfig/selinux    ##关闭selinux
7  SELINUX=disabled      ##更改第七行为disabled

在这里插入图片描述
更改完成后需要重启

getenforce        ##查看selinux状态

在这里插入图片描述
(2)安装服务

在yum源搭建好之后:

yum install  lftp  -y
yum install  vsftpd -y    

在这里插入图片描述
在这里插入图片描述
(3)设置火墙
法一:命令设定火墙

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

在这里插入图片描述

法二:图形设定火墙

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

在这里插入图片描述

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

在这里插入图片描述
2.在客户端测试
在客户端进行

yum install lftp -y        ##安装lftp

在这里插入图片描述

lftp  172.25.77.202

在这里插入图片描述
在这里插入图片描述
可使用命令则证明部署ftp服务成功

三.ftp的配置文件

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

1.匿名用户的设定
(1)匿名用户的登录限制

参数 意义
annoymous_enable=YES/NO 匿名用户是否可以登录
annoymous_enable=YES  

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

annoymous_enable=NO
systemctl restart vsftpd    ##重启服务

在这里插入图片描述
在这里插入图片描述
(2).匿名用户上传

参数 解释
write_enable=YES/NO ftp是否对用户可写,即上传,下载,创建等功能
anon_upload_enable=YES/NO 允许匿名用户是否可以上传

在服务端:

anon_upload_enable=YES

在这里插入图片描述

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

在这里插入图片描述

在客户端:
注:put为上传文件
在这里插入图片描述
(3).用户家目录的修改

参数 解释
anon_root=/directory 该目录是匿名用户登录时的进入的默认的目录

在服务端:
在这里插入图片描述
在这里插入图片描述

在客户端:
验证如下:
在这里插入图片描述
(4)匿名用户上传文件的权限修改

参数 解释
anon_mask=022 匿名用户新增文件时系统保留的权限为022

在服务端:
在这里插入图片描述
在这里插入图片描述
在客户端:
验证如下:
在这里插入图片描述
注:由于系统对文件保留执行权限,所以文件最后的权限为777-022=644
(5)匿名用户建立家目录

参数 解释
anon_mkdir_write_enable=YES/NO 匿名用户是否可以创建家目录(33行)

在服务端:
vim /etc/vsftpd/vsftpd.conf
在这里插入图片描述
在这里插入图片描述
在客户端:
验证如下:
在没有添加配置文件的参数前
在这里插入图片描述
在添加了配置文件参数之后
在这里插入图片描述
(6)匿名用户下载

参数 解释
anon_world_readable_only=YES/NO 参数若为no表示匿名用户可以下载

在服务端:
vim /etc/vsftpd/vsftpd.conf
systemctl restart vsftpd
在这里插入图片描述
在这里插入图片描述
在客户端:
验证如下:

注:下载的命令是get

在这里插入图片描述
(7)匿名用户的删除

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

在服务端:

vim /etc/vsftpd/vsftpd.conf   ##更改配置
systemctl restart vsftpd  ##重启服务

在这里插入图片描述
在客户端:
验证如下:
在这里插入图片描述
(8)匿名用户使用的用户身份修改

参数 解释
chown_uploads=YES 所有匿名上传的用户文件的所属用户将会被改成chown_username(默认在48行)
chown_username=redhat 匿名用户身份指定,必须为服务端已有用户(默认在49行)

在服务端:

vim /etc/vsftpd/vsftpd.conf     ##更改配置
systemctl   restart  vsftpd      ##重启服务

在这里插入图片描述
在客户端:
验证如下:
在这里插入图片描述
发现上传文件的用户的uid已经变成westos的uid为1001

(9)匿名用户上传文件的最大速率

参数 解释
anon_max_rate=102400 最大上传速率,单位为bit

在服务端:

vim  /etc/vsftpd/vsftpd.conf       ##更改配置
systemctl  restart   vsftpd         ##重启服务

在这里插入图片描述
在客户端:
验证如下:
在这里插入图片描述
发现上传速率保持在100K左右

(10)匿名用户最大链接数

参数 解释
max_clients=1 只允许一个用户登录该ftp服务器

在服务端:

vim /etc/vsftpd/vsftpd.conf   ##更改配置
systemctl restart vsftpd     ##重启服务

在这里插入图片描述
在客户端:
检测如下:
在这里插入图片描述
发现只有一台可以连接到!

2.本地用户的设定
(1)本地用户的登录

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

在服务端:

vim /etc/vsftpd/vsftpd.conf  ##更改配置
systemctl restart  vsftpd    ##重启服务

在这里插入图片描述
在客户端:
验证如下:
在这里插入图片描述
(2)本地用户家目录的修改

参数 解释
local_root=/directory 家目录的用户权限应没有w
write_enable=YES 本地用户写权限限制

在服务端:


vim /etc/vsftpd/vsftpd.conf   ##更改配置
systemctl restart vsgtpd     ##重启服务

在这里插入图片描述
在这里插入图片描述
在客户端:
验证如下:
在这里插入图片描述
(3)本地用户上传文件权限

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

在服务端:

vim /etc/csftpd/vsftpd.conf    ##更改配置
systemctl restart  vsftpd       ##重启服务

在这里插入图片描述
在客户端:
验证如下:
在这里插入图片描述
上传的/etc/fstab文件的权限为777-022=644
(4)限制本地用户浏览根目录

参数 解释
chroot_local_user=YES 将本地用户锁定到自己的家目录中

在服务端:

vim /etc/vsftpd/vsftpd.conf   ##更改配置
systemctl restart vsftpd      ##重启服务

在这里插入图片描述
在客户端:
验证如下:
在对vsftpd的文件进行配置之前,发现可以浏览家目录
在这里插入图片描述
在对文件进行了参数配置之后,发现浏览不了家目录,该用户被锁定在了自己的家目录中。
在这里插入图片描述
(5)本地用户黑名单建立

参数 解释
chroot_local_user=NO NO表示下面的路径为黑名单
chroot_list_enable=YES 表示开启黑白名单功能
chroot_list_file=/etc/vsftpd/chroot_list 黑名单路径

在服务端:

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

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

vim /etc/vsftpd/vsftpd.conf   ##更改配置
systemctl restart  vsftpd      ##重启服务

在这里插入图片描述
在客户端:
验证如下:
当student登录的时候,发现不能切到家目录,被锁定到了自己的家目录中,因为student在黑名单中,但用westos登录后发现可以进入家目录的根
在这里插入图片描述
(6)本地用户白名单建立

参数 解释
chroot_local_user=YES YES表示下面的路径为白名单
chroot_list_enable=YES 表示开启黑白名单功能
chroot_list_file=/etc/vsftpd/chroot_list 白名单路径

在服务端:

touch /etc/vsftpd/chroot_list     ##建立用户白名单文件
vim  /etc/vsftpd/chroot_list     ##编辑白名单文件

在这里插入图片描述

vim /etc/vsftpd/vsftpd.conf    ##更改配置
systemctl  restart  vsftpd     ##重启服务

在这里插入图片描述
在客户端:
验证如下:
student用户在白名单中,可以浏览家目录
在这里插入图片描述
westos不是白名单上的用户,被锁定在了自己的家目录中
在这里插入图片描述
(7)限制本地用户登录

  • 用户永久黑名单的建立
    在服务端:
vim  /etc/vsftpd/ftpusers      ##用户永久黑名单,只要出现在该名单上的用户不能登录ftp服务器

在这里插入图片描述

在客户端:
验证如下:
在这里插入图片描述

  • 用户临时黑白名单的建立
参数 解释
userlist_deny=YES/NO 当为YES时,为黑名单,NO时为白名单
vim /etc/vsftpd/user_list     ##用户临时黑名单,当user_deny=NO出现时该名单变为白名单

在服务端:
在这里插入图片描述

vim /etc/vsftpd/vsftpd.conf    ##更改配置
systemctl restart vsftpd       ##重启服务

在这里插入图片描述
在客户端:
验证如下:
在这里插入图片描述

四.虚拟用户的设定

1.创建虚拟用户身份
(1)建立虚拟用户文件名单

vim   /etc/vsftpd/viruser              ##新建账户名单文件,文件名任意,奇数行为帐号,偶数行为密码

在这里插入图片描述
(2)虚拟用户文件的加密

db_load -T hash -f  /etc/vsftpd/viruser   /etc/vsftpd/viruser.db     ##hash加密

在这里插入图片描述
(3)建立虚拟文件与/etc/vsftpd/vsftpd.conf的联系

vim /etc/pam.d/virt     ##指定文件名任意

用户或密码:account,auth
判定方式:required
指向插件:pam_user.so
帐号文件:db=/etc/vsftpd/viruser
在这里插入图片描述

vim   /etc/vsftpd/vsftpd.conf     ##更改配置文件
systemctl  restart  vsftpd         ##重启服务
参数 解释
pam_service_name=virt 关联/etc/pam.d目录下的virt文件
guest_enable=YES 虚拟用户可以登录
guest_username=ftp 虚拟用户登录时用的身份

在这里插入图片描述
(4)验证
在这里插入图片描述
2.虚拟帐号独立家目录设置

参数 解释
local_root=/var/ftpuserdir/$USER 设置用户进入的家目录为/var/ftpuserdir/$USER ,表示当前用户的名字
user_sub_token=$USER 设置该配置文件识别 u s e r 使 s h e l l user符号时使用shell里面的 user
mkdir -p /var/ftpuserdir/westos{1..3}     ##家目录名必须和虚拟账号的名相同
vim  /etc/vsftpd/vsftpd.conf        ##更改配置文件
systemctl   restart   vsftpd         ##重启服务

在这里插入图片描述
在这里插入图片描述
验证:
在服务端:
在这里插入图片描述
在客户端:
在这里插入图片描述
3.虚拟帐号独立配置

参数 解释
user_config_dir=/etc/vsftpd/user_conf 设置虚拟用户独立配置路径

准备工作:
在这里插入图片描述

mkdir -p  /etc/vsftpd/user_conf     ##创建独立配置路径
vim  /etc/vsftpd/user_conf             ##编辑该文件

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

vim  /etc/vsftpd/vsftpd.conf            ##更改配置文件
systemctl restart  vsftpd              ##重启服务

在这里插入图片描述
验证:
在客户端:
在这里插入图片描述
在这里插入图片描述
发现可以上传

猜你喜欢

转载自blog.csdn.net/weixin_44224288/article/details/86770879
今日推荐