• FTP安装及配置


    在centos7安装ftp服务

     yum install -y vsftpd

    启动服务

    systemctl start vsftpd

    自启动

    systemctl enable vsftpd

    查看端口

    注意关闭SELinux和本地防火墙,否则不能正常操作

    重要文件

    /var/ftp/pub/  默认共享目录

    /etc/vsftpd/vsftpd.conf  主配置文件

    /etc/vsftpd/user_list  黑名单,可修改成白名单       

    /etc/vsftpd/ftpusers  黑名单

    FTP相关用户

    匿名用户

    anonymous或ftp

     本地用户

    Linux系统用户 

    虚拟用户

    管理员自定义用户

    配置文件/etc/vsftpd/vsftpd.conf

    anonymous_enable=YES             ### 允许匿名登录,建议关闭
    local_enable=YES        ### 允许本地用户登录
    write_enable=YES        ### 允许对文件系统做改动的 FTP 命令
    local_umask=022             ### 本地用户创建文件所用的 umask 值
    dirmessage_enable=YES           ### 当用户首次进入一个新目录时显示一个消息
    xferlog_enable=YES      ### 用于记录上传、下载细节的日志文件
    connect_from_port_20=YES        ### 主动模式数据传输接口
    xferlog_std_format=YES          ### 使用标准的ftp日志格式
    listen=NO               ### 不要让 vsftpd 运行在独立模式
    listen_ipv6=YES             ### vsftpd 将监听 IPv6 而不是 IPv4
    pam_service_name=vsftpd         ###  vsftpd 使用的 PAM 服务名
    userlist_enable=YES             ### 用户登入限制
    tcp_wrappers=YES        ### 使用 tcp wrappers

    匿名用户登入

    在默认情况下,ftp可以用匿名用户登入,登入的目录为/var/ftp/

    用户名为anonymous或ftp,密码为空,建议关闭

    默认情况下,只能在对应的目录下进行下载文件,不能上传文件

    可以修改对应的配置文件,允许匿名用户进行文件上传和建立目录的权限

    配置文件/etc/vsftpd/vsftpd.conf中将以下两行注释去掉即可

    anon_upload_enable=YES        #允许上传文件
    anon_mkdir_write_enable=YES   #允许建立目录

    重启服务,同时还需要让ftp作为/var/ftp/pub的所有者

    chown ftp pub/

    重新用匿名用户登入ftp就可以在pub/上传文件和建立目录

    系统用户登入

    采用Linux的系统用户作为ftp服务的用户进行登入,但是因为ftp是明文传递,如果被人截获数据包,就相当于获得Linux的用户和密码,因此建议关闭

    默认情况下,采用系统用户登入,可以进行上传下载,目录为用户的家目录

    可以修改配置文件更换系统用户的登入位置,在/etc/vsftpd/vsftpd.conf添加

    local_root=/tmp/test_home/

    然后建立对应的目录 mkdir /tmp/test_home,重启服务

    再次登入ftp,目录为/tmp/test_home,其他Linux用户登入ftp服务也是在这个目录(注意系统的目录权限)

    但是用系统用户登入ftp存在一个缺陷,即可以切换到根目录,可以窃取其他目录的信息,所以我们需要把系统用户禁锢在家目录下

    进入配置文件,把这句话前面的注释去掉,然后重启服务,即把所有的系统用户限制在家目录下

    chroot_local_user=YES
    注意一个特别配置,如果把这三句都去掉注释,同时在/etc/vsftpd/建立一个chroot_list,里面的内容为系统用户,那么写在这里的系统用户则可以访问任何目录
    chroot_local_user=YES
    chroot_list_enable=YES
    chroot_list_file=/etc/vsftpd/chroot_list

    假如我们在/etc/vsftpd/chroot_list添加一个系统用户test2,那么这个系统用户登入ftp服务器,则可以访问根目录,也可以访问其他目录

    黑名单与白名单

    /etc/vsftpd/ftpusers和 /etc/vsftpd/user_list默认情况下都是黑名单,但是/etc/vsftpd/user_list可以通过配置文件修改成白名单

    在/etc/vsftpd/vsftpd.conf配置文件中

    userlist_enable=YES  #在这句下面添加以下两句,将user_list反转成白名单
    userlist_deny=NO            
    userlist_file=/etc/vsftpd/user_list

    注意黑名单的权限比白名单大,即同时存在与黑名单和白名单,依旧被禁用



    虚拟用户登入

    比较安全和常见的登入方式为虚拟用户登入,即只能登入ftp服务器

    1、添加一个虚拟用户口令文件

    vim /etc/vsftpd/vuser.txt

    在里面输入虚拟用户和密码

    vtest  #账户
    test   #密码
    vtest2 #账户
    test2  #密码

    2、生成认证文件

    db_load -T -t hash -f /etc/vsftpd/vuser.txt  /etc/vsftpd/vuser.db

    如果没有安装口令认证文件先安装

     yum -y install db4-utils

    3、编辑pam认证文件

    进入 /etc/pam.d/vsftpd,注释掉原来的内容,因为系统登入依赖这个文件
     在后面添加两行

    auth required  /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
    account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
    

     4、建立本地映射用户

    useradd -d /home/vftproot -s /sbin/nologin vuser
    chmod 755 /home/vftproot

    5、修改配置文件

    在/etc/vsftpd/vsftpd.conf下面添加

    guest_enable=YES
    guest_username=vuser
    user_config_dir=/etc/vsftpd/vuser_conf

    然后重启服务,就可以进行虚拟用户登入,记得删除原来的vuser.txt文件

    虚拟用户进行目录分配

    mkdir /etc/vsftpd/vuser_conf

    在这个目录下创建文件,文件名为虚拟用户名,在里面指定权限和目录,没有设置的虚拟用户则根据主配置文件

     vim /etc/vsftpd/vuser_conf/vtest2 
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    local_root=/tmp/vtest2
    mkdir /tmp/vtest2
    chown vuser vtest2/

    并在配置文件中添加

    allow_writeable_chroot=YES

    重启服务,再次登入,可以正常使用

     

  • 相关阅读:
    [模板] 文艺平衡树
    [模板]平衡树splay
    [ZJOI2015]诸神眷顾的幻想乡
    [HAOI2016]找相同字符
    SP8093 JZPGYZ
    SP1812 LCS2
    SP1811 LCS
    AHOI2013 差异
    TJOI2015 弦论
    工艺(SAM)
  • 原文地址:https://www.cnblogs.com/gaonuoqi/p/11987781.html
Copyright © 2020-2023  润新知