CentOS7安装pure-ftp

1、创建用户组和用户

1、创建用户组和用户

groupadd ftpgroup

useradd ftpuser -g ftpgroup -s /sbin/nologin

2、给/data/www/html赋ftpuser权限

mkdir -p /data/www/html

chown -R ftpuser:ftpgroup /data/www/html

3、安装pure-ftpd

yum install epel-release  #默认的 yum 源没有提供 pure-ftpd,需要先安装epel扩展源

yum install pure-ftpd -y

4、下载配好的pure-ftpd.conf

wget -P /etc/pure-ftpd/ http://www.kglan.com/soft/pure-ftp/pure-ftpd.conf

5、修改配置文件pure-ftpd.conf

vi /etc/pure-ftpd/pure-ftpd.conf

#修改内容如下所示:

#限制所有用户只能访问主目录

ChrootEveryone              yes

#信任组ID,不用设置,注释掉

# TrustedGID                    100

#是否断开非兼容的客户端,设置no时,兼容ie等比较非正规化的ftp客户端

BrokenClientsCompatibility  no

#最大连接的客户端数量

MaxClientsNumber            10

是否以守护(doemon)进程运行,设置yes

Daemonize                   yes

#单个IP最大连接数

MaxClientsPerIP             8

#是否记录所有用户的ftp连接命令

VerboseLog                  no

#客户端未发出-a命令时,是否列出隐藏文件(dot-files)?

DisplayDotFiles             yes

#只允许匿名用户?我们用于非公共ftp,所以要进行认证,不能匿名登录

AnonymousOnly               no

#设置为yes时,禁止匿名用户登录,只允许认证用户登录

NoAnonymous                 yes

#默认( facility )是 “ftp”。 “none” 将禁止日志。

SyslogFacility              ftp

#设置用户登陆后的显示信息

# FortunesFile              /usr/share/fortune/zippy

#//禁止反向解析,在日志文件中不解析主机名。

DontResolve                 yes

#LDAP配置文件目录

# LDAPConfigFile                /etc/pure-ftpd/pureftpd-ldap.conf

#MySQL配置文件目录

# MySQLConfigFile               /etc/pure-ftpd/pureftpd-mysql.conf

#PGSQL配置文件目录

# PGSQLConfigFile               /etc/pure-ftpd/pureftpd-pgsql.conf

#删除注释,并启用,如果需要上面那几种数据库来存放用户信息,请自行删除注释

#此为虚拟用户数据库路径,我们创建的虚拟用户就保存在这里

PureDB                        /etc/pure-ftpd/pureftpd.pdb

#验证服务pure-authd 的socket 路径

# ExtAuth                       /var/run/ftpd.sock

#启用 PAM 认证方式

PAMAuthentication             yes

#unix认证方式,只用一种即可

# UnixAuthentication            yes

#是否允许匿名用户创建文件目录

AnonymousCanCreateDirs      no

#设定负载阙值,当系统负载大于以下设定的数值后,将禁止匿名用户下载!

MaxLoad                     2

#FTP启用主动模式时用到的端口范围,建议设置为31888 to 36888

#主要是不想去改防火墙了,用以前vsftp的防火墙端口规则

PassivePortRange          31888 36888

#强制一个IP地址使用被动响应( PASV/EPSV/SPSV replies)

#ForcePassiveIP                192.168.0.1

#匿名用户和认证用户下载时的速度比例

# AnonymousRatio                1 10

#上传下载速度比例设置,全局变量

# UserRatio                 1 10

#不允许下载ftp属主的文件

AntiWarez                   yes

#服务监听的IP 地址和端口。(缺省是所有IP地址和21端口)

# Bind                      127.0.0.1,21

#匿名用户带宽

# AnonymousBandwidth            8

#认证用户带宽

# UserBandwidth             8

#文件和目录的umask

Umask                       133:022

#用户ID至少要大于1000才能登陆

MinUID                      1000

#是否使用/etc/ftpusers配置文件来禁用帐号,默认为no

UseFtpUsers no

#是否仅允许认证用户进行 FXP 传输?默认为no,这里改yes

AllowUserFXP                yes

#是否对匿名用户和非匿名用户允许进行匿名 FXP 传输。

AllowAnonymousFXP           no

#用户不能删除和写点文件(文件名以 ‘.’ 开头的文件),即使用户是文件的所有者也不行。

ProhibitDotFilesWrite       no

#同上

ProhibitDotFilesRead        no

#是否对已存在的文件自动重命名?必须no

AutoRename                  no

#设置yes禁止匿名用户上传新文件

AnonymousCantUpload         yes

#设定仅允许来自以下IP地址的非匿名用户连接。

#TrustedIP                  10.1.1.1

#如果需要为日志每一行添加 PID 去掉下面行的注释

LogPID                     yes

#log文件路径

AltLog                     clf:/var/log/pureftpd.log

#设置为yes时,不接受 CHMOD 命令。用户不能更改他们文件的属性。

#NoChmod                     yes

#设置yes时,允许用户恢复和上传文件,不允许删除他们

#KeepAllFiles                yes

#用户主目录不存在的话,自动创建。

CreateHomeDir               no

#删除注释后,启用配额管理,1000:10 就限制每一个用户只能使用 1000 个文件,共10Mb。

#Quota                       1000:10

#运行时的pid路径

#PIDFile                     /var/run/pure-ftpd.pid

# 如果你的 pure-ftpd 编译时加入了 pure-uploadscript 支持,这个指令将会使 pure-ftpd

# 发送关于新上传的情况信息到 /var/run/pure-ftpd.upload.pipe,这样 pure-uploadscript

# 就能读然后调用一个脚本去处理新的上传。

#这个功能用好了可以做很多事。。。

#CallUploadScript yes

#限定上传文件占用硬盘的极限值,超过后不再接收上传数据

MaxDiskUsage               99

# Set to ‘yes’ if you don’t want your users to rename files.

#是否禁止用户重命名已存在的文件

NoRename                  no

#设置为yes,防止chmod修改错误导致文件锁定

CustomerProof              yes

#3:20 意思是同一个认证用户最大可以有3个同时活动的进程。而且同时最多只能有20个匿名用户进程。

# PerUserLimits            3:20

# yes文件相同直接删除旧的,no先保留再更新

NoTruncate               yes

# TLS                      1

# SSL is disabled by default. TLS 1.0, 1.1 and 1.2 are available by

# default.

# TLSCipherSuite           HIGH

# Certificate file, for TLS

# CertFile                 /etc/ssl/private/pure-ftpd.pem

#只允许IPV4连接

IPV4Only                 yes

# Listen only to IPv6 addresses in standalone mode (ie. disable IPv4)

# By default, both IPv4 and IPv6 are enabled.

# IPV6Only                 yes

FileSystemCharset    UTF-8

ClientCharset    UTF-8

6、创建虚拟用户生成用户数据db

pure-pw useradd myftp -u ftpuser -d /data/www/html

密码:123456

pure-pw mkdb /etc/pure-ftpd/pureftpd.pdb

7、开启服务 设置开机启动

systemctl start  pure-ftpd

systemctl enable pure-ftpd

systemctl status pure-ftpd

8、开放防火墙端口

在使用FTP过程中不仅仅会用到21端口,可能还会用到其他端口,所以此处我们放行 20/21,1024/65535,如下:

firewall-cmd –zone=public –add-port=20-21/tcp –permanent

firewall-cmd –permanent –zone=public –add-port=49152-65535/tcp

firewall-cmd –reload

9、本地使用 FTP 客户端测试

#查看相应日志记录

cat /var/log/messages

#查看安全日志记录

cat /var/log/secure

#先查看 21 端口是否开启

netstat -an | grep 21

#然后查看 proftpd 进程

ps -aux | grep pure-ftpd

#Linux 在启动一个进程时,系统会在 /proc下创建一个以 PID 命名的目录,该目录是系统内存的映射目录,提供内核与进程信息,其中包括一个名为 exe 的文件即记录了绝对路径,通过 ll 或 ls –l 命令即可查看

ls -l /proc/PID

10、修改虚拟用户密码

pure-pw passwd myftp