• Linux Sever简单笔记(第十六堂课)之linux下FTP文件传输服务以及相关的文件配置


    16章Linux下FTP文件传输服务

    Linux下的FTP文件传输服务

    vsftpd 服务基础

    基于系统用户的 FTP服务

    基于虚拟用户的 FTP服务

    FTP 服务概述 

    FTP连接及传输模式

    控制连接:TCP 21,用于发送FTP命令信息

    数据连接:TCP 20,用于上传、下载数据

    数据连接的建立类型:

    主动模式:服务端从 20 端口主动向客户端发起连接

    被动模式:服务端在指定范围内某个端口被动等待客户端连接

    FTP传输模式

    文本模式:ASCII 模式,以文本序列传输数据

    二进制模式:Binary 模式,以二进制序列传输数据

    FTP 服务概述 

    FTP 用户的类型 

    匿名用户:anonymous ftp

    本地用户:

    帐号名称、密码等信息保存在 passwdshadow 文件中

    虚拟用户:

    使用独立的帐号/密码数据文件

    常见的 FTP 服务器程序

    ⚫ IISServ-U

    ⚫ wu-ftpdProftpd

    ⚫ vsftpdVery Secure FTP Daemon

    FTP 服务概述 

    常见的 FTP 客户端程序

    ⚫ ftp 命令

    ⚫ CuteFTPFlashFXPLeapFTPFilezilla

    ⚫ gftpkuftp

    Vsftpd 服务基础 

    Vsftpd 软件包

    官方站点:http://vsftpd.beasts.org/

    主程序:/usr/sbin/vsftpd

    服务名:vsftpd

    用户控制列表文件

    ◆ /etc/vsftpd/ftpusers

    ◆ /etc/vsftpd/user_list

    主配置文件

    ◆ /etc/vsftpd/vsftpd.conf

    主配置文件 vsftpd.conf 3-1 

    常用的全局配置项

    ⚫ listen=YES:是否以独立运行的方式监听服务

    ⚫ listen_address=192.168.4.1:设置监听的 IP 地址

    ⚫ listen_port=21:设置监听 FTP 服务的端口号

    ⚫ write_enable=YES:是否启用写入权限

    ⚫ download_enableYES:是否允许下载文件

    ⚫ userlist_enable=YES:是否启用 user_list 列表文件

    ⚫ userlist_deny=YES:是否禁用 user_list 中的用户

    ⚫ max_clients=0:限制并发客户端连接数

    ⚫ max_per_ip=0:限制同一 IP 地址的并发连接数

    主配置文件 vsftpd.conf 3-2 

    常用的匿名 FTP 配置项

    ⚫ anonymous_enable=YES:启用匿名访问

    ⚫ anon_umask=022:匿名用户所上传文件的权限掩码

    ⚫ anon_root=/var/ftp:匿名用户的 FTP 根目录

    ⚫ anon_upload_enable=YES:允许上传文件

    ⚫ anon_mkdir_write_enable=YES:允许创建目录

    ⚫ anon_other_write_enable=YES:开放其他写入权

    ⚫ anon_max_rate=0:限制最大传输速率(字节/秒)

    主配置文件 vsftpd.conf 3-3 

    常用的本地用户 FTP 配置项

    ⚫ local_enable=YES:是否启用本地系统用户

    ⚫ local_umask=022:本地用户所上传文件的权限掩码

    ⚫ local_root=/var/ftp:设置本地用户的 FTP 根目录

    ⚫ chroot_local_user=YES:是否将用户禁锢在主目录

    ⚫ local_max_rate=0:限制最大传输速率(字节/秒)

    基于系统用户的 FTP 服务 

    匿名访问

    准备匿名FTP访问的目录

    开放匿名用户配置并启动vsftpd服务

    测试

    用户验证

    基本的本地用户验证

    使用user_list用户列表文件

    实验:

    构建ftp

    安装vsftp

    启动ftp

    添加到开机启动

    检查端口

    配置防火墙

    启用防火墙端口

     

     

    配置防火墙

     

    设置临时关闭selinux

     

    创建用户

    查看ip地址

    ifconfig

    创建测试文件

    客户端

    检查是否有ftp

    安装ftp

    yum inastall -y ftp

    测试允许哪些用户登录

    匿名用户

    查看

    下载

    退出

    byb exist

    使用jack用户

    下载文件并改名

    上传 并改名

    退出

    bybexit

    构建可匿名上传的 FTP 服务器2-1 

    准备匿名 FTP 访问的目录

    使匿名用户 FTP 对该目录有写入权限

    [root@centos7 ~]# ll /var/ftp/

    drwxr-xr-x 2 root root 6 1031 2018 pub

    [root@centos7 ~]# mkdir /var/ftp/upload

    [root@centos7 ~]# chown ftp.ftp /var/ftp/upload/

    [root@centos7 ~]# ll /var/ftp/

    drwxr-xr-x 2 root root 6 1031 2018 pub

    drwxr-xr-x 2 ftp ftp 6 1024 22:51 upload

    注意:不要修改系统默认的目录结构和属性,新创建上传目录

    实验:

    服务器

    创建upload

    查看系统文件

    更改属主属组

     

     

    配置文件允许匿名用户上传修改文件

    备份

    构建可匿名上传的 FTP 服务器2-1 

    开放匿名用户配置,并启动 vsftpd 服务

    [root@centos7 ~]# vi /etc/vsftpd/vsftpd.conf

    12 anonymous_enable=YES

    29 anon_upload_enable=YES

    33 anon_mkdir_write_enable=YES

    129 anon_other_write_enable=YES

    [root@centos7 ~]# systemctl restart vsftpd

    打开配置文件

    添加掩码

     

     

     

    添加配置

    测试匿名 FTP 服务器 

    使用 ftp 客户端程序访问测试

    客户端验证

    上传文件

    发现失败

    upload成功

     

    服务器

    编辑配置文件,本地用户

     

     

     

     

     

     

    另一个终端

    用户控制列表文件(不允许)

     

    黑白名单

    构建本地用户验证的 FTP 服务器5-1 

    创建本地用户ftp访问目录

    [root@centos7 ~]# mkdir /localftp

    [root@centos7 ~]# mkdir /localftp/jack /localftp/rose

    [root@centos7 ~]# chmod -R o+t /localftp/

    [root@centos7 ~]# chown jack.jack /localftp/jack/

    [root@centos7 ~]# chown rose.rose /localftp/rose

    [root@centos7 ~]# chmod 700 /localftp/*

    构建本地用户验证的 FTP 服务器5-2 

    修改 vsftpd.conf 配置文件

    启用本地用户访问

    [root@centos7 ~]# vi /etc/vsftpd/vsftpd

    12 anonymous_enable=NO

    16 local_enable=YES

    101 chroot_local_user=YES

    102 chroot_list_enable=YES

    103 # (default follows)

    104 chroot_list_file=/etc/vsftpd/chroot_list

    105 local_root=/localftp

    127 userlist_enable=YES

    130 userlist_deny=NO

    131 allow_writeable_chroot=Yes

    构建本地用户验证的 FTP 服务器5-3 

    修改 vsftpd.conf 配置文件

    结合user_list文件灵活控制用户访问

    [root@centos7 ~]# echo jack > /etc/vsftpd/user_list

    [root@centos7 ~]# echo rose >> /etc/vsftpd/user_list

    结合chroot_list文件灵活锁定用户的访问目录

    [root@centos7 ~]# echo jack > /etc/vsftpd/chroot_list

    服务器

    另一个终端

    编辑chroot文件

    加入jack

    另一个配置文件

    加入rosejack

    构建本地用户验证的 FTP 服务器5-4 

    重新启动vsftpd 配置,并进行测试

    测试user_list的效果

    [root@centos7 ~]# systemctl restart vsftpd

    连接到 192.168.1.20

    220 (vsFTPd 3.0.2)

    200 Always in UTF8 mode.

    用户(192.168.1.20:(none)): tom

    530 Permission denied.

    登录失败。

    构建本地用户验证的 FTP 服务器5-5 

    重新加载 vsftpd 配置,并进行测试

    重启服务

    客户机

    测试

    测试rose

     

    测试jony

    vsftpd 服务的其他常用配置5-1 

    修改 vsftpd 服务的监听地址、端口

    listen=YES

    listen_address=192.168.4.11

    listen_port=2121 

    允许使用 FTP 服务器的被动模式

    pasv_enable=YES

    pasv_min_port=24500

    pasv_max_port=24600

    vsftpd 服务的其他常用配置2-2 

    限制 FTP 连接的并发数、传输速率

    max_clients=20

    max_per_ip=2

    anon_max_rate=50000

    local_max_rate=200000 单位是

    构建基于虚拟用户的 FTP 服务 

    创建帐号数据

    建立虚拟FTP用户的帐号数据库文件

    创建FTP根目录及虚拟用户映射的系统用户

    建立支持虚拟用户的PAM认证文件

    添加虚拟用户支持

    vsftpd.conf文件中添加支持配置

    为个别虚拟用户建立独立的配置文件

    启动服务并测试

    重新加载vsftpd配置

    使用虚拟ftp帐户访问测试

    实验:

    服务器

    创建虚拟用户,并且指定宿主目录

    创建测试文件

    更改文件权限

     

    创建账号数据3-1 

    建立虚拟 FTP 用户的帐号数据库文件

    建立虚拟用户的账户名、密码列表

    奇数行为帐号名

    偶数行为上一行中帐号的密码

    [root@centos7 ~]# vi /etc/vsftpd/vusers.list

    1 tom

    2 123

    3 jerry

    4 123

    创建文本文件

    添加两个用户

    Tom

    密码

    Jerry

    密码

    创建账号数据3-2 

    建立虚拟 FTP 用户的帐号数据库文件

    转化为 Berkeley DB 格式的数据文件

    ◆ db_load 转换工具

    需安装 db4-utils 软件包

    [root@centos7 ~]# cd /etc/vsftpd/

    [root@centos7 vsftpd]# db_load -T -t hash -f vusers.list vusers.db

    [root@centos7 vsftpd]# file vusers.db

    vusers.db: Berkeley DB (Hash, version 9, native byte-order)

    [root@centos7 vsftpd]# chmod 600 /etc/vsftpd/vusers.*

    [root@centos7 vsftpd]# ll vusers.*

    -rw------- 1 root root 12288 1027 22:43 vusers.db

    -rw------- 1 root root 18 1027 22:42 vusers.list

    查看文件属性

     

    修改文件权限

    查看

    创建账号数据3-3 

    创建 FTP 根目录及虚拟用户映射的系统用户

    [root@centos7 vsftpd]# useradd -d /vusersftp -s /sbin/nologin virtual

    [root@centos7 vsftpd]# chmod -Rf 755 /vusersftp/

    [root@centos7 vsftpd]# ll -d /vusersftp/

    drwxr-xr-x 2 virtual virtual 62 1027 22:45 /vusersftp/ 

    建立支持虚拟用户的 PAM 认证文件

    [root@centos7 vsftpd]# vi /etc/pam.d/vsftpd.vu

    1 #%PAM-1.0

    2 auth required pam_userdb.so db=/etc/vsftpd/vusers

    3 account required pam_userdb.so db=/etc/vsftpd/vusers

    编辑配置文件

    Pam认证文件

     

    添加虚拟用户支持2-1 

    vsftpd.conf 文件中添加支持配置

    [root@centos7 vsftpd]# vi /etc/vsftpd/vsftpd.conf

    12 anonymous_enable=NO

    16 local_enable=YES

    129 guest_enable=YES

    130 guest_username=virtual

    131 pam_service_name=vsftpd.vu

    132 allow_writeable_chroot=YES

    进行备份---编辑配置文件

     

     

     

    在客户机上测试

    添加虚拟用户支持2-2 

    为不同的虚拟用户建立独立的配置文件

    vsftpd.conf 文件中添加用户配置目录支持

    [root@centos7 vsftpd]# vi /etc/vsftpd/vsftpd.conf

    133 user_config_dir=/etc/vsftpd/vusers_dir

    为用户 tomjerry 建立独立的配置目录及文件

    配置文件名与用户名相同

    [root@centos7 vsftpd]# mkdir /etc/vsftpd/vusers_dir

    [root@centos7 vsftpd]# touch /etc/vsftpd/vusers_dir/tom

    [root@centos7 vsftpd]# vi /etc/vsftpd/vusers_dir/jerry

    1 anon_upload_enable=YES

    2 anon_mkdir_write_enable=YES

    3 anon_other_write_enable=YES

    服务器第二个终端

    创建tom

    编辑文件

     

    启动服务并测试 

    重新加载 vsftpd 配置

    [root@centos7 vsftpd]# systemctl start vsftpd 

    使用虚拟 FTP 账户访问测试

    ⚫ tom 用户可以登录,并可以浏览、下载,但无法上传

    ⚫ jerry 用户可以登录,并可以浏览、下载,也可以上传

    匿名用户或其他系统用户将不能登录

    实验:

    重启服务

    客户机验证

     

     

     

  • 相关阅读:
    Dell Optiplex 330上Windows 7激活方法与工具
    了解控制器、控制器操作和操作结果
    [转]为C# Windows服务添加安装程序
    前段时间晚上回家不想看电视了,就做了个网站
    MSSQL 2008里事务的一个问题
    关于JavaScript解析XML的性能的问题(已解决)
    自己做了一个教育的网站
    Windows 7下安装SQL Server 2005过程详解
    (转)C#学习基础概念二十五问
    了解模型、视图和控制器
  • 原文地址:https://www.cnblogs.com/yxd1308243944/p/13986265.html
Copyright © 2020-2023  润新知