linux不使用mysql搭建pureftp,开启TLS加密传输,pureftpd服务centos7源码编译安装

pureftpd

1、下载 wget https://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.51.tar.gz
编译说明
--prefix=PREFIX
--with-sysquotas        使用系统磁盘配额 (非虚拟)
--with-altlog           支持选择日志格式(类似Apache)
--with-puredb           支持虚拟用户 (FTP登陆用户而非系统用户)
--with-extauth          支持扩展验证模块
--with-pam              启用PAM验证支持 (默认=禁用)
--with-cookie           启用Cookie支持 (-F 选项)
--with-throttling       支持带宽控制 (默认=禁用)
--with-ratios           支持 上传/下载 速度控制
--with-quotas           支持 .ftpquota 文件(指定磁盘配额使用)
--with-ftpwho           支持pure-ftpwho(查看在线用户的程序)
--with-largefile        支持大于2G的文件
--with-welcomemsg       支持 welcome.msg 向后兼容(已经过时)
--with-uploadscript     上传后允许执行外部脚本 (测试阶段)
--with-virtualhosts     在不同的IP地址提供虚拟服务器功能
--with-virtualchroot    允许在chroot的环境下通过符合连接跳转到外部
--with-diraliases       启用目录别名
--with-nonroot          普通模式或者说是限制模式. 如果你在该服务器上没有root权限
那只有启用该项
--with-peruserlimits    支持每个用户的并发限制
--with-language=        语言支持< english | traditional-chinese | simplified-chinese>
--with-ldap             在LDAP目录中提供用户数据库
--with-mysql            在MySQL数据库中存放用户数据
--with-pgsql            在PostgreSQL数据库中存放用户数据
--with-privsep          启用权限分离
--with-tls              启用 SSL/TLS 支持 (测试阶段, 需要安装 OpenSSL)
--with-certfile=        证书文件 (默认目录: /etc/ssl/private/pure-ftpd.pem)
--with-rfc2640          启用兼容 RFC 2640 支持(UTF-8 编码的文件名,测试阶段,需要安装iconv)
--with-everything       启用大多数选项,编译完功能版本的服务器端。
为了方便起见,我在这里使用了几个基本的编译命令来配置编译一个全功能版本的程序

2、编译
./configure --prefix=/usr/local/pure-ftpd/ --with-everything 
#建议启用tls配置编译
./configure --prefix=/usr/local/pure-ftpd/ --with-everything  --with-tls
make&make install
3、修改配置/usr/local/pure-ftpd/etc/pure-ftpd.conf
ChrootEveryone              yes
BrokenClientsCompatibility  yes
MaxClientsNumber            100
Daemonize                   yes
MaxClientsPerIP             100
VerboseLog                  no
DisplayDotFiles             yes
AnonymousOnly               no
NoAnonymous                 yes
SyslogFacility              ftp
DontResolve                 yes
MaxIdleTime                 5
#使用本地用户管理注销掉mysql配置
#MySQLConfigFile             /usr/local/pureftpd/etc/pureftpd-mysql.conf
LimitRecursion              10000 8
AnonymousCanCreateDirs      no
MaxLoad                     4
#设置被动模式端口范围
PassivePortRange            30000 30200
AntiWarez                   yes
#被动模式返回IP修改成公网IP
ForcePassiveIP              12.11.53.112
Bind                        0.0.0.0,2121
Umask                       133:277
MinUID                      100
AllowUserFXP                no
AllowAnonymousFXP           no
ProhibitDotFilesWrite       no
ProhibitDotFilesRead        no
AutoRename                  no
AnonymousCantUpload         no
KeepAllFiles                yes
MaxDiskUsage               99
CustomerProof              yes
#PureDB是存放用户和密码的密码库文件
PureDB                  /usr/local/pure-ftpd/etc/pureftpd.pdb
PIDFile                 /usr/local/pure-ftpd/etc/pure-ftpd.pid
#建议开启TLS加密传输
TLS                          1
CertFile                /usr/local/pure-ftpd/etc/pure-ftpd.pem
AltLog                   clf:/var/log/pureftpd.log
# 使用优化过的格式为统计报告创建一个额外的日志文件。
AltLog                   stats:/var/log/pureftpd.log
# 使用标准的W3C格式创建一个额外的日志文件。(与大部分的商业日志分析器兼容)
AltLog                   w3c:/var/log/pureftpd.log
-----
4、建系统用户和目录 #源码包有文档
mkdir /data/ftpdata
useradd ftpadmin
chown -R ftpadmin.ftpadmin ftpdata
#创建ftp虚拟用户
/usr/local/pure-ftpd/bin/pure-pw useradd admin -uftpadmin -d /data/ftpdata
#生成密码文件和数据库文件
/usr/local/pure-ftpd/bin/pure-pw mkdb
5、启动
/usr/local/pure-ftpd/sbin/pure-ftpd /usr/local/pure-ftpd/etc/pure-ftpd.conf

/usr/local/pure-ftpd/bin/pure-pw list                  //列出当前账号
/usr/local/pure-ftpd/bin/pure-pw userdel ftp_user1     //删除ftp_user1账户
./pure-pw show admin
pure-pw passwd  [-f ] [-m]

#TLS支持
1、生成证书
openssl req -x509 -nodes -days 7200 -newkey rsa:2048 -keyout pure-ftpd.pem -out pure-ftpd.pem
2、修改配置
TLS                          1
CertFile                     /etc/ssl/private/pure-ftpd.pem

配置说明


    ChrootEveryone                yes #限制所有用户在其主目录中
    BrokenClientsCompatibility   no #兼容ie等比较非正规化的ftp客户端
    MaxClientsNumber          50 #服务器总共允许同时连接的最大用户数
    Daemonize                        yes #作为守护(daemon)进程运行
    MaxClientsPerIP               8 #同一IP允许同时连接的用户数 受PassivePortRange影响。
    VerboseLog                       no #如果你要记录所有的客户命令,设置这个指令为yes
    DisplayDotFiles                 yes #即使客户端没有发送‘-a’选项也列出隐藏文件
    AnonymousOnly                no #不允许认证用户,仅作为一个公共的匿名FTP
    NoAnonymous                  yes #不允许匿名连接,仅允许认证用户使用
    SyslogFacility                    auth #日志
    DontResolve                       yes #在日志文件中不解析主机名
    MaxIdleTime                       15 #客户端允许的最大空闲时间(分钟)
    PureDB                                /etc/pureftpd.pdb #PureDB 用户数据库
    LimitRecursion                   10000 8 #ls命令的递归限制。第一个参数给出文件显示的最大数目。第二个参数给出最大的子目录深度
    AnonymousCanCreateDirs       no #允许匿名用户创建新目录
    MaxLoad                            4 #如果系统的loaded超过下面的值,匿名用户会被禁止下载
    PassivePortRange            30000 50000   这两个参数开启的话,将会使FTP工作在被动模式,30000 50000分别是客户端连接服务端后服务器在被动模式下返回给客户端的可用端口
    ForcePassiveIP                 172.30.51.200   被动模式传输的IP,写自己的公网IP即可,最好进行配置,公有云可能会返回给客户端交换机的IP
    tiWarez                              yes #不接受所有者为ftp的文件的下载
    MinUID                               100 #认证用户允许登陆的最小组ID(UID),此处要注意创建用户时的UID
    AllowUserFXP                    no #仅允许认证用户进行FXP传输
    AllowAnonymousFXP        no #对匿名用户和非匿名用户允许进行匿名FXP传输
    ProhibitDotFilesWrite        no #禁止用户删除和写 点文件(文件名以.开头的文件)
    ProhibitDotFilesRead         no #禁止读点文件
    AutoRename                       no   #永不复盖文件。当上传的文件名和服务器中文件同名,将自动重命名
    AnonymousCantUpload     no #不允许匿名用户上传文件(no = 允许上传)
    MaxDiskUsage                   99 #保护日志文件。当所在磁盘分区使用超过百分之x时,将不再接受新的上传
    CreateHomeDir                  yes  #当虚拟用户第一次登录时,自动创建homedir
    -------------------------------------------------------------
    #绑定的地址和端口(默认为所有 IP地址 的 21端口)
    # Bind                      127.0.0.1,21 
    ## 将所有用户限制在主目录中 (不能跳出)
    ChrootEveryone              yes   
    ## 如果前一个设置为 no,下面组的成员(GID)可以跳出主目录;其他用户仍然受限
    ## 如果想取消所有限制,注释掉 ChrootEveryone 和 TrustedGID 
    # TrustedGID                    100 
    ## 如果用户主目录不存在,自动创建
    # CreateHomeDir               yes 
    ## 新建目录及文件的权限掩码(禁止的权限)。文件掩码:目录掩码 
    Umask                       133:022 
    ## 被动模式响应的端口范围
    # PassivePortRange          30000 50000
    ## 强制一个 IP地址 使用被动模式
    # ForcePassiveIP                192.168.0.1 
    ## 仅允许认证用户进行 FXP 传输 (服务器=>服务器)
    AllowUserFXP                yes
    ## 允许匿名 FXP 传输
    AllowAnonymousFXP           no 
    ## 兼容 ie 等山寨 ftp 客户端
    BrokenClientsCompatibility  no 
    ## 服务器允许的最大连接数
    MaxClientsNumber            50 
    ## 同一 IP 允许的最大连接数
    MaxClientsPerIP             8 
    ## 匿名用户最大带宽(KB/s)
    # AnonymousBandwidth            8
    ## 所有用户最大带宽(KB/s),包括匿名用户
    # UserBandwidth             8
    # 匿名用户的上传/下载的比率
    # AnonymousRatio                1 10
    # 所有用户的上传/下载的比率
    # UserRatio                 1 10 
    ## 客户端的最大空闲时间(缺省15分钟,无动作将会被踢出)
    MaxIdleTime                 15 
    ## 不允许认证用户 (仅作为一个公共的匿名 FTP)
    AnonymousOnly               no
    ## 不允许匿名连接,仅允许认证用户使用 (设置为 no 允许匿名连接)
    NoAnonymous                 no   
    ## 受信地址允许认证用户,其它地址只能匿名连接
    #TrustedIP                  10.1.1.1 
    ## 禁止匿名上传( no = 允许上传)
    AnonymousCantUpload         no 
    ## 是否允许匿名用户创建目录
    AnonymousCanCreateDirs      no 
    ## 'ls' 命令的递归限制。(文件的最大数目 最大子目录深度)
    LimitRecursion              2000 8 
    ## 保留所有文件(禁止删除)
    # KeepAllFiles                yes 
    ## 如果上传的文件已经存在,自动重命名
    AutoRename                  no
    ## 禁止重命名
    # NoRename        yes 
    ## 禁止更改文件权限
    # NoChmod                     yes 
    ## 禁止读取隐藏文件(如 .history, .ssh 等)
    ProhibitDotFilesRead        no 
    ## 禁止下载所有者为 "ftp" 的文件 (匿名用户上传后未被本地管理员验证的文件)
    AntiWarez                   yes 
    ## 指定文件内容作为欢迎信息
    # FortunesFile              /usr/share/fortune/zippy 
    ## 启用磁盘限额。第一个数字为最大文件数,第二个数字为存储空间大小(单位:Mb)
    ## 1000:10 限制每一个用户只能使用 1000 个文件,共 10Mb
    # Quota                       1000:10 
    ## 最大可用空间,保证日志文件不会被覆盖 (默认为 99%)
    MaxDiskUsage               99  



你可能感兴趣的:(linux,运维)