一、安装下载pure-ftpd软件包
1、下载软件包
yum install epel-release(默认源无pure-ftpd)
yum install -y pure-ftpd
2、关闭防火墙和SELinux
systemctl stop firewalld
setenforce 0
3、开启服务
systemctl start pure-ftpd
二、本地用户搭建(本地用户可以直接访问)
1、创建本地用户。
useradd hehe //可以通过-d指定用户的家目录
passwd hehe
2、创建测试文件。
vim /home/hehe/a.txt
Windows则在cmd所在路径下创建测试文件b.txt
3、重启服务,进行登录测试。
systemctl restart pure-ftpd
三、匿名用户搭建
1、修改配置文件,打开上传权限。
vim /etc/pure-ftpd/pure-ftpd.conf
修改 AnonymousCantUpload yes 为 no
2、创建测试文件并赋权限。
vim /var/ftp/a.txt
chmod -R 777 /var/ftp/
Windows则在cmd所在路径下创建测试文件b.txt
3、重启服务,进行登录测试。
systemctl restart pure-ftpd
四、虚拟用户搭建
1、创建账户,配置权限。
groupadd ftpgroup
useradd -g ftpgroup -s /sbin/nologin -d /var/ftp -M ftpuser
2、创建虚拟账户,设置密码。
pure-pw useradd haha -u ftpuser -d /var/ftp -m
3、创建用户信息数据库文件。
pure-pw mkdb
pure-pw list #查看用户列表
pure-pw useradd user -u www -d /data/www/wordpress #添加新的ftp用户
pure-pw passwd user #修改密码
pure-pw usermod user -d /data/www/web #修改用户的上传路径
pure-pw show user #查看用户信息
4、修改配置文件,打开PureDB功能。
vim /etc/pure-ftpd/pure-ftpd.conf
打开 PureDB /etc/pure-ftpd/pureftpd.pdb
5、赋权限。
chmod -R 777 /var/ftp/
6、重启服务,进行登录测试。
systemctl restart pure-ftpd
采用Mysql认证方式
1、安装mysql软件包
wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum install mysql-community-server
#开启服务
systemctl start mysqld
2、查看mysql登录密码(默认没有密码),添加密码。
grep 'temporary password' /var/log/mysqld.log
(如果出不来密码的话 rm -rf /var/lib/mysql systemctl restart mysqld)
mysql -uroot -p
Enter password: 【输入原来的密码】
mysql>use mysql;
mysql> update user set password=password("12345678") where user='root';
mysql> flush privileges;
mysql> exit;
3、创建数据库和用户表,插入测试数据。
mysql -uroot -p12345678
#创建数据库
create database pureftpd;
#切换数据库
use pureftpd;
#创建用户表
CREATE TABLE users ( User VARCHAR(255) BINARY NOT NULL, Password VARCHAR(255) BINARY NOT NULL, Uid INT NOT NULL default '-1', Gid INT NOT NULL default '-1', Dir VARCHAR(255) BINARY NOT NULL, PRIMARY KEY (User));
#插入数据
insert into users values('test',password('123456'),1000,1000,'/var/ftp');
4、修改配置文件,采用mysql认证方式。
vim /etc/pure-ftpd/pure-ftpd.conf
打开 MySQLConfigFile /etc/pure-ftpd/pureftpd-mysql.conf
关闭 PureDB /etc/pure-ftpd/pureftpd.pdb
关闭 PAMAuthentication yes
5、修改mysql对应的配置文件pureftpd-mysql.conf。
vim /etc/pure-ftpd/pureftpd-mysql.conf
MYSQLServer 127.0.0.1 #跟MYSQLSocket互斥,用一个就行
#MYSQLSocket /var/lib/mysql/mysql.sock
MYSQLPort 3306
MYSQLUser root #mysql连接用户
MYSQLPassword 12345678 #mysql连接密码
MYSQLDatabase pureftpd #数据库名称
MYSQLCrypt password #加密函数
6、重启服务,进行登录测试。
systemctl restart pure-ftpd
五、pure-ftp服务访问日志查看
cat /var/log/pureftpd.log
ChrootEveryone yes //锁定所有用户到家目录中
# TrustedGID 100 //信任组ID100,可以不锁定
MaxClientsNumber 50 //最大的客户端数量
MaxClientsPerIP 8 //同一个IP允许8个链接
DisplayDotFiles no //不显示隐藏文件
AnonymousOnly no //只允许匿名用户
NoAnonymous yes//不允许匿名用户
DontResolve yes //禁止反向解析
MaxIdleTime 10 //最大空闲10分钟
# LDAPConfigFile /etc/pureftpd-ldap.conf //LDAP配置文件目录
# MySQLConfigFile /etc/pureftpd-mysql.conf//MySQL配置文件目录
# PGSQLConfigFile /etc/pureftpd-pgsql.conf //PGSQL配置文件目录
PureDB /usr/local/pureftpd/etc/pureftpd.pdb //虚拟用户数据库
# UnixAuthentication yes //主机认证
LimitRecursion 2000 8 //别表最大显示2000个文件,最深8个目录
AnonymousCanCreateDirs no //是否允许匿名用户创建目录
#MaxLoad 4 //最多可下载的数量
# PassivePortRange 30000 50000 //主动连接的端口范围
ForcePassiveIP 192.168.0.1 //这个地址总是直到匿名目录
# AnonymousRatio 1 10 //匿名用户上传下载速度比率
# UserRatio 1 10 //用户上传下载速度比率
# Bind 127.0.0.1,21 //绑定IP和端口
# AnonymousBandwidth 8 //匿名用户带宽8KB
# UserBandwidth 8 //用户带宽8KB
Umask 133:022 //文件和目录的umask
MinUID 1000 //用户ID至少要大于1000才能登陆
AllowUserFXP no //是否允许用户使用FXP协议登陆
AllowAnonymousFXP no //是否允许匿名用户使用FXP协议
ProhibitDotFilesWrite no //是否允许写入点文件
ProhibitDotFilesRead no //是否允许读取点文件
AnonymousCantUpload yes //不允许匿名用户上传
#NoChmod yes //不允许用户改变权限
#KeepAllFiles yes //允许用户断点续传
#Quota 1000:10//磁盘配额
#MaxDiskUsage 99 //磁盘的最大利用率
#NoRename yes //不允许自动重命名
IPV4Only yes //只允许使用IPV4协议