FTP 是File Transfer Protocol (文件传输协议,简称文传协议)的英文简称,用于在Internet上控制文件的双向传输。
FTP的主要做用就是让用户链接一个远程计算机(这些计算上运行着FTP服务器程序),并查看远程计算机中的文件,而后把文件从远程计算机复制到本地计算机,或把本地计算机的文件传送到远程计算机。
小公司用的多,大企业不用FTP ,由于不安全。linux
[root@zlinux ~]# yum install -y vsftpd
vsftpd可使用系统级别的用户进行登陆,可是这样作不安全,因此须要使用vsftpd建立一个虚拟用户。在此建立一个系统普通用户的做用是使vsftpd的虚拟用户来进行映射,而后完成数据的传输。shell
[root@zlinux ~]# useradd virftp -s /sbin/nologin [root@zlinux ~]# vim /etc/vsftpd/vsftpd_login //创建与虚拟帐户相关的文件,并添加如下内容 test1 123456 test2 abcdef #奇数行为用户名,偶数行为用户密码。 [root@zlinux ~]# chmod 600 /etc/vsftpd/vsftpd_login //更改权限,提高安全性 [root@zlinux ~]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db //vsftpd密码文件不是明文的,须要生成对应的库文件 [root@zlinux ~]# ls -l /etc/vsftpd/ //查看是否生成了.db文件 总用量 36 -rw-------. 1 root root 125 8月 3 2017 ftpusers -rw-------. 1 root root 361 8月 3 2017 user_list -rw-------. 1 root root 5030 8月 3 2017 vsftpd.conf -rwxr--r--. 1 root root 338 8月 3 2017 vsftpd_conf_migrate.sh -rw-------. 1 root root 26 3月 27 18:15 vsftpd_login -rw-r--r--. 1 root root 12288 3月 27 18:18 vsftpd_login.db [root@zlinux ~]# mkdir /etc/vsftpd/vsftpd_user_conf //建立与虚拟账号相关的目录
[root@zlinux ~]# cd /etc/vsftpd/vsftpd_user_conf/ [root@zlinux vsftpd_user_conf]# vim test1 //添加以下内容 local_root=/home/virftp/test1 anonymous_enable=NO write_enable=YES local_umask=022 anon_upload_enable=No anon_mkdir_write_enable=NO idle_session_timeout=600 data_connection_timeout=120 max_clients=10
参数含义:数据库
local_root :定义虚拟用户的家目录
anonymous_enable :是否容许匿名用户
write_enable:是否容许可写
local_umask:定义建立新的文件和目录权限
anon_upload_enable:是否容许匿名用户可上传
anon_mkdir_write_enable:是否容许匿名用户可建立目录、可写
idle_session_timeout:设置链接空闲时间超时(上传或下载文件后,空闲时间,定义多少时间断开链接。单位s)
data_connection_timeout:数据传输的超时时间(单位:s)
max_clients:定义最大的客户端数vim
[root@zlinux ~]# mkdir /home/virftp/test1 [root@zlinux ~]# touch /home/virftp/test1/zlinux.txt [root@zlinux ~]# chown -R virftp:virftp /home/virftp/ [root@zlinux ~]# vim /etc/pam.d/vsftpd //添加两行如下,定义虚拟用户的密码文件位置 #两行内容要加在#%PAM这行下面,不然后面会出错 auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
[root@zlinux ~]# vim /etc/vsftpd/vsftpd.conf //修改 #改为如下内容 anonymous_enable=NO anon_upload_enable=NO 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 #定义虚拟用户配置文件所在的路径
[root@zlinux ~]# systemctl start vsftpd //启动vsftpd服务 [root@zlinux ~]# ps aux |grep vsftpd root 2448 0.0 0.0 53216 572 ? Ss 18:44 0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf root 2450 0.0 0.0 112680 976 pts/0 R+ 18:44 0:00 grep --color=auto vsftpd [root@zlinux ~]# netstat -lntp |grep vsftp tcp6 0 0 :::21 :::* LISTEN 2448/vsftpd [root@zlinux ~]# yum install -y lftp //安装lftp客户端软件 [root@zlinux ~]# lftp test1@127.0.0.1 口令: lftp test1@127.0.0.1:~> ls -rw-r--r-- 1 1002 1002 0 Mar 27 10:30 zlinux.txt
这一步不少人会出错,请检查/var/log/secure
日志,一般会记录一些错误信息。安全
下载xftp软件
安装xftp软件
刚开始运行,关闭掉xftp软件。
须要先登陆xshell 5。
打开 Ctrl + Alt + F 组合键,自动关联xftp软件。服务器
使用pure-ftpd搭建ftp,比较轻量、简单。session
[root@zlinux ~]# yum install -y pure-ftpd [root@zlinux ~]# vim /etc/pure-ftpd/pure-ftpd.conf #找到这行,删除前面#号 # PureDB /etc/pure-ftpd/pureftpd.pdb [root@zlinux ~]# systemctl stop vsftpd //中止vsftpd服务 [root@zlinux ~]# systemctl start pure-ftpd //启动pure-ftpd服务 [root@zlinux ~]# ps aux | grep pure-ftpd root 2800 0.0 0.0 202424 1200 ? Ss 19:19 0:00 pure-ftpd (SERVER)
[root@zlinux ~]# mkdir /data/ftp/ //建立目录 [root@zlinux ~]# useradd -u 1010 pure-ftp //建立系统用户 [root@zlinux ~]# chown -R pure-ftp:pure-ftp /data/ftp/ [root@zlinux ~]# pure-pw useradd ftp_usera -u pure-ftp -d /data/ftp/ //建立虚拟账号 Password: Enter it again: [root@zlinux ~]# pure-pw mkdb //建立用户信息数据库文件,关键步骤 [root@zlinux ~]# touch /data/ftp/zlinux.txt [root@zlinux ~]# lftp ftp_usera@localhost //测试 口令: lftp ftp_usera@localhost:~> ls drwxr-xr-x 2 1010 pure-ftp 24 Mar 27 19:27 . drwxr-xr-x 2 1010 pure-ftp 24 Mar 27 19:27 .. -rw-r--r-- 1 0 0 0 Mar 27 19:27 zlinux.txt