|
系统环境: OpenSUSE 11.2
配置文件 : /etc/pure-ftpd/pure-ftpd.conf
在 OpenSUSE 下安装 Pure-FTP 很简单,可以通过系统光盘安装,也可以通过网络式的 webpin 一键式安装。查询是否已经安装了 Pure-FTP: # rpm -q pure-ftpd
pure-ftpd-1.0.22-3.2.1.i586
安装好 Pure-FTP 后,就启动其服务,有另种方式: # /etc/init.d/pure-ftpd start
Starting pure-ftpd done
或 # service pure-ftpd start
Starting pure-ftpd done
启动好服务后,为了方便起见,先关闭防火墙,然后登录 FTP,默认情况下,只允许匿名登录: # ftp 192.168.1.100
Connected to 192.168.1.100.
220-Welcome to Pure-FTPd.
220-You are user number 1 of 10 allowed.
220-Only anonymous FTP is allowed here
220-IPv6 connections are also welcome on this server.
220 You will be disconnected after 15 minutes of inactivity.
Name (192.168.1.100:groad):
230 Anonymous user logged in
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
Pure-FTP 使用虚拟用户功能,使能此功能,需要进行以下设置:
在 pure-ftpd.conf 要修改两项内容:
(1)取消对 PureDB 的注释 # PureDB user database (see README.Virtual-Users)
PureDB /etc/pure-ftpd/pureftpd.pdb
(2)取消掉仅匿名用户可访问(默认只有匿名用户) # Don't allow authenticated users - have a public anonymous FTP only.
AnonymousOnly no
接下来,需要创建虚拟用户名和虚拟用户组。这么做的目的是,减少 /etc/passwd 中存储的 UID 和 GID 的条目数。现在创建虚拟用户组:
创建用户: # useradd -g virftp -d /home/pureftp -s /bin/false virftp
-g 参数指定新建用户 virftp 所属的组
-d 参数指定新建用户 virftp 的家目录(这里 /home/pureftp 已经事先创建)
-s 设置该用户登录后的 shell,这里表示它只能用来操作 FTP,而不会执行系统命令(false 可参考:http://www.groad.net/bbs/read.php?tid-2366.html)
下面创建虚拟用户: # pure-pw useradd groad_pureftp -u virftp -g virftp -d /home/pureftp/groad_pureftp
这里, groad_pureftp 是虚拟用户。
为虚拟用户创建数据库:
现在,我们可以用 groad_pureftp 来登陆 FTP 服务器了。我们可以通过以下命令查看新建用户的情况: # pure-pw show groad_pureftp
这时,如果我们假设我们之前添加用户时为虚拟用户指定了错误的家目录,比如我们指定为 /home/pureftp (实际上是想指定为 /home/pureftp/groad_pureftp),可以通过以下命令修改: # pure-pw usermod groad_pureftp -d /home/pureftp/groad_pureftp/
修改完后,再更新一下数据库:
然后重启 FTP 服务器,那么这时虚拟用户的家目录就改变了。
默认情况下,用户都是被 chroot 的,也就是活它会被限制在自己的家目录中。如果我们不希望这么做,则可以先修改 pure_ftpd.conf 文件,将里面的 ChrootEveryone 项改为 no,然后使用下面的命令: # pure-pw usermod groad_pureftp -D /home/pureftp/groad_pureftp/
# pure-pw mkdb
然后再重启一下 FTP 服务器,这样用户就不会被限定在自己的家目录当中,此时它可以浏览 linux 里的整个 / 目录下 virftp 用户组所允许浏览的内容,如: linux-z13e:/home/pureftp/groad_pureftp # ftp 192.168.1.100
Connected to 192.168.1.100.
220-Welcome to Pure-FTPd.
220-You are user number 1 of 10 allowed.
220-IPv6 connections are also welcome on this server.
220 You will be disconnected after 15 minutes of inactivity.
Name (192.168.1.100:groad): groad_pureftp
331 User groad_pureftp OK. Password required
Password:
230-User groad_pureftp has group access to: virftp video
230 OK. Current directory is /home/pureftp/groad_pureftp
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
如果不被chroot,正如上面蓝色部分所示,登陆 FTP 时,它会告诉你你当前所在的目录。 事实上,这里没有必要再次使用 pure-pw mkdb 命令。因为,对已经存在的用户再设置相关属性时,只需要再相应的命令(可以通过 man pure-pw 查看哪些命令会用到 -m 选项参数)的末尾添加 -m 参数即可达到更新数据库的目的。
如果希望用户再次被限定在自己的家目录里面,则将上面的 -D 选项改为 -d 即可。
设置下载上传速率
设置下载速率使用 -t 选项,设置上传速率使用 -T 选项,如: # pure-pw usermod groad_pureftp -t 100 -T 10 -m
这里使用 -m 参数,使设置马上就生效。验证效果,可以登录FTP然后上传一个文件,以查看速度;还可以通过 show 命令查看: # pure-pw show groad_pureftp
Login : groad_pureftp
Password : $2a$07$m5xeneB2/hFV/1D79YIwduYHPeN/xdGFVJ8tbIrx/f30EFkateZNu
UID : 1006 (virftp)
GID : 2001 (virftp)
Directory : /home/pureftp/groad_pureftp
Full name :
Download bandwidth : 100 Kb (enabled)
Upload bandwidth : 10 Kb (enabled)
Max files : 0 (unlimited)
Max size : 0 Mb (unlimited)
Ratio : 0:0 (unlimited:unlimited)
Allowed local IPs :
Denied local IPs :
Allowed client IPs :
Denied client IPs :
Time restrictions : 0000-0000 (unlimited)
Max sim sessions : 0 (unlimited)
如上所示,我们限制了 FTP 的下载速率为 100KB/S ,上传速率为 10KB/S 。
IP 限制:
拒绝某个用户从某个 IP 登录:# pure-pw usermod groad_pureftp -R 192.168.1.101 -m 这里,使用 -R 选项,然后后面跟着要拒绝登录的 IP 地址。这样 groad_pureftp 这个用户就不能从 192.168.1.101 这个 IP 地址进行登录。使用 -r 选项可以解除这个限制。 |
|