FTP介绍

blob.png

(rz和sz: 传文件

   rz:window-->linux

   sz:linux-->window  文件超过4GB则不管用


                      使用vsftpd搭建ftp服务


1.安装:yum install -y vsftpd

2.创建用户:

vsftpd默认支持是可以使用系统账号登录的,但是这样不安全,因为我们系统的用户是可以登录,然后去操作我们的操作系统的。所以使用虚拟账号体系,创建虚拟用户,虚拟用户是不能登陆到我们的系统的!!


创建一个普通用户,作用是作为虚拟用户的一个映射,能让其登录使用FTP

useradd -s /sbin/nologin virftp  (-s指定用户的shell,shell为/sbin/nologin这样这个用户不能登陆系统)

3.编辑虚拟用户的密码文件:(新文件)

 vim /etc/vsftpd/vsftpd_login //内容如下,奇数行为用户名,偶数行为密码,多个用户就写多行

blob.png

修改完做权限设置:

chmod 600 /etc/vsftpd/vsftpd_login


4.将文本的密码文件装换成二进制的密码文件(生成对应的库文件)

(db_load -T -t hash -f)

db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db

blob.png


5.创建虚拟用户的目录和配置文件:

(1)创建虚拟用户的目录

mkdir /etc/vsftpd/vsftpd_user_conf 


(2)进入到虚拟用户的目录:

cd /etc/vsftpd/vsftpd_user_conf


(3)创建虚拟用户的配置文件(文件名应该与我们设定的虚拟用户名一致)

blob.png

  vim testuser1   //配置文件testuser1加入如下内容

    local_root=/home/virftp/testuser1   //为虚拟用户testuser1的家目录(读取文件所在处)

    anonymous_enable=NO  //  是否允许匿名用户

    write_enable=YES    //是否可行

    local_umask=022    //umask的值

    anon_upload_enable=NO  //是否允许匿名用户上传文件

    anon_mkdir_write_enable=NO  //是否允许匿名用户可写、创建用户

    idle_session_timeout=600      //连接空闲超时时间,超时就重新登录

    data_connection_timeout=120 //传输文件超时时间

    max_clients=10    //最大客户端数

    
blob.png


6.创建虚拟用户testuser1的家目录:

 mkdir /home/virftp/testuser1


创建一个文件(测试可以看到)

 touch /home/virftp/testuser1/cansheng.txt


7.修改/home/virftp/的主和组:

chown -R virftp:virftp /home/virftp


8.修改认证的文件/etc/pam.d/vsftpd:

vim /etc/pam.d/vsftpd     添加下列内容

//在最前面加上

auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login   

account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

(密码文件,centos7为64位系统,所以库文件路径为/lib64/security/pam_userdb.so,32位系统为:/lib/security/pam_userdb.so 这个文件一定要存在且写对,不然虚拟用户登录ftp服务时会认证失败

blob.png


9.修改全局配置文件/etc/vsftpd/vsftpd.conf

blob.png

 再增加如下内容

chroot_local_user=YES

guest_enable=YES               //是否允许虚拟用户映射

guest_username=virftp                //这个就是虚拟用户映射到的系统用户virftp

virtual_use_local_privs=YES             //

user_config_dir=/etc/vsftpd/vsftpd_user_conf  //创建的虚拟用户的目录

allow_writeable_chroot=YES



10.启动服务:

 systemctl start vsftpd

blob.png


测试:

blob.png

(1)可以在window下安装一个客户端软件:filezilla client

 (2)在linux下测试,下载lftp :yum install -y lftp


使用lftp:

lftp testuser1@127.0.0.1  虚拟用户登录

blob.png


在用虚拟用户登录了一个ftp。

1.下载命令,get

get cansheng.txt (把虚拟用户下的文件cansheng.txt下载到服务器当前目录下)


blob.png


2.上传命令:put



window下测试,下载filezilla client,登录后也是进行拖拉就行。

blob.png


在xshell上实现同样的功能,上传、下载:

blob.png

链接后登录

blob.png


使用下载命令后,

get cansheng.txt

保存路径为在C:\Users\kenson\Documents\NetSarang\Xshell\Sessions\

xshell时的安装路径

blob.png



           xshell使用xftp传输文件

    下载一个xftp更实用:

http://www.netsarang.com/download/down_form.html?code=523 

下载安装完:在xshell中按 Ctrl+Alt+F,会出现以下xftp

blob.png


在这个软件中我们进行拖拉就可以上传和下载,相当简单。

(前提是使用xshell登录了机器,然后按 Ctrl+Alt+F




                            使用pure-ftpd搭建ftp服务

这个pure-ftpd比vsftpd更简单更轻量


blob.png


1.下载:

(1)先下载扩展源: yum install -y epel-release

(2)再下载pure-ftpd: yum install -y pure-ftpd


2.修改配置文件:

 vim /etc/pure-ftpd/pure-ftpd.conf//找到pureftpd.pdb这行,把行首的#删除

blob.png


3.开启服务:

 systemctl stop vsftpd    (先把vsftpd服务停止,因为pure-ftpd也是监听21端口,避免端口冲突

 systemctl start pure-ftpd  (开启pure-ftpd服务

blob.png




4.创建一个系统用户

 useradd -u 1010 pure-ftp (uid可自定)

5.创建测试目录

 mkdir /data/ftp


修改目录的属主和组:

 chown -R pure-ftp:pure-ftp /data/ftp



6.创建一个虚拟用户

pure-pw useradd ftp_usera -u pure-ftp  -d /data/ftp


blob.png

(同时设定用户密码)


pure-pw help  //查看pure-pw的用法


7. pure-pw mkdb  执行这个命令

(不执行是无法登录的)



测试:

在虚拟用户的家目录创建一个测试文件:

touch /data/ftp/123.txt

chown pure-ftp:pure-ftp /data/ftp/123.txt

blob.png


列出当前虚拟用户:pure-pw list

blob.png