zoukankan      html  css  js  c++  java
  • CentOS 7 配置ftp服务器

    1:允许匿名用户模式

      [root@www ~]# yum install -y vsftpd

      [root@www ~]# yum install -y ftp

      [root@www ~]# vim /etc/vsftpd/vsftpd.conf(在开始位置添加以下内容)
        anonymous_enable=YES  (允许或者禁止匿名用户访问模式)
        anon_umask=022  (匿名用户上传文件的umask值)
        anon_upload_enable=YES
        anon_mkdir_write_enable=YES
        anon_other_write_enable=YES
      [root@www ~]# ls -ld /var/ftp/pub
      drwxr-xr-x. 3 root root 16 Jul 13 14:38 /var/ftp/pub

      [root@www ~]# chown -Rf ftp /var/ftp/pub

      [root@www ~]# getsebool -a | grep ftp
      ftp_home_dir --> off
      ftpd_anon_write --> off
      ftpd_connect_all_unreserved --> off
      ftpd_connect_db --> off
      ftpd_full_access --> off
      ftpd_use_cifs --> off
      ftpd_use_fusefs --> off
      ftpd_use_nfs --> off
      ftpd_use_passive_mode --> off
      httpd_can_connect_ftp --> off
      httpd_enable_ftp_server --> off
      sftpd_anon_write --> off
      sftpd_enable_homedirs --> off
      sftpd_full_access --> off
      sftpd_write_ssh_home --> off
      tftp_anon_write --> off
      tftp_home_dir --> off
      [root@www ~]# setsebool -P ftpd_full_access=on

      [root@www ~]# systemctl start vsftpd

      [root@www ~]# systemctl enable vsftpd

      完成!

    2:允许本地用户登陆(除root用户,如果想允许root用户需删除/etc/vsftpd/user_list 和 /etc/vsftpd/ftpusers)

      [root@linuxprobe ~]# vim /etc/vsftpd/vsftpd.conf:
      anonymous_enable=NO
      local_enable=YES
      write_enable=YES
      local_umask=022
      dirmessage_enable=YES
      xferlog_enable=YES
      connect_from_port_20=YES
      xferlog_std_format=YES
      listen=NO
      listen_ipv6=YES
      pam_service_name=vsftpd
      userlist_enable=YES
      tcp_wrappers=YES

      [root@linuxprobe ~]# getsebool -a | grep ftp
      ftp_home_dir --> off
      ftpd_anon_write --> off
      ftpd_connect_all_unreserved --> off
      ftpd_connect_db --> off
      ftpd_full_access --> off
      ftpd_use_cifs --> off
      ftpd_use_fusefs --> off
      ftpd_use_nfs --> off
      ftpd_use_passive_mode --> off
      httpd_can_connect_ftp --> off
      httpd_enable_ftp_server --> off
      sftpd_anon_write --> off
      sftpd_enable_homedirs --> off
      sftpd_full_access --> off
      sftpd_write_ssh_home --> off
      tftp_anon_write --> off
      tftp_home_dir --> off
      [root@linuxprobe ~]# setsebool -P ftpd_full_access=on

      [root@linuxprobe ~]# systemctl restart vsftpd
      [root@linuxprobe ~]# systemctl enable vsftpd

      完成!

    3:虚拟用户模式

      [root@linuxprobe ~]# cd /etc/vsftpd/
      [root@linuxprobe vsftpd]# vim vuser.list(创建虚拟账户名称密码文件,奇数行名称,偶数行密码)
      zhangsan
      redhat
      lisi
      redhat

      [root@linuxprobe vsftpd]# db_load -T -t hash -f vuser.list vuser.db(用哈希(hash)算法将原始的明文信息文件转换成数据库文件,并且降低数据库文件的权限,并删除源文件)
      [root@linuxprobe vsftpd]# file vuser.db
      vuser.db: Berkeley DB (Hash, version 9, native byte-order)
      [root@linuxprobe vsftpd]# chmod 600 vuser.db
      [root@linuxprobe vsftpd]# rm -f vuser.list

      [root@linuxprobe ~]# useradd -d /var/ftproot -s /sbin/nologin virtual(创建一个虚拟账户,账户名;virtual,账户家目录:var/ftproot,不允许登录服务器,并升高账户家目录权限)
      [root@linuxprobe ~]# ls -ld /var/ftproot/
      drwx------. 3 virtual virtual 74 Jul 14 17:50 /var/ftproot/
      [root@linuxprobe ~]# chmod -Rf 755 /var/ftproot/

      [root@linuxprobe ~]# vim /etc/pam.d/vsftpd.vu(新建一个用于虚拟用户认证的 PAM 文件 vsftpd.vu,其中 PAM 文件内的“db=”参数为使用 db_load 命令生成的账户密码数据库文件的路径,但不用写数据库文件的后缀)
      auth  required  pam_userdb.so db=/etc/vsftpd/vuser
      account  required  pam_userdb.so db=/etc/vsftpd/vuser

      [root@linuxprobe ~]# mkdir /etc/vsftpd/vusers_dir/(新建一个目录,在里面分别创建两个以 zhangsan 和 lisi 命名的文件文件中写入允许的相关权限(使用匿名用户的参数))
      [root@linuxprobe ~]# cd /etc/vsftpd/vusers_dir/
      [root@linuxprobe vusers_dir]# touch lisi
      [root@linuxprobe vusers_dir]# vim zhangsan
      anon_upload_enable=YES  (允许匿名用户上传文件)
      anon_mkdir_write_enable=YES  (允许匿名用户创建目录)
      anon_other_write_enable=YES  (允许匿名用户修改目录名称或删除目录)

      (在 vsftpd 服务程序的主配置文件中通过 pam_service_name 参数将 PAM 认证文件的名称修改为 vsftpd.vu,并通过添加 user_config_dir 参数来定义这两个虚拟用户不同权限的配置文件所存放的路径)

      [root@linuxprobe ~]# vim /etc/vsftpd/vsftpd.conf
      anonymous_enable=NO
      local_enable=YES
      guest_enable=YES
      guest_username=virtual
      allow_writeable_chroot=YES
      write_enable=YES
      local_umask=022
      dirmessage_enable=YES
      xferlog_enable=YES
      connect_from_port_20=YES
      xferlog_std_format=YES
      listen=NO
      listen_ipv6=YES
      pam_service_name=vsftpd.vu
      userlist_enable=YES
      tcp_wrappers=YES

      user_config_dir=/etc/vsftpd/vusers_dir

      [root@linuxprobe ~]# getsebool -a | grep ftp
      ftp_home_dir –> off
      ftpd_anon_write –> off
      ftpd_connect_all_unreserved –> off
      ftpd_connect_db –> off
      ftpd_full_access –> off
      ftpd_use_cifs –> off
      ftpd_use_fusefs –> off
      ftpd_use_nfs –> off
      ftpd_use_passive_mode –> off
      httpd_can_connect_ftp –> off
      httpd_enable_ftp_server –> off
      sftpd_anon_write –> off
      sftpd_enable_homedirs –> off
      sftpd_full_access –> off
      sftpd_write_ssh_home –> off
      tftp_anon_write –> off
      tftp_home_dir –> off
      [root@linuxprobe ~]# setsebool -P ftpd_full_access=on  

      [root@linuxprobe ~]# systemctl restart vsftpd
      [root@linuxprobe ~]# systemctl enable vsftpd

       测试,完成!

  • 相关阅读:
    C# 与Sql server 获取数据和执行命令
    关于*.ashx 处理程序调试时 未能创建类型 错误
    winform 利用Http向服务器上传与下载文件
    CSS 使用absolute 是<div>居中
    C# int[,] 和 int[][]
    《Head First JavaScript》 学习笔记
    【单片机】关于头文件
    【单片机】【710】定时器
    【C#】委托
    【C#】关于接口的理解
  • 原文地址:https://www.cnblogs.com/languang9801/p/11095249.html
Copyright © 2011-2022 走看看