一、FTP介绍
FTP是File Transfer Protocol(文件传输协议,简称文传协议)的英文简称,用于在Internet上控制文件的双向传输。
FTP的主要作用就是让用户连接一个远程计算机(这些计算机上运行着FTP服务器程序),并查看远程计算机中的文件,然后把文件从远程计算机复制到本地计算机,或把本地计算机的文件传送到远程计算机。
小公司用的多,大企业不用FTP,因为不安全
二、使用vsftpd搭建ftp服务
centos上自带vsftpd
yum install -y vsftpd //yum安装命令
由于安全性问题,给ftp设置一个虚拟用户,映射成系统的普通用户
useradd -s /sbin/nologin virftp //创建用户
vim /etc/vsftpd/vsftpd_login //虚拟用户的密码文件,内容如下,奇数行为用户名,偶数行为密码,多个用户就写多行
testuser1
123456
chmod 600 /etc/vsftpd/vsftpd_login //更改文件权限
db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db //将文本文件转换为计算机识别的二进制文件
mkdir /etc/vsftpd/vsftpd_user_conf //创建虚拟用户配置文件所在的目录
cd /etc/vsftpd/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 //空闲连接超时时间
data_connection_timeout=120 //数据超时时间
max_clients=10 //最大的客户端连接数
mkdir /home/virftp/testuser1 //创建虚拟用户家目录
touch /home/virftp/testuser1/abc.txt //创建文件
chown -R virftp:virftp /home/virftp //更改目录权限
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
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
systemctl start vsftpd //启动vsftpd服务
检查服务是否启动正常,及监听端口
服务已经搭建完成,此时可以测试
windows下安装filezilla客户端软件,进行测试
此处为了方便测试,安装了linux系统上的ftp软件
yum install -y lftp //安装ftp软件
lftp [email protected] //登录用户
支持的命令
保存的文件在当前目录下
若不正常查看日志/var/log/messages和/var/log/secure
xshell实现与ftp同样的功能
输入用户名和密码,连接成功
get文件后保存的路径
可以使用xftp,首次使用xftp按住ctrl+alt+f,会提示下载安装,安装完毕输入密码即可,此时可以互相传输文件
三、使用pure-ftpd搭建ftp服务
pure-ftpd 比vftpd更加的轻量,更加简单
安装命令: yum install -y pure-ftpd
安装软件之前必须安装 epel-release 扩展源:yum install -y epel-release
修改配置文件,指定密码文件
vim /etc/pure-ftpd/pure-ftpd.conf //找到pureftpd.pdb这行,把行首的#删除
systemctl stop vsftpd //停止之前开启的ftp服务
systemctl start pure-ftpd //开启pure-ftpd服务
mkdir /data/ftp //创建测试目录
useradd -u 1020 pure-ftp //创建用户
chown -R pure-ftp:pure-ftp /data/ftp //更改目录文件的属主和属组
pure-pw useradd ftp_usera -u pure-ftp -d /data/ftp //创建用户
pure-pw mkdb //把密码生成系统所识别的文件
pure-pw list //把所有的用户都列出来
测试
touch /data/ftp/123.txt //创建测试文件
lftp [email protected] //登录
更改文件的属主和属组