暗能星系

    • 登录
    • 搜索

    FTP 服务器

    刘茜
    1
    6
    20
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • I
      ice-melt 最后由 ice-melt 编辑

      Ubuntu 创建FTP 服务器

      安装

      # 使用root用户
      su root  # 没有root用户,更新密码就好:su passwd
      apt-get install vsftpd
      

      卸载

      # --purge 选项表示彻底删除改软件和相关文件
      sudo apt-get remove --purge vsftpd
      

      配置

      默认配置文件路径 /etc/vsftpd.conf

      # 几个常用配置修改
      
      # 禁止匿名用户登录
      anonymous_enable=NO
      # 允许系统用户登录
      local_enable=YES
      # 启用可以修改文件的 FTP 命令
      write_enable=YES
      # 本地用户创建文件的 umask 值
      local_umask=022
      # 允许为目录配置显示信息,显示每个目录下面的message_file文件的内容
      dirmessage_enable=YES
      # 开启日记功能 
      xferlog_enable=YES
      # 使用标准的20端口来连接ftp 
      connect_from_port_20=YES
      # 使用标准日志格式 
      xferlog_std_format=YES
      # 如果启动这项功能,则所有列在chroot_list_file之中的使用者不能更改根目录
      chroot_list_enable=YES
      # 指定限制的用户文件
      chroot_list_file=/etc/vsftpd/chroot_list
      # ftp服务器将处于独立启动模式
      listen=YES
      # 设置一个本地用户登录后进入到的目录
      local_root=/home/ftp
      # 设置PAM认证服务的配置文件名称,该文件保存在“/etc/pam.d/”目录下
      pam_service_name=vsftpd
      # ftp将检查userlist_file设置文件中指定的用户是否可以访问vsftpd服务器
      userlist_enable=YES
      # 只允许user_list文件中记录的ftp用户能登录vsftp服务,其他的ftp用户都不可以登录。
      userlist_deny=NO
      # 定义限制/允许用户登录的文件
      userlist_file=/etc/vsftpd/allowed_users  
      # ftp服务器将使用tcp_wrappers作为主机访问控制模式
      tcp_wrappers=YES
      # 连接ftp服务费使用的端口
      listen_port=21
      
      I 4 条回复 最后回复 回复 引用 0
      • I
        ice-melt @ice-melt 最后由 ice-melt 编辑

        @ice-melt

        ftp 常用命令整理

        # 启动 重启 停止 查看状态
        service vsftpd [start|restart|stop|status]
        
        # 查看端口
        netstat -tnl 
        
        # ---------------------------
        systemctl list-unit-files |grep vsftpd.service
        #发现vsftpd.service服务果然是关闭的如下:
        #     vsftpd.service               disabled
        # 需要添加软链或者运行如下命令
        systemctl enable vsftpd.service
        # 启动该服务
        systemctl start vsftp.service
        
        

        验证 ftp 服务器

        ifconfig
        ftp 192.168.1.3
        Connected to 192.168.1.3.
        220 (vsFTPd 3.0.3)
        Name (192.168.1.3:lx): 
        331 Please specify the password.
        
        
        1 条回复 最后回复 回复 引用 0
        • I
          ice-melt @ice-melt 最后由 ice-melt 编辑

          @ice-melt

          匿名访问的用户的目录设置

          • ftp 默认匿名用户默认目录:/srv/ftp
          • 修改 /etc/passwd文件,将 /srv/ftp 修改为 /ceph_disk10/ftp

          注意,考虑到安全问题,ftp匿名用户的主目录必须为只读,如果需要上传文件,需要在主目录下新建有写权限的文件夹(pub)。

          当使用匿名用户访问时,vsftpd会将用户名为ftp的用户作为登录用户,进入ftp用户的主目录。

          # ftp 用户不存在
          sudo mkdir /ceph_disk10/ftp  # 新建用户文件夹
          sudo useradd -d /ceph_disk10/ftp ftp  # 新建用户,并指定用户home目录 
          
          # 如果ftp用户已经存在,
          vim /etc/passwd
          # 修改ftp 的目录为 /ceph_disk10/ftp
          
          sudo mkdir /ceph_disk10/ftp/pub  # 新建一个用于写数据的文件夹
          sudo chmod 777 /var/ftp/pub   # 修改文件夹权限
          

          配置相关修改

          # ****** 原配置 ******
          anonymous_enable=NO
          local_enable=YES
          
          # ****** 修改或变更的配置 ******
          # 允许匿名访问
          anonymous_enable=YES 
          no_anon_password=YES
          # 禁止本地用户登录
          local_enable=NO
          # 允许写文件 
          write_enable=YES
          # 允许匿名用户上传文件
          anon_upload_enable=YES
          # 允许匿名用户创建目录和写权限
          anon_mkdir_write_enable=YES
          
          
          anon_other_write_enable=YES  # 允许匿名用户删除、重命名等其它权限  这个在配置文件里默认找不到
          
          I 1 条回复 最后回复 回复 引用 0
          • I
            ice-melt @ice-melt 最后由 编辑

            @ice-melt

            FTP 启动 异常

            Process: 37066 ExecStart=/usr/sbin/vsftpd /etc/vsftpd.conf (code=exited, status=2)

            # 主要原因:ipV4和ipV6不能同时被监听,这边需要去掉一个监听设置,常规情况下只要去掉ipV6得就可以了。
            listen=YES
            # listen_ipv6=YES
            
            1 条回复 最后回复 回复 引用 0
            • I
              ice-melt @ice-melt 最后由 编辑

              @ice-melt

              用户访问目录的权限设置

              在默认配置下,本地用户登入FTP后可以使用cd命令切换到其他目录,这样会对系统带来安全隐患。可以通过以下三条配置文件来控制用户切换目录。

              chroot_local_user=YES      # 用于指定用户列表文件中的用户是否允许切换到上级目录。默认值为NO。  
              chroot_list_enable=YES  # 设置是否启用chroot_list_file配置项指定的用户列表文件。默认值为NO。  
              chroot_list_file=/etc/vsftpd.chroot_list      
              #禁用的列表名单,格式为一行一个用户,用于指定用户列表文件,
              #该文件用于控制哪些用户可以切换到用户家目录的上级目录。
              

              通过搭配能实现以下几种效果:

              • (1).当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd.chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。
              • (2).当chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd.chroot_list文件中列出的用户,不能切换到其他目录;未在文件中列出的用户,可以切换到其他目录。
              • (3).当chroot_list_enable=NO,chroot_local_user=YES时,所有的用户均不能切换到其他目录。
              • (4).当chroot_list_enable=NO,chroot_local_user=NO时,所有的用户均可以切换到其他目录。
              1 条回复 最后回复 回复 引用 0
              • I
                ice-melt @ice-melt 最后由 编辑

                @ice-melt

                FTP增加删除用户

                增加用户

                
                mkdir -p /home/test   
                sudo useradd -g ftp -d /home/test -m test  
                # (注:g:用户所在的组 
                # d:表示创建用户的自己目录的位置给予指定 
                # m:不建立默认的自家目录,也就是说在/home下没有自己的目录)
                
                # 给用户添加口令
                sudo passwd test 
                # 123456
                
                
                • 编辑/etc/vsftpd.chroot_list文件,将ftp的帐户名添加进去,保存退出
                • 修改用户权限文件vsftpf.chroot_list文件后一定要重启服务才能生效

                删除用户

                sudo userdel test  
                
                1 条回复 最后回复 回复 引用 0
                • First post
                  Last post
                Powered by 暗能星系