FTP是File Transfer Protocol(文件传输协议,简称文传协议)
的英文简称,用于在Internet上控制文件的双向传输。
FTP的主要作用就是让用户连接一个远程计算机(这些计算机上
运行着FTP服务器程序),并查看远程计算机中的文件,然后把文
件从远程计算机复制到本地计算机,或把本地计算机的文件传送到
远程计算机。
一.使用vsftpd搭建FTP服务
1.安装vsftpd
yum install -y vsftpd db4-utils(db4-utils用来生成密码库文件)
2.建立账号
建立与虚拟账号相关联的系统账号,并建立相关文件,更改文件权限,提升安全级别
vsfptd使用的密码不是明文的,需要生成对应库文件,最后建立与虚拟账号相关的目录以及配置文件
3.创建和用户对应的配置文件
每一个用户都有自己地配置文件
vi 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
max_per_ip=5
local_max_rate=50000
local_root为test1账号家目录,anonymous_enable用来限制是否允许匿名账号登录(若为NO,表示不允许匿名账号登录),write_enable=YES表示可写,local_umask指定umask值,anon_upload_enable表示是否允许匿名账号上传文件,anon_mkdir_write_enable表示是否允许匿名账号可写。创建test1:
4.修改全局配置文件/etc/vsftpd/vsftpd.conf
vi /etc/vsftpd/vsftpd.conf //修改用户配置文件不可用,就修改vsftpd的全局配置文件
将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服务
(错误:Job for vsftpd.service failed because the control process exited with error code. See "systemctl status vsftpd.service" and "journalctl -xe" for details. 重打一遍看看前面编辑是否有错)
测试:ps aux |grep vsftp //查看进程是否存在
yum install lftp //安装lftp客户端软件
lftp test1@127.0.0.1(若不正常查看日志/var/log/messages和/var/log/secure)
二.安装配置pure-ftpd
1.安装pure-ftpd
yum install -y epel-release
yum install -y pure-ftpd
2.配置pure-ftpd
启动pure-ftpd前,先修改配置文件/etc/pure-ftpd/pure-ftpd.conf/
找到PureDB /etc/pure-ftpd/pureftpd.pdb 把行首的#删除
启动pure-ftpd。先关闭vsftpd,因为端口冲突
systemctl stop vsftpd
systemctl start pure-ftpd (启动失败查看/var/log/messages日志)
ps aux |grep pure-ftpd
3.建立账号
mkdir /data/ftp
useradd -u 1010 pure-ftp
chown -R pure-ftp:pure-ftp /data/ftp
pure-pw useradd ftp_usera -u pure-ftp -d /data/ftp //-u将虚拟用户ftp_user1与系统用户pure_ftp关联,-d后面的目录为ftp_user1|账户的家目录。ftp_user1只能访问家目录/data/ftp/
pure-pw mkdb //创建用户信息数据库文件
pure-pw useradd ftp_user2 -u pure-ftp -d /tmp
pure-pw mkdb
pure-pw list
pure-pw userdel ftp_user2 //删除账号
4.测试pure-ftpd
lftp ftp_user1@127.0.0.1