原文出處 Tony的杂物仓库 http://tomem.info/blog/2010/03/139
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
Tags: FTP, VPS
Posted in 伪技术向 | No Comments »