FTP介绍
当使用跳板机连接时,rz工具就不好使用,此时FTP可以解决该问题。
FTP(file transfer protocol)文件传输协议,用于在Internet上控制文件的双向传输。FTP主要作用是让用户连接一个远程计算机(这些计算机上运行着FTP服务器程序)查看远程计算机有哪些文件,然后把文件从远程计算机上拷贝到本地计算机,或把本地文件传送到远程计算机。
该服务在小公司用的比较多,由于FTP服务的安全性较差,所以大公司不使用该服务。
使用vsftpd搭建ftp
安装vsftpd工具
centos中默认自带vsftpd安装包。
[root@shuai-01 ~]# yum install -y vsftpd
创建用户:
[root@shuai-01 ~]# useradd -s /sbin/nologin virftp
//-s 指定shell 不能登录
vsftpd可以使用系统级别的用户进行登录,但是这样做不安全,所以需要使用vsftpd创建一个虚拟用户。在此创建一个系统普通用户的作用是使vsftpd的虚拟用户来进行映射,然后完成数据的传输。
编辑密码文件
[root@shuai-01 ~]# vim /etc/vsftpd/vsftpd_login
testuser1
shuai
user1
111111
奇数行为用户名,偶数行为密码,多个用户就写多行
这里,1,3行尾用户名 2 ,4行为密码
设置密码文件权限
[root@localhost ~]# chmod 600 /etc/vsftpd/vsftpd_login
将密码文本文件转化成二进制文件
[root@localhost ~]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
创建虚拟用户目录和虚拟用户配置文件
[root@localhost ~]# mkdir /etc/vsftpd/vsftpd_user_conf
[root@localhost ~]# cd /etc/vsftpd/vsftpd_user_conf
定义虚拟用户配置文件时,文件名需要和密码文件定义的用户名保持一致,我这里定义的为testuser1
[root@localhost vsftpd_user_conf]# vim testuser1
配置如下:
local_root=/home/virftp/testuser1 #虚拟用户家目录
anonymous_enable=NO #是否允许匿名用户
write_enable=YES #是否可写
local_umask=022
anon_upload_enable=NO #是否允许匿名用户上传
anon_mkdir_write_enable=NO #是否允许匿名用户创建目录并且可写
idle_session_timeout=600 #链接ftp超时时间
data_connection_timeout=120 #数据传输的超时时间
max_clients=10 #最大的客户端
在此保持虚拟用户配置文件和虚拟用户名称一致。
创建虚拟用户家目录
[root@shuai-01 vsftpd_user_conf]# mkdir /home/virftp/testuser1
家用户目录下,创建一个文件
[root@localhost vsftpd_user_conf]# touch /home/virftp/testuser1/test.txt
改一下全限
[root@localhost vsftpd_user_conf]# chown -R virftp:virftp /home/virftp
定义密码文件路径
[root@shuai-01 vsftpd_user_conf]# 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
编辑vsftpd主配置文件
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
将anonymous_enable=YES 改为 anonymous_enable=NO
将#anon_upload_enable=YES 改为 anon_upload_enable=NO
将#anon_mkdir_write_enable=YES 改为 anon_mkdir_write_enable=NO
再增加如下内容
chroot_local_user=YES
guest_enable=YES #开启虚拟用户
guest_username=virftp #映射系统用户
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vsftpd_user_conf
allow_writeable_chroot=YES
[root@localhost ~]# systemctl start vsftpd
客户端测试
如果在Windows系统进行测试,可以在Windows安装filezilla软件。在Linux中测试,安装lftp工具。
filezilla工具 lftp工具
# yum install -y lftp
用法:
[root@localhost ~]# lftp ggg@127.0.0.1
口令:
#登录
lftp testuser1@127.0.0.1:~> ls
drwxr-xr-x 2 1002 1002 22 Aug 24 10:19 testuser1
lftp testuser1@127.0.0.1:/> ?
#查询在lftp中可执行的命令
#常用命令:put、get
lftp testuser1@127.0.0.1:/> get testuser1/adai.txt
lftp testuser1@127.0.0.1:/> quit
xshell使用xftp传输文件
下载Xshell的Xftp插件:
快捷键:Ctrl + Alt + F
进邮箱里,点击链接
就可以下载Xftp5.exe这个包
在Xshell登录状态,快捷键:Ctrl + Alt + F 弹出XFtp
默认状态:左边是Windows系统桌面,右边centos系统用户夹目录
这两个系统,可以互传文件!!
使用pure-ftpd搭建ftp服务
安装epel-release和pure-ftpd:
[root@centos7 ~]# yum install -y pure-ftpd
编辑pure-ftpd.conf配置文件:
vim /etc/pure-ftpd/pure-ftpd.conf
找到pureftpd.pdb这行,把行首的#删除
关闭vsftpd服务(下面打开pure-ftpd服务 也需要占用21端口):
[root@centos7 ~]# systemctl stop vsftpd
[root@centos7 ~]# systemctl start pure-ftpd
查看pure-ftpd服务端口号:
[root@centos7 ~]# netstat -nutlp| grep 21
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 15034/pure-ftpd (SE
tcp6 0 0 :::21 :::* LISTEN 15034/pure-ftpd (SE
创建一个测试目录ftp:
[root@centos7 ~]# mkdir /data/ftp
创建一个普通用户,-u指定uid:
[root@centos7 ~]# useradd -u 1010 pure-ftp
把测试目录ftp,属主属组改为pure-ftp:
[root@centos7 ~]# chown -R pure-ftp:pure-ftp /data/ftp
创建虚拟用户,指定映射的系统用户,指定虚拟用户夹目录:
[root@centos7 ~]# pure-pw useradd ftp_usera -u pure-ftp -d /data/ftp
Password:
Enter it again:
[root@centos7 ~]# pure-pw mkdb #必须执行这步,建立数据
[root@centos7 ~]# touch /data/ftp/123.txt