zoukankan      html  css  js  c++  java
  • linux系统下FTP服务器的安装和配置

    FTP是File Transfer Protocol(文件传输协议),就是专门用来传输文件的协议。简单地说,支持FTP协议的服务器就是FTP服务器。

    PORT模式:

      首先客户端开启一个非特权端口N(大于1023)与服务端21端口建立控制连接,再开启一个非特权端口N+1并监控此端口,客户端通过命令连接发送PORT命令,命令中包含客户端监听的数据连接端口N+1,服务端收到PORT命令后,会用数据端口20连接客户端N+1端口。

      主动模式下,客户端监听的数据端口是随机端口,如果客户端建立了网络防火墙,server端的数据连接请求就会被屏蔽掉。

    PASV模式

      被动模式下,客户端开启非特权端口N(大于1023)与服务器端21建立控制连接,再开启一个非特权端口N+1并监控此端口,客户端通过控制连接发送PAVS命令,服务器端收到给予响应,并打开一个数据端口(大于1023),客户端使用N+1端口与服务器的数据端口建立连接,服务器给予数据连接响应。

    安装ftp

      #rpm -qa vsftpd                    //查看是否已经安装

      #yum install vsftpd -y            //安装

      #service vsftpd start             //开启服务

      #ftp 192.168.254.5(ip地址)   //登录

    响应码

      也可以说是反馈码,每次进行操作都会反馈回一个数字开头的状态码。以下是各类代码信息:

      1xx:信息

      2xx:成功类代码

      3xx:提示需要进一步操作类代码

      4xx:客户端错误

      5xx:服务端错误

    配置ftp

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

      连接数限制:

      max_clients=#                                    //FTP服务器最大接入客户端数

      max_per_ip=#                                    //每个ip最大连接数

      传输速率限制:

      anno_max_rate=#                              //匿名用户最大传输速率

     1、匿名用户:

      用户名:ftp;密码为空;登录目录:/var/ftp。

      anonymous_enable=YES                        //是否启用匿名用户

      anon_upload_enable=YES                     //上传

      anon_mkdir_write_enable=YES              //创建目录

      anon_other_write_enable=YES              //删除

      限制系统用户锁定在家目录:

     2、系统用户:

      用户名:本地用户;密码:用户密码;登录目录:用户家目录。

      local_enable=YES  //本地用户登录

      write_enable=YES  //上传、创建、删除

      chroot_local_user=YES  //限制所有

      chroot_list_enable=YES  //限制写入chroot_list文件中的用户

      chroot_list_file=/etc/vsftpd/chroot_list  //将需要限制用户写入此文件

      /etc/vsftpd/ftpusers  //文件中的系统用户将被禁止登录

     3、虚拟用户

      在/etc/vsftpd/下创建文本,奇数行为用户名,偶数行为密码;所有虚拟用户目录为一个系统家目录。

      ⑴、创建用户密码文本

        #vim /etc/vsftpd/vsftpd_list

        user1

        redhat1

        user2

        redhat2

      ⑵、生成虚拟用户认证db文件

        #db_load -T -t hash -f /etc/vsftpd/vsftpd_list /etc/vsftpd/vsftpd_list.db

      ⑶、编辑PAM文件

        方法一、vi /etc/pam.d/vsftpd 内容全部注释掉,增加以下两句

            auth required /lib(64)/security/pam_userdb.so db=/etc/vsftpd/vsftpd_list

            account required /lib(64)/security/pam_userdb.so db=/etc/vsftpd/vsftpd_list

        方法二、在/etc/pam.d/下创建新文件vsftpdauth(可自定义),将以上两句写入,然后编辑配置文件vsftpd.conf.

            pam_service_name=vsftpdauth              //改为你创建的文件名

      ⑷、创建一个系统用户,所有虚拟用户都被映射成此系统用户

        #useradd -d /home/vftp -s /sbin/nologin virtual    //用户名为virtual

        #chmod 700 /home/vftp                                    //设置权限

      ⑸、在配置文件中启用虚拟用户,增加以下参数:

        guest_enable=YES                    //启用虚拟用户

        guest_username=virtual            //虚拟用户

      ⑹、重启FTP服务并测试虚拟用户登录

        #service vsftpd restart

        #ftp 192.168.254.5

      ⑺、对不同虚拟用户设置不同权限

        ① 设置配置文件vsftpd.conf.

          添加用户配置文件目录设置:user_config_dir=/etc/vsftpd/vsftp_user_conf

        ② 创建用户配置文件目录

          #mkdir /etc/vsftpd/vsftp_user_conf

        ③ 以用户名创建相应用户的配置文件

          #touch /etc/vsftpd/vsftp_user_conf/user1

        ④ 编辑用户配置文件设置权限

          #vim /etc/vsftpd/vsftp_user_conf/user1

          local_root=/home/vftp/user1

          anon_world_readable_only=NO   //表示用户可以浏览FTP目录和下载文件

          anon_upload_enable=YES          //表示用户可以上传文件

          anon_mkdir_write_enable=YES   //表示用户有创建目录的权限

          anon_other_write_enable=YES   //表示用户具有文件改名和删除文件的权限

      虚拟用户配置已完成

  • 相关阅读:
    2020年12月15日Java学习日记
    2020年12月12日Java学习日记
    2020年12月10日Java学习日记
    2020年12月8日Java学习日记
    2020年12月4日Java学习日记
    2020年12月1日Java学习日记
    2020年11月30日Java学习日记
    2020年11月27日Java学习日记
    2020年11月26日Java学习日记
    B. Navigation System【CF 1320】
  • 原文地址:https://www.cnblogs.com/houyongchong/p/7874692.html
Copyright © 2011-2022 走看看