老规矩,转的。原址在这里
http://www.it.com/html/diannaojichu/fuwuqipeizhi/2010/0614/2195.html
`
使用pure-ftp最头疼的估计是要使用mysql做数据库和使用web管理了
其实就算没有装或不使用mysql也一样可以顺利且简便的使用pure-ftp搭建ftp服务器
下面介绍一下简单配置的经过
1、当然是取得pure-ftp了,直接在线安装,命令:
$ sudo apt-get install pure-ftpd 即可安装。
2、测试:当安装好以后没有进行配置的时候,ftp指向的默认目录是/home文件夹,如果使用ftp客户端软件链接127.0.0.1:21,提示你输入用户名和密码,则ftp已经安装好了。
3、配置:
1)了解pure-ftpd调用配置文件的方式。pure-ftp不是调用某一个配置文件,而是调用/etc/pure-ftpd/conf/中的一堆文件进行配置加载,这和samba,apache配置有所区别。每一个配置文件其实只有一行,要么yes,要么no,或者1,0等等,比较方便定义。
2)开始进行基本配置。
进入到/etc/pure-ftpd/conf中,这里记下目录和目录中文件的权限,分别是755和644。
列目录为以下情况,只有 AltLog MinUID NoAnonymous PAMAuthentication PureDB UnixAuthentication等文件,这些文件都是配置文件。光有这些还不够,因此自己还要添加其他配置文件。
编辑基本配置,如监听21端口,使用某IP地址:
$ su #切换到root
(如果没有设置root账号是没有办法切换的,可以不切换,回到上层菜单将conf/的(包含子目录)权限设置为777,$ sudo chmod -R 777 conf/ 即可使用nano编写,编写玩毕之后恢复目录755及文件644的属性),或者对shell脚本熟悉的可以使用sudo sh -c “echo ‘xxx’ > XXX” 来编写添加配置文件。以下均使用root权限编写。
监听端口
# echo ,21 > Bind **添加bind 21端口监听 如果没有root权限则可以这样 $ sudo nano Bind 然后在其中编辑,21后保存加入,或 $ sudo sh -c “echo ‘,21’ > Bind” 来添加
# echo 192.xx.xx.22 > ForcePassiveIP **添加IP
# echo 4500 4600 > PassivePortRange **添加端口范围
字符编码及文件设置
文件FSCharset中设定为UTF-8,这样有的在使用浏览器ftp的时候会出现中文乱码,增加一个客户端字符编码文件就可以解决
# echo gbk > ClientCharset **(或gbk2132) 都可以
# echo yes > KeepAllFiles **保留所有文件,用户不能删除文件
# echo yes > AutoRename **自动更名,防止文件被覆盖
推荐的安全配置
#echo yes > ChrootEveryone **限制用户root权限
# echo yes > ProhibitDotFilesRead **可以读取以.开头的文件
# echo yes > ProhibitDotFilesWrite **可以写以.开头的文件
# echo yes > NoChmod **不允许更改权限
# echo yes > BrokenClientsCompatibility **多种兼容性客户端
网络设置
# echo 4 > MaxClientsPerIP **每个IP最大连接数
# echo 20 > MaxClientsNumber **客户端同时链接最大数
3)设置认证方式,将unix和PAM认证都设置为“no“,这一步中本身目录中就有这两个文件,只要修改其字符就可以了,unix原来就是no,用nano将PAM中的yes改为no就可以。如果没有这两个文件,则自己添加。
# echo no > PAMAuthentication
# echo no > UnixAuthentication
# echo /etc/pure-ftpd/pureftpd.pdb > PureDB **建立pure-ftp的认证文件 这句可以使用nano建立PureDB文件,其内容为/etc/pure-ftpd/pureftpd.pdb
# ln -s /etc/pure-ftpd/conf/PureDB ../auth/50pure **建立认证链接文件
创建用户和指定ftp目录
# groupadd -g 2001 ftpgroup **增加GID为2001的ftpgroup组
# useradd -u 2001 -s /bin/false -d /dev/null -c “pureftpd user” -g ftpgroup ftpuser **增加ftpuser用户,切没有/bin的shell操作与/dev的设备操作权
使用pure-pw命令添加虚拟用户
# pure-pw useradd yourname -u ftpuser -d /yourname/ftp/ **增加(yourname)用户并指定ftp目录为 /yourname/ftp/ 这里根据实际情况自行修改
回车后就提示输入密码(输入2次)
# pure-pw mkdb **添加进认证数据文件
最后重启pure-ftpd
# /etc/init.d/pure-ftpd restart
如果仅仅是单位或定向ftp,则只添加一个账户就可以了,便于管理。如果使用所账户或可以匿名登录的,那就需要使用mysql的数据库来管理,配置也不繁唢。 如果觉得还不够安全可以使用openssl来添加TLS/SSL支持,激活一个私有证书,这样传输内容经过加密,就更安全。
4)“关于ssl“
安装: # apt-get install openssl
# echo 1 > TLS **打开TLS加密
# openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem **生成加密文件
# chmod 600 /etc/ssl/private/pure-ftpd.pem **更改加密文件权限
重启pure-ftpd生效
5)“关于FXP协议“
如果只是内网或认证用户使用ftp,则可以打开FXP协议。由于FXP协议很不安全,不建议外网或允许匿名访问的ftp服务器打开FXP协议支持。
4、至此一个玩整的ftp服务器就架构好了,可以使用任何一种ftp客户端登录
使用。多用户还可以分别指定其目录或自动生成目录,设置目录UMASK等等,总体
来说 功能还是很强大的。
`