linux中ftp服务器的搭建和配置

linux中的ftp服务的搭建及配置

  • 1 ftp概述
  • 2 ftp服务的搭建
    • 2.1 ftp的客户端
    • 2.2 FTP的服务端
      • 2.2.1 服务端软件vsftpd的下载
    • 2.2.2 vsftp的环境配置
      • 2.2.3 vsftpd的基本信息
  • 3 vsftp的配置参数
    • 3.1 用户的登陆
    • 3.2 设定用户的家目录
    • 3.3 匿名用户上传文件
    • 3.4 匿名用户下载文件
    • 3.5 匿名用户建立目录
    • 3.6 匿名用户的其他权限
  • 4 用户登录控制
    • 4.1 用户登录黑名单
    • 4.2 用户登录白名单
    • 4.3 用户家目录的锁定
    • 4 虚拟用户的管理
    • 4.1 虚拟用户的建立
    • 4.2 虚拟用户家目录的独立设定
    • 4.3 虚拟账号的独立配置文件

1 ftp概述

文件传输协议(File Transfer Protocol,FTP)是用于在网络上进行文件传输的一套标准协议,是应用层的协议, 使用 TCP进行可靠的 传输。客户在和服务器建立连接前要经过一个“三次握手”的过程, 保证客户与服务器之间的连接是可靠的, 而且是面向连接, 为数据传输提供可靠保证。
ftp

FTP 是基于客户———服务器(C/S)模型而设计的,在客户端与 FTP 服务器之间建立两个连接。

FTP允许用户以文件操作的方式(如文件的增、删、改、查、传送等)与另一主机相互通信。然而, 用户并不真正登录到自己想要存取的计算机,而是通过FTP程序访问远程资源, 实现用户往返传输文件、目录管理以及访问电子邮件等, 即使双方计算机可能配有不同的操作系统和文件存储方式。

2 ftp服务的搭建

2.1 ftp的客户端

  • 下载FTP的客户端软件:dnf install lftp.x86_64

linux中ftp服务器的搭建和配置_第1张图片

2.2 FTP的服务端

vsftpd (very secure FTP daemon)最大的特点是其安全性,vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开放源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。

2.2.1 服务端软件vsftpd的下载

  • 下载vslftp:dnf install vsftpd.x86_64 -y

linux中ftp服务器的搭建和配置_第2张图片

2.2.2 vsftp的环境配置

(1)关闭selinux

  • 查看selinux的状态: getenforce

在这里插入图片描述

  • 编辑配置文件更改selinux的状态:vim /etc/sysconfig/selinux

linux中ftp服务器的搭建和配置_第3张图片

  • 更改selinux的状态后必须重启系统:reboot
  • 确认selinux关闭

在这里插入图片描述

(2)开启vsftpd服务:systemctl start vsftpd.service

linux中ftp服务器的搭建和配置_第4张图片
(3)打开防火墙,添加ftp服务

  • 打开防火墙:systemctl start firewalld

linux中ftp服务器的搭建和配置_第5张图片

  • 列出允许的服务:firewall-cmd --list-all
  • 永久启用ftp服务:firewall-cmd --permanent --add-service=ftp
  • 在不改变状态的条件下重新加载防火墙:firewall-cmd --reload

linux中ftp服务器的搭建和配置_第6张图片

(4)验证ftp服务是否成功开启:ftp://172.25.254.10

linux中ftp服务器的搭建和配置_第7张图片

2.2.3 vsftpd的基本信息

  • 服务名称:vsftpd.service
  • 主配置目录:/etc/vsftpd/
  • 主配置文件:/etc/vsftpd/vsftpd.conf
  • 默认发布目录:/var/ftp
  • 报错信息
报错代码 报错原因
550 程序本身拒绝
553 文件系统权限限制
500 权限过大
530 认证失败

3 vsftp的配置参数

vsftp的主配置文件:/etc/vsftpd/vsftpd.conf

每次修改配置文件后必须重启vsftpd服务,否则更改的配置参数不生效

3.1 用户的登陆

(1) 是否允许匿名用户登陆:anonymous_enable

  • 不允许匿名用户登陆:anonymous_enable=NO,匿名用户不能登陆

在这里插入图片描述

在这里插入图片描述

  • 允许匿名用户访问:anonymous_enable=YES,匿名用户登陆后可以访问其中的内容

在这里插入图片描述

在这里插入图片描述
(2)是否允许本地用户登录:local_enable

  • 不允许本地用户登陆:local_enable=NO

在这里插入图片描述

在这里插入图片描述

  • 允许本地用户登陆:local_enable=YES

在这里插入图片描述

在这里插入图片描述

3.2 设定用户的家目录

(1)设定本地用户家目录:local_root=/var/ftp

在这里插入图片描述

在这里插入图片描述

(2)设定匿名用户的家目录

  • 匿名用户默认的家目录:/var/ftp
  • 设定匿名用户的家目录:anon_root=/westdir

在这里插入图片描述

在这里插入图片描述

3.3 匿名用户上传文件

(1)是否允许匿名用户上传文件:anon_upload_enable

  • 修改ftp默认发布目录的所有组:chgrp ftp /var/ftp/pub

  • 修改ftp默认发布目录的权限:chmod 777 /var/ftp/pub

  • 不允许匿名用户上传文件:anon_upload_enable=YES

在这里插入图片描述

  • 允许匿名用户上传文件:anon_upload_enable=YES
    在这里插入图片描述

linux中ftp服务器的搭建和配置_第8张图片
(2)上传文件的umask

  • 当设定chown_username之后上传文件权限将不受这个参数的影响

在这里插入图片描述

在这里插入图片描述

  • 设定匿名用户上传文件的umask值:anon_umask=022

在这里插入图片描述

linux中ftp服务器的搭建和配置_第9张图片
在这里插入图片描述

(3)匿名用户上传文件的权限

  • chown_uploads=YES:所有匿名上传的文件的所属用户将会被更改成chown_username
  • 匿名上传文件所属用户名:chown_username=linux
  • 匿名上传文件的权限:chown_upload_mode=0644

在这里插入图片描述

在这里插入图片描述

3.4 匿名用户下载文件

匿名登用户能否下载可读的文件的参数:anon_world_readable_only

  • 不允许匿名登用户下载可读的文件anon_world_readable_only=YES
    在这里插入图片描述

linux中ftp服务器的搭建和配置_第10张图片

  • 允许匿名用户能下载可读的文件anon_world_readable_only=NO

在这里插入图片描述

linux中ftp服务器的搭建和配置_第11张图片

3.5 匿名用户建立目录

  • 不允许匿名用户建立目录:anon_mkdir_write_enable=NO

在这里插入图片描述

在这里插入图片描述

  • 允许匿名用户建立目录:anon_mkdir_write_enable=YES

在这里插入图片描述

linux中ftp服务器的搭建和配置_第12张图片

3.6 匿名用户的其他权限

(1)是否允许匿名用户具有建立目录,上传之外的权限,如删除:anon_other_write_enable

  • 不允许匿名用户具有建立目录,上传之外的权限:anon_other_write_enable=NO

在这里插入图片描述

linux中ftp服务器的搭建和配置_第13张图片

  • 允许匿名用户具有建立目录,上传之外的权限:anon_other_write_enable=YES

在这里插入图片描述

linux中ftp服务器的搭建和配置_第14张图片

(2)可接受的最大client数目:max_clients=1

在这里插入图片描述

  • 第二台主机登陆该服务器时,提示超过最大的连接数,无法登录

在这里插入图片描述

(3)匿名用户的传输比率(b/s):anon_max_rate=10

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

4 用户登录控制

4.1 用户登录黑名单

(1)默认黑名单:/etc/vsftpd/user_list

  • 将linux加入到登陆黑名单:echo linux > /etc/vsftpd/user_list

在这里插入图片描述
(2)永久黑名单:/etc/vsftpd/ftpusers

  • 将westos加入到登陆黑名单:echo westos >/etc/vsftpd/ftpusers

linux中ftp服务器的搭建和配置_第15张图片

4.2 用户登录白名单

  • 设定/etc/vsftpd/user_list为用户登录白名单,不在此名单中的用户不能登陆
  • 在配置文件中修改:userlist_deny=NO

在这里插入图片描述

  • 将westos加入到登陆白名单:echo westos >/etc/vsftpd/user_list

linux中ftp服务器的搭建和配置_第16张图片

4.3 用户家目录的锁定

(1)将本地用户锁定在其家目录中:chroot_local_user=YES

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

在这里插入图片描述

(2)锁定用户到自己家目录中的白名单

  • 在vsftpd主配置文件中修改: /etc/vsftpd/vsftpd.conf
  • 禁止本地用户访问根目录:chroot_local_user=YES
  • 开启本地用户访问根目录的用户列表:chroot_list_enable=YES,只有列在chroot_list_file之中的使用者才能访问根目录
  • 指定名单中的用户可以访问根目录:chroot_list_file=/etc/vsftpd/chroot_list

在这里插入图片描述

  • 重启vsftpd服务
  • 将westos用户加入名单:echo westos > /etc/vsftpd/chroot_list

linux中ftp服务器的搭建和配置_第17张图片

(3)锁定用户到自己家目录中的黑名单

  • 开启本地用户访问根目录:chroot_local_user=NO
  • 开启限制本地用户访问根目录的用户列表:chroot_list_enable=YES
  • 指定名单中的用户可以访问根目录:chroot_list_file=/etc/vsftpd/chroot_list,在chroot_list_file之中的使用者不能访问根目录

linux中ftp服务器的搭建和配置_第18张图片

  • 重启vsftpd服务后,查看用户访问根目录黑名单

linux中ftp服务器的搭建和配置_第19张图片

4 虚拟用户的管理

4.1 虚拟用户的建立

(1)创建认证文件:vim /etc/vsftpd/ftp_auth_file

在这里插入图片描述

(2)加密认证文件

 db_load -T -t hash -f ftp_auth_file  ftp_auth_file.db

在这里插入图片描述

(3)创建虚拟用户认证文件:vim /etc/pam.d/user

在这里插入图片描述

(4)编辑配置文件: /etc/vsftpd/vsftpd.conf

在这里插入图片描述

  • 启用guest后,所有非匿名用户将映射到guest_username进行访问,包括本地系统用户也不能使用

(5)重启vsftpd服务:systemctl restart vsftpd.service

(6)虚拟用户登陆检测

  • user1和user2不是系统中真实存在的用户

在这里插入图片描述

  • 正确的输入虚拟用户的账号密码可以正常登陆

在这里插入图片描述

在这里插入图片描述

4.2 虚拟用户家目录的独立设定

(1)实验环境

  • 建立虚拟用户名对应的子目录:mkdir -p /ftpuserdir/user{1..2}
  • 为了便于观察实验结果在在虚拟用户名对应的目录下建立子文件:
touch /ftpuserdir/user1/userfile1 
touch /ftpuserdir/user1/userfile1  

(2)编辑vsftpd的配置文件:vim /etc/vsftpd/vsftpd.conf

在这里插入图片描述
(3)重启vsftpd服务:systemctl restart vsftpd.service

linux中ftp服务器的搭建和配置_第20张图片

4.3 虚拟账号的独立配置文件

(1)新建目录存放虚拟用户对应的配置文件: /etc/vsftpd/virtuserconf/
(2)新建user1的配置文件: touch /etc/vsftpd/virtuserconf/user1

  • 文件名与虚拟用户的名称一致,作为虚拟用户的配置文件,其优先级高于vsftp的主配置文件

(3)虚拟用户user1开放文件上传功能

echo anon_upload_enable=YES > /etc/vsftpd/virtuserconf/user1

(4) 关闭 /etc/vsftpd/vsftpd.conf 配置文件中虚拟用户上传文件的功能

(5)测试

  • 使用虚拟用户user1和user2登录系统,验证实验效果

linux中ftp服务器的搭建和配置_第21张图片

你可能感兴趣的:(linux基础)