pure-ftpd配置作弊条
pure-ftpd是一款非常好的FTP服务软件。FreeBSD本身提供了两个很好的FTP服务器,一个是传统的BSD ftpd(8),另一个是来自NetBSD的lukemftpd(8),尽管性能和安全性都不错(做过全面代码审计),但配置虚拟用户会比较麻烦。
而pure-ftpd是一款第三方的FTP服务器端软件,它提供了与LDAP、MySQL,以及系统内建帐号的整合能力,另外也提供了自己的一种验证支持方式——puredb。
要安装pure-ftpd非常简单。首先是更新你本地的ports tree:
portsnap fetch && portsnap update然后用portinstall(sysutils/portupgrade)安装:
portinstall pure-ftpd然后在/etc/rc.conf.local中加入:
pureftpd_enable="YES"随后,编辑/(从pure-ftpd.conf.sample复制过来)。并作少量修改:
MaxClientsNumber:总并发连接数。MaxClientsPerIP:每IP并发连接数。MaxIdleTime:最长静默时间。PureDB:你的用户db的位置。(建议设置为/)usr/ local/ etc/ pureftpd. pdb AllowUserFXP:是否允许验证过的用户作FXP。信任这些用户的话就允许。ProhibitDotFilesWrite/ProhibitDotFilesRead:这些名字为点开头的文件通常会包含敏感信息,你可能不希望允许通过FTP读写它们(特别是用户目录与其实际用户目录重合的时候)。AnonymousCantUpload:是否不允许匿名用户上传。不做warez的话通常希望禁止。NoChmod:不允许chmod。这通常是安全考虑。NoTruncate:上传文件时,不立即覆盖。如果你用FTP来维护网站,打开这个选项会改善维护体验(我不通过FTP维护网站)。
其他一些常用选项:
AntiWarez:不允许匿名上传的文件被匿名下载。(除非管理员做chown)Umask:用户掩码。我比较喜欢177:077或者137:037,不过默认的133:022对于多数需求来说也够用。NoAnonymous:不许匿名登录。你不一定会用到,但如果需要还是打开的好。AnonymousOnly:只允许匿名登录。同样的,需要的话就打开。ChrootEveryone:嗯,开的好。
好了,配置完基本的选项,如何添加用户呢?
首先,如何配置匿名用户?
插句题外话:如果你还没有做的话,现在立刻到/usr/local/etc/里面去touch一个权限为600的pureftpd.passwd(owner是谁?显然是root,除非不打算开特权端口,即21)。
书归正传。
匿名用户说白了就是一个特殊的FTP用户,其密码FTP服务不关心,但其名字必须是ftp。这个用户的home目录将直接show给匿名用户。
建立匿名用户的命令行类似下面这样:
pure-pw useradd ftp -u 60021 -g 60021 -d /data/anonftp -m其中,-u 60021表示用60021作为用户的uid,-g表示组id。
注意,最后的-m表示立即更新你的puredb,使其生效。
接下来,建立对应的系统用户,其home目录是/data/anonoftp,shell……不用说,肯定是nologin。(如果你用adduser建立用户,要注意它会在用户的home目录下建立一系列文件,一般来说可以删除这些文件)
一般来说,你会希望在别人登录ftp时显示点什么,这个可以在ftp用户的~/.banner中设置。
下面说说非匿名用户。方法也很简单:
pure-pw useradd用户名 -u [UID] -g [GID] -d [home目录] -m注意,-d表示用户将被chroot到这里。
最后是启动:/。
好了,作弊条就到这里。需要TLS以及quota限制的同学,请自己查阅文档。
在线阅读本文并参与讨论 delphij's Chaos https://blog.delphij.net/posts/2005/12/pureftpd/