CentOS7 配合Pure-ftpd搭建FTP服务

##################################################
#####服务器:CentOS 7.9    FTP软件:pure-ftpd-1.0.51#####
##################################################

1、制作签名证书
[root@Server~]#openssl genrsa -out server.key 2048
[root@Server~]#openssl req -new -key server.key -out server.csr
[root@Server~]#openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
[root@Server~]#cat server.key server.crt > server.pem
2、安装依赖环境及软件
[root@Server~]#yum install gcc build-essential openssl-devel
[root@Server~]#cd /usr/local/src
[root@Server~]#wget https://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.51.tar.gz
[root@Server src]#tar zxvf pure-ftpd-1.0.51.tar.gz
[root@Server src]#cd pure-ftpd-1.0.51
[root@Server pure-ftpd-1.0.51]#./configure --prefix=/usr/local/pureftpd --without-inetd --with-altlog --with-puredb --with-throttling --with-peruserlimits --with-tls --with-everything
[root@Server pure-ftpd-1.0.51]#make &&make install
3、修改软件配置及启动
[root@Server src]mkdir /usr/local/pureftpd/log                              #创建FTP日志存放目录
[root@Server src]touch /usr/local/pureftpd/log/pureftpd.log
[root@Server src]mkdir /usr/local/pureftpd/cert                              #创建FTP证书存放目录
[root@Server src]mv /root/server.key server.pem /usr/local/pureftpd/cert
[root@Server src]vi /usr/local/pureftpd/etc/pure-ftpd.conf
ChrootEveryone              yes           //锁定所有用户到家目录中
BrokenClientsCompatibility   no
MaxClientsNumber            50           //最大的客户端数量
Daemonize                    yes
MaxClientsPerIP             8        //同一个IP允许8个链接
VerboseLog                   yes
DisplayDotFiles             no //不显示隐藏文件
AnonymousOnly               no   //只允许匿名用户
NoAnonymous                 yes//不允许匿名用户
SyslogFacility               ftp
DontResolve                 yes    //禁止反向解析
MaxIdleTime                 10    //最大空闲10分钟
PureDB                        /usr/local/pureftpd/etc/pureftpd.pdb //虚拟用户数据库,CentOS下默认位置
LimitRecursion              2000 10       //别表最大显示2000个文件,最深8个目录
AnonymousCanCreateDirs      no     //是否允许匿名用户创建目录
MaxLoad                     4   //最多可下载的数量
AntiWarez                    yes
Umask                       133:022         //文件和目录的umask
MinUID                      1000             //用户ID至少要大于1000才能登陆
AllowUserFXP                no           //是否允许用户使用FXP协议登陆
AllowAnonymousFXP           no         //是否允许匿名用户使用FXP协议
ProhibitDotFilesWrite       no                 //是否允许写入点文件
ProhibitDotFilesRead        no                //是否允许读取点文件
AutoRename                   no
AnonymousCantUpload         yes         //不允许匿名用户上传
AltLog                       clf:/usr/local/pureftpd/log/pureftpd.log
KeepAllFiles                no
CreateHomeDir                yes     //自动创建用户家目录
MaxDiskUsage               99   //磁盘的最大利用率
CustomerProof                yes
TLS                          1
TLSCipherSuite               HIGH
CertFile                     /usr/lcal/pureftpd/cert/server.pem
CertFileAndKey               "/usr/local/pureftpd/cert/server.pem" "/usr/local/pureftpd/cert/server.key"
保存并退出!!!
[root@Server pure-ftpd-1.0.51]#/usr/local/pureftpd/sbin/pure-ftpd /usr/local/pureftpd/etc/pure-ftpd.conf  #使用指定配置文件启动
[root@Server pure-ftpd-1.0.51]#echo "/usr/local/pureftpd/sbin/pure-ftpd /usr/local/pureftpd/etc/pure-ftpd.conf" >> /etc/rc.local    #设置开机自启动

4、添加用户(示例)
[root@Server~]#useradd www     #创建系统账户
[root@Server~]#chown -R www:www /data/ftp          #创建FTP主目录
[root@Server~]#/usr/local/pureftpd/bin/pure-pw useradd test -u www -g www -d /data/ftp/test         #添加一个为test且主目录为/data/ftp/test的测试账号
[root@Server~]#/usr/local/pureftpd/bin/pure-pw mkdb  #生成账户信息数据
[root@Server~]#/usr/local/pureftpd/bin/pure-pw list       #查看所有FTP的账号及主目录
[root@Server~]#/usr/local/pureftpd/bin/pure-pw userdel test    #删除test账号
[root@Server~]#/usr/local/pureftpd/bin/pure-pw passwd test    #修改test密码

###########pure-ftpd.conf文件选项说明#############
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 //虚拟用户数据库,CentOS下默认位置
# UnixAuthentication            yes //主机认证
LimitRecursion              2000 10       //别表最大显示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               80   //磁盘的最大利用率
#NoRename                  yes //不允许自动重命名
IPV4Only                 yes    //只允许使用IPV4协议
ClientCharset            utf-8   //客户端默认编码