PureFTPd安装+初步配置指南

最近把原来的ProFTPd换成了Pure-FTPd。

促使本人做下这一决定的原因主要是ProFTPd效率实在太低,而且最近网络不稳定ProFTPd经常connection reset by peers,让人无法忍受,加上在网上看到PureFTPd相对效率更高,于是动手干掉了proftpd。

首先

sudo apt-get purge proftpd && sudo apt-get autoremove && sudo apt-get install pure-ftpd

注意pure-ftpd中间有个-,刚开始试了很久pureftpd都说找不到软件包

安装的时候选standalone。

装好后先关掉

sudo /etc/init.d/pure-ftpd stop

pure-ftpd的配置文件比较特别,不是一个单一的conf而是在conf目录下创建以条目为名称的文件,值就是文件内容。

我的FTP加了这么几个:

在终端下输入

sudo sh -c "echo 'yes' \> /etc/pure-ftpd/conf/ChrootEveryone"
//把用户限制在home里面

NoAnonymous yes //不允许匿名登录

DontResolve yes //不反向解析,提高登录速度

MaxClientsPerIP 2 //每IP限制2个线程

UnixAuthentication no //不使用系统自带的用户(使用虚拟用户)

Bind 127.0.0.1,xx //端口号

MaxClientsNumber 5 //最大用户数5

MaxIdleTime 3 //发呆时间3分钟

ProhibitDotFilesRead yes //不允许读以.开头的文件

ProhibitDotFilesWrite yes //不允许写以.开头的文件

AllowUserFXP yes //不允许FXP

PureDB /etc/pure-ftpd/pureftpd.pdb //PureFTPD密码文件路径

然后配置虚拟用户。

在系统里面先加真实用户:

sudo groupadd ftpgroup
sudo useradd -g ftpgroup -d /dev/null -s /etc ftpuser

然后虚拟用户的数据库有两种,用mysql或者自带的puredb都行。我不想装mysql,所以就用自带的puredb。

sudo pure-pw useradd joe -u ftpuser -d /home/ftpusers/joe -N 20480 -y 2

以上命令代表建立一个名字为joe的用户,限制在home /home/ftpusers/joe里面,最大磁盘空间20G,同时最多两个线程。

建立用户后可以用pure-pw usermod来修改,语法和useradd几乎一样。更多参数:Pure-FTPD Virtual Users HOWTO

修改密码:pure-pw passwd 用户名

建好之后用

sudo pure-pw mkdb

生成数据库,在我的ubuntu下面默认放在/etc/pure-ftpd/pureftpd.pdb

看更新,有解决方法

不知道为什么standalone的默认启动并不读取这个pdb,所以我把pure-ftpd从rc.d里面去掉了,手工加入命令强制读取pdb。

首先

sudo update-rc.d -f pure-ftpd remove

实际上就是把/etc/rc.0-rc.6下面的符号链接删掉

然后编辑/etc/rc.local加入

/usr/sbin/pure-ftpd -E -j -C 2 -H -B -l puredb:/etc/pure-ftpd/pureftpd.pdb

大功告成,重启。

Update1:PureFTPd判断权限是通过uid/gid的,所以如果想改权限的话需要建立真实用户,然后把虚拟用户的uid/gid改成真实用户的。

Update2:PureFTPd貌似比ProFTPd使用内存更少。

Update3:使用PureDB不仅要在conf下设立PureDB,以pdb路径作为内容,同时还要建立一个符号连接:

sudo ln -s /etc/pure-ftpd/conf/PureDB /etc/pure-ftpd/auth/PureDB

同时rc.local中间以命令行加载的方式是不会读取conf的,所以要去掉并且修复原先rc.0里面的:

sudo update-rc.d -f pure-ftpd enable

标签: ,

更新时间: