FTP服务器搭建

一、FTP服务器简介

1.FTP协议简介

  • FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。

  • 计算机中实现文件传输的协议

  • FTP协议默认使用TCP端口中的 20和21端口,20用于传输数据,21用于传输控制信息。(数据传输:主动模式-20;被动模式–协商)
    在这里插入图片描述

  • FTP工作方式

    • 主动模式
      在这里插入图片描述
    • 被动模式
      在这里插入图片描述

2.vsftpd介绍

  • vsftpd(very secure FTP daemon) 是一个 UNIX 类操作系统上运行的服务器
  • 特点:安全、可配置性强、效率高
  • 主配置文件:/etc/vsftpd/vsftpd.conf

二、FTP服务器(vsftpd)搭建

1、服务端:

  • 服务端检查安装vsftpd
    rmp -qa|grep vsftpd
  • 安装vsftpd
    yum -y install vsftpd
  • 设置自启动
    systemctl -enable vsftpd
  • 开启vsftpd服务
    systemctl start vsftpd
  • 设置防火墙(只开启20、21端口并不能成功,会出现ftp: connect: No route to host情况)
    firewall-cmd --permanent -add-service=ftp
  • 设置SelLinux安全策略(ftpd_full_access设置为on)
    setsebool -P ftpd_full_access=1

2、客服端:

  • 客户端安装ftp
    yum -y install ftp

3、测试:

  • ftp + [域名/IP]

三、FTP服务器配置

  • (1)登录及对匿名用户的设置
    anonymous_enable=YES:设置是否允许匿名用户登录FTP服务器。
    local_enable=YES:设置是否允许本地用户登录FTP服务器。
    write_enable=YES:全局性设置,设置是否对登录用户开启写权限。
    ftp_username=ftp:设置匿名用户的帐户名称,默认值为ftp。
    no_anon_password=YES:设置匿名用户登录时是否询问口令。设置为YES,则不询问。
    local_umask=022:设置本地用户的文件生成掩码为022。则对应权限为755(777-022=755)。
    anon_umask=022:设置匿名用户新增文件的umask掩码。
    anon_upload_enable=YES:设置是否允许匿名用户上传文件,只有在write_enable的值为yes时,该配置项才有效。
    anon_mkdir_write_enable=YES:设置是否允许匿名用户创建目录,只有在write_enable的值为yes时,该配置项才有效。
    anon_other_write_enable=NO:若设置为YES,则匿名用户会被允许拥有多于上传和建立目录的权限,还有删除和更名的权限。默认值为NO。
    anon_world_readable_only=NO:允许匿名用户下载不具备读权限的文件,需手工添加。
  • (2)设置欢迎信息
    ftpd_banner=Welcome to blah FTP service.:设置登录FTP服务器时显示的信息。
    banner_file=/etc/vsftpd/banner:设置用户登录时,将要显示banner文件中的内容,该设置将覆盖ftpd_banner的设置。
    dirmessage_enable=YES:设置进入目录时是否显示目录消息。若设置为YES,则用户进入目录时,将显示该目录中由message_file配置项指定文件(.message)中的内容。
    message_file=.message:设置目录消息文件的文件名。如果dirmessage_enable的取值为YES,则用户在进入目录时,会显示该文件的内容。
  • (3)设置用户登录目录
    local_root=/var/ftp:设置本地用户登录后所在的目录,默认情况下,没有此项配置。在vsftpd.conf文件的默认配置中,本地用户登录FTP服务器后,所在的目录为用户的主目录。
    anon_root=/var/ftp:设置匿名用户登录FTP服务器时所在的目录。若未指定,则默认为/var/ftp目录。
  • (4)设置是否将用户锁定在指定的FTP目录
    默认情况下,匿名用户会被锁定在默认的FTP目录中,而本地用户可以访问到自己FTP目录以外的内容。出于安全性的考虑,可以将本地用户也锁定在指定的FTP目录中。
    chroot_list_enable =YES:设置是否启用用户列表文件。
    chroot_list_file=/etc/vsftpd/chroot_list:指定用户列表文件。
    chroot_local_user=YES:用于指定用户列表文件中的用户,是否允许切换到指定FTP目录以外的其他目录。
  • (5)设置用户访问控制
    userlist_enable=YES:取值为YES时/etc/vsftpd/user_list文件生效,取值为NO时/etc/vsftpd/user_list文件不生效。
    userlist_deny=YES:设置/etc/vsftpd.user_list文件中的用户是否允许访问FTP服务器。若设置为YES时,则/etc/vsftpd/user_list文件中的用户不能访问FTP服务器;若设置为NO时,则只有/etc/vsftpd/user_list文件中的用户才能访问FTP服务器。
  • (6)设置主机访问控制
    tcp_wrappers=YES:设置是否支持tcp_wrappers。若取值为YES,则由/etc/hosts.allow和/etc/hosts.deny文件中的内容控制主机或用户的访问。若取值为NO,则不支持。
  • (7)设置FTP服务的启动方式及监听IP
    vsftpd服务既可以以独立方式启动也可以由Xinetd进程监听以被动方式启动。
    listen=YES:若取值为YES则vsftpd服务以独立方式启动。如果想以被动方式启动将本行注释掉即可。
    listen_address=IP:设置监听FTP服务的IP地址,适合于FTP服务器有多个IP地址的情况。如果不设置,则在所有的IP地址监听FTP请求。只有vsftpd服务在独立启动方式下才有效。
  • (8)与客户连接相关的设置
    anon_max_rate=0:设置匿名用户的最大传输速度,若取值为0,则不受限制。
    local_max_rate=0:设置本地用户的最大传输速度,若取值为0,则不受限制。
    max_clients=0:设置vsftpd在独立启动方式下允许的最大连接数,若取值为0,则不受限制。
    max_per_ip=0:设置vsftpd在独立启动方式下允许每个IP地址同时建立的连接数目。若取值为0,则不受限制。
    accept_timeout=60:设置建立FTP连接的超时时间间隔,以秒为单位。
    connect_timeout=120:设置FTP服务器在主动传输模式下建立数据连接的超时时间,单位为秒。
    data_connect_timeout=120:设置建立FTP数据连接的超时时间,单位为秒。
    idle_session_timeout=600:设置断开FTP连接的空闲时间间隔,单位为秒。
    pam_service_name=vsftpd:设置PAM所使用的名称。
  • (9)设置上传文档的所属关系和权限
    chown_uploads=YES:设置是否改变匿名用户上传文档的属主。默认为NO。若设置为YES,则匿名用户上传的文档属主将由chown_username参数指定。
    chown_username=whoever:设置匿名用户上传的文档的属主。建议不要使用root。
    file_open_mode=755:设置上传文档的权限
  • (10)设置数据传输模式
    ascii_download_enable=YES:设置是否启用ASCII码模式下载数据。默认为NO。
    ascii_upload_enable=YES:设置是否启用ASCII码模式上传数据。默认为NO。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值