1:先检查linux下是否安装了vsftpd

 

2:安装了的话就删除原来的

      yum remove vsftpd

 

3::再到yum库中安装

  yum -y install vsftpd

 

4:在根目录下创建一个文件夹。这是文件上传保存的路径

  mkdir /ftpfile 

       或者

       cd  /

       mkdir ftpfile

5:为上传添加一个用户 ,以i后上传都用这个用户

      useradd ftpuser -d /ftpfile/ -s /sbin/nologin

     这里意思是添加一个叫做 ftpuser的用户,这个用户一登陆就进入  /ftpfile文件夹,这个用户不允许shell等登录方法,但是可以登录ftp服务器

     关于更多的useradd 命令可以参见

    http://man.linuxde.net/useradd

    和

   http://blog.csdn.net/danson_yang/article/details/65629948

6:把新建的ftpfile文件夹 分配给 ftpuser

    chown -R ftpuser.ftpuser /ftpfile/

    更多的关于 chown 命令 参见  http://man.linuxde.net/chown

 

7:给ftpuser 设置密码

  passwd ftpuser   

  我设置为:(123456)

 

8:去ftpfile  下创建一份文件 以后测试用

  vim /ftpfile/index.html

       随便往文件中写点什么 然后保存退出

 

9:去ftpfile的配置文件下修改一些配置

  9.1 先找到配置文件在什么地方

      whereis vsftpd

 

  9.2 修改配置文件 

      cd /etc/vsftpd

      vim vsftpd.conf

 

   9.3 首先找banner节点

        /banner

       可以把 #ftpd_banner=Welcome to blah FTP service.

       的这一行注释取消  再改成 Welcome to 【自己的站点的名字】FTP service.  这里的意思 进入ftp服务器  的欢迎语句

 

   9.4 在banner 节点下继续添加如下2个配置

        1)local_root=/ftpfile(当本地用户登入时,将被更换到定义的目录下,默认值为各用户的家目录)
      2)anon_root=/ftpfile(使用匿名登入时,所登入的目录)

 

  9.5 继续寻找 chroot_list 节点

     打开  #chroot_list_enable=YES------》chroot_list_enable=YES

     打开  chroot_list_file=/etc/vsftpd/chroot_list

 

   9.6 再回到banner 节点下去添加配置

      use_localtime=YES(默认是GMT时间,改成使用本机系统时间)

   9.7 暂时退出插入模式(ctrl+o) 寻找anonymous 节点

      把 anonymous_enable=YES 改成 anonymous_enable=NO(不允许匿名用户登录)

   9.8 修改 或者 创建 /etc/vsftpd/chroot_list 文件 

         这个文件记录的是可以远程使用ftpserver的用户的集合

        把新建的ftpuser 写入其中

  9.9 :为了让刚才的配置生效 重新启动vsftpd

      service vsftpd restart  

  9.10 确保 local_enable=YES(允许本地用户登录)

 9.11 确保 write_enable=YES(本地用户可以在自己家目录中进行读写操作)

 9.12 确保local_umask=022(本地用户新增档案时的umask值)

9.13 确保 dirmessage_enable=YES(如果启动这个选项,那么使用者第一次进入一个目录时,会检查该目录下是否有.message这个档案,如果有,则会出现此档案的内容,通常这个档案会放置欢迎话语,或是对该目录的说明。默认值为开启)

 9.14 确保 xferlog_enable=YES(是否启用上传/下载日志记录。如果启用,则上传与下载的信息将被完整纪录在xferlog_file 所定义的档案中。预设为开启。)

  9.15 确保 connect_from_port_20=YES(指定FTP使用20端口进行数据传输,默认值为YES)

 9.16  确保  xferlog_std_format=YES(如果启用,则日志文件将会写成xferlog的标准格式)

9,17 确保 chroot_list_enable=YES(设置是否启用chroot_list_file配置项指定的用户列表文件)

9.18 确保 chroot_local_user=NO(用于指定用户列表文件中的用户是否允许切换到上级目录) 获得 被注释

9.19 确保 listen=YES 和 pam_service_name=vsftpd

9.20:确保 tcp_wrappers=YES

9.21 在 pam_service_name=vsftpd之下添加如下配置

    pasv_min_port=61001(被动模式使用端口范围最小值)

    pasv_max_port=62000(被动模式使用端口范围最大值)
    pasv_enable=YES(pasv_enable=YES/NO(YES)
若设置为YES,则使用PASV工作模式;若设置为NO,则使用PORT模式。默认值为YES,即使用PASV工作模式。
   FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。
   一、PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。
  当需要传送数据时,客户端在命令链路上用 PORT命令告诉服务器:“我打开了****端口,你过来连接我”。于是服务器从20端口向客户端的****端口发送连接请求,建立一条数据链路来传送数据。
   二、PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。
  当需要传送数据时,服务器在命令链路上用 PASV命令告诉客户端:“我打开了****端口,你过来连接我”。于是客户端向服务器的****端口发送连接请求,建立一条数据链路来传送数据。
  从上面可以看出,两种方式的命令链路连接方法是一样的,而数据链路的建立方法就完全不同。而FTP的复杂性就在于此。

 

10:编辑防火墙 把vsftp的端口号 解放

    #vsftpd
-A INPUT -p tcp --dport 61001:62000 -j ACCEPT
-A OUTPUT -p tcp --sport 61001:62000 -j ACCEPT
-A INPUT -p tcp --dport 20 -j ACCEPT
-A OUTPUT -p tcp --dport 20 -j ACCEPT
-A INPUT -p tcp --dport 21 -j ACCEPT
-A OUTPUT -p tcp --dport 21 -j ACCEPT

 

11:让防火墙起作用 和 重启vsftpd

  service iptables restart

      service vsftpd restart

12:修改 /etc/selinux/conf

     把 SELINUX=enforcing 改成 SELINUX=disable

   这好像是为了确保远程用户 可以在服务器中创建文件夹

    马上起作用: setenforce 0

13 再重新启动 vsftpd

 14 test

    参照:http://www.gzidc.org/hostq/n685.html

 

posted on 2017-08-13 18:58  快枪  阅读(102)  评论(0编辑  收藏  举报