Proftpd针对实体用户的设定
假设我们需要这样的设定项目:
•使用主机本地端时间,而不要使用 GMT 时间;
•主机最多允许 50 条连线,且最多允许 100 个使用者上线,当超过 100 个使用者还有其他 FTP 要求时,就显示:『很抱歉,上线人数额满了!』;
•同一个 IP (或主机) 来源最多仅能具有 5 个 FTP 服务;
•允许续传的动作;
•被动式资料流(passive mode)的埠口为 65400 到 65420 这21个埠口!
•主机不允许 Root 登入;
•想建立一个名为 badbird 的群组,在该群组内的所有使用者都无法离开自己的家目录(chroot);
•在 badbird 这个群组当中的 nogoodbird 这个使用者,该使用者能够使用 ftp 但是无法使用 ssh 连到主机;
•在这个公开的目录 /home/ftp/pub 中,所有人均不可写入,只有读取的权限;
- [root@test root]# vi /usr/local/proftpd/etc/proftpd.conf
# 底下是 FTP 主机的环境设定:
ServerName "这个是测试用的 Proftp 主机"
- ServerType inetd
- DefaultServer on
- Port 21
- User nobody
- Group nobody
TimesGMT off # 所谓的 GMT 时间就是格林威治时间,
# 详细的时区观念请参考后续的NTP伺服器
# 因为要使用本地时间,所以设为 off !
MaxInstances 50 # 最多仅有 50 条 prftpd 的 PID
MaxClients 100 "很抱歉上线人数额满了" # 最多允许 100 个使用者在线上
MaxClientsPerHost 5 # 同一个主机最多可以同时 5 个 FTP 连线
AllowStoreRestart on # 允许使用者上传续传!预设是 off
PassivePorts 65400 65420
# 后面接的是埠口,最小到最大的埠口共 21 个!
# 其他与实体用户较相关的设定值!
Umask 022
RootLogin off # 不许 root 登入!预设就是 off
- RequireValidShell off
# 这个设定可以让使用者不需要具有『能够执行的 shell 』!例如让
# nogoodbird 这个具有 /bin/false 的使用者,依然可以使用 ftp 喔!
# 注意啊!那个 ~ 代表家目录的意思喔!特别特别留意!
# 后面接的是『群组』
# 这里特别容易搞混乱,请再特别的留意一下阿!
# 这个群组的 User 就可以离开自己的家目录了!(没有被 chroot )
- AllowOverwrite on
- Denyall
# 上面的设定中,在根目录内的所有目录均具有可读写的权力,但是在
# /home/ftp/pub 这个目录中,不论 Linux 属性为何,使用者均无法写入!
# 但是可以浏览以及下载喔!在我们这个设定当中, badbird 这个群组无法离开
# 自己的家目录,至于其他可以离开自己家目录的使用者,来到这个
# /home/ftp/pub 当中,也不具有写入的权限喔!
- [root@test root]# useradd -g badbird -m -s /bin/false nogoodbird
# 建立这个 nogoodbird 由于不具有 shell 所以不能 SSH 但可以 ftp 喔!
- [root@test root]# /etc/rc.d/init.d/xinetd restart
事实上,对于实体用户实在不需要限制的太多!要不然就不要开放,要不然就直接改成 sftp 说!此外,在上面这个设定当中,我们暂时拿掉了 anonymous 的登入,所以使用 anonymous 将无法登入喔!
【编辑推荐】