简单好用的文件服务器prue-ftpd

一直对vsftpd文件服务器的配置方式感到蒙圈,索性找另一种服务工具代替之-pure-ftpd

安装pure-ftpd

  • 添加用户组
groupadd ftpgroup
  • 添加一个系统用户,将该用户属组设置为ftpgroup
useradd -g ftpgroup ftpuser -s /sbin/nologin 
  • 创建ftp文件服务的文件存放目录
mkdir /ftpdir
  • 下载安装epel源
wget https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm

yum install epel-release-latest-7.noarch.rpm -y
  • 安装pure-ftp
yum install pure-ftpd -y

systemctl start pure-ftpd

修改配置文件

配置文件在/etc/pure-ftpd/pure-ftpd.conf

这里只贴出启用的选项,并只修改少数几个选项

ChrootEveryone              yes
BrokenClientsCompatibility  no
MaxClientsNumber            50
Daemonize                   yes
MaxClientsPerIP             20
VerboseLog                  no
DisplayDotFiles             yes
AnonymousOnly               no
NoAnonymous                 yes
SyslogFacility              ftp
DontResolve                 yes
MaxIdleTime                 15
PureDB                        /etc/pure-ftpd/pureftpd.pdb
PAMAuthentication             yes
LimitRecursion              10000 8
AnonymousCanCreateDirs      no
MaxLoad                     4
PassivePortRange          30000 30500 #这个比较关键,要设置允许主动连接的端口范围,
AntiWarez                   yes
Umask                       133:022
UseFtpUsers no
AllowUserFXP                no
AllowAnonymousFXP           no
ProhibitDotFilesWrite       no
ProhibitDotFilesRead        no
AutoRename                  no
AnonymousCantUpload         yes
AltLog                     clf:/var/log/pureftpd.log
MaxDiskUsage               99
CustomerProof              yes

  • 创建虚拟用户
pure-pw useradd user001 -u ftpuser -d /ftpdir/user001

上面过程是创建user001虚拟用户,在ftpuser系统用户归属之下,user001的用户家目录为/ftpdir/user001

  • 创建虚拟用户的根目录
mkdir /ftpdir/user001
  • 修改user001根目录属主属组
chown -R ftpuser:ftpgroup /ftpdir

-将新添加的虚拟用户提交到虚拟数据库文件pureftpd.pdb中,这里如果不提交的话是无法登录的

pure-pw mkdb /etc/pure-ftpd/pureftpd.pdb #默认没有这个文件
  • 重启用户
systemctl restart pure-ftpd

设置防火墙端口

这里比较关键,经常会因为端口没有开发导致客户端无法连接,在上面的配置中,设置允许客户端连接的端口范围是30000-30500,所以防火墙要开启这个范围的端口

firewall-cmd --zone=public --add-port=30000-30500/tcp --permanent

firewall-cmd --reload
  • 查看端口开启状态
[root@node1 ~]# firewall-cmd --list-ports
2377/tcp 7946/tcp 7946/udp 4789/tcp 4789/udp 21/tcp 21/udp 20/tcp 20/udp 30000-30500/tcp

设置完毕如果客户端连接不上重启一下pure-ftpd服务

配置参数解释

最后从网上找的一些关于配置参数的介绍留作参考

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协议

点赞
  1. daxi说道:

    学无止境,认真拜读!

发表评论

电子邮件地址不会被公开。 必填项已用*标注