用Proftpd 建立Ftp server:ProFTPD设计目标是实现一个安全且易于设定的FTP Server。目前Unix或类Unix平台上 FTP Server十分有限,最常使用的恐怕就是wu-ftpd了。虽然wu-ftpd有着***的效能同时也是一套很好的软件,然而它却欠缺了许多Win32平台上FTP Server的一些特色,同时wu-ftpd过去也有不少的安全漏洞陆续被发现。ProFTPD的原创者本身就曾经花非常多的时间寻找wu-ftpd 的漏洞加以改进并且增加许多功能。然而十分不幸的是,他很快地发现显然wu-ftpd需要全部重新的改写才能补足欠缺的设定能力以及缺乏的一些功能。ProFTPD不是从其它FTP Server的既有原始码修改而产生的,相反的,它是完全独立而完整、重新改写的FTP Server。
- tar -jxvf /root/tools/proftpd-1.3.12.tar.bz2
- ./configure --prefix=/opt/proftpd1.3.2/
- make
- make install
(2)启动proftpd
如果以standalone模式启动:
- 启动:/opt/proftpd1.3.2/sbin/proftpd
- 关闭:/opt/proftpd1.3.2/sbin/ftpshut now
或者用以下方式:
- cp proftpd-1.3.2/contrib/dist/rpm/proftpd.init.d /etc/init.d/proftpd
- vi /etc/init.d/proftpd
修改PATH的值,使其如右: PATH="$PATH:/opt/proftpd1.3.2/sbin"
- chmod +x /etc/init.d/proftpd
- service proftpd start/stop/restart
如果是以super daemon方式启动:
vi /etc/xinetd.d/proftpd
- service ftp
- {
- disable = no
- flags = REUSE
- socket_type = stream
- wait = no
- user = root
- server = /opt/proftpd1.3.2/sbin/proftpd
- server_args = -c /opt/proftpd1.3.2/etc/proftpd.conf
- log_on_success += DURATION USERID
- log_on_failure += USERID
- }
- service xinetd restart
#p#
(3)配置
添加ftp group 和 ftp user
- groupadd ftp
- useradd -g ftp -s /bin/false ftp
配置文件/opt/proftpd1.3.2/etc/proftpd.conf
#基本设置:
#当使用者登入主机的时候,proftpd 会显示在 Client端显示的信#当使用者登入主机的时候,proftpd 会显示示在 Client端显 示的信息)
- ServerName "My FTP Server"
- # 如果以standalone模式启动,则启用***行,这里是以 super daemon 启动的,就启用第二行
- ServerType standalone
- ServerType inetd
- # Port 21 is the standard FTP port.
- Port 21
- #预设的目录与档案的属性
- Umask 022
- #不充许root登入(default value is off)
- RootLogin off
- # 这个设定可以让使用者不需要具有『能够执行的 shell 』!即使使用者无法用ssh,但依然可以使用 ftp !
- RequireValidShell off
- #同一时间允许的连线数目
- MaxInstances 30
- #最多仅允许 100 个 client登入我们主机
- MaxClients 100
- #同一个主机最多可以同时 5 个 FTP 连线
- MaxClientsPerHost 5
- #允许使用者上传续传!预设是 off
- AllowStoreRestart on
- #预设的服务启动者!后面接的使用者与群组,必须在 /etc/passwd 与 /etc/group 裡面存在方可!
- User nobody
- Group nogroup
- #这里设置DefaultRoot,ftpuser group 中 的用户只能访问自已的家目录.
- DefaultRoot ~ ftpusers
- #允许根目录复写
- AllowOverwrite on
- #限制用户使用chmod
- DenyAll
- #以下是ftpusers组的用户的设置,ftpusers组的家目录是/home/ftp,/home/ftp/download只能允许下载,/home/ftp/upload只能允许上传,具体设置如下:
- AllowALL
- DenyALL
- AllowALL
- DenyALL
- #以下是匿名用户设置.匿名用户的根目录是/var/ftp.anonymous 登入后的身份= ftp:ftp 这个用户.
- #/opt/ftp/download 只能允许下载,/var/ftp/upload只能允许上传,具体设置如下:
- User ftp
- Group ftp
- UserAlias anonymous ftp
- MaxClients 10
- DisplayLogin welcome.msg
- DisplayFirstChdir .message
- TransferRate STOR 100 user anonymous.ftp
- TransferRate RETR 50 user anonymous.ftp
- DenyAll
- AllowALL
- DenyALL
- AllowALL
- DenyALL
#p#
4)配置说明:
4.1)Limit可以限制的动作
CMD:Change Working Directory 改变目录
MKD:MaKe Directory 建立目录的权限
RNFR: ReName FRom 更改目录名的权限
DELE:DELEte 删除文件的权限
RMD:ReMove Directory 删除目录的权限
RETR:RETRieve 从服务端下载到客户端的权限
STOR:STORe 从客户端上传到服务端的权限
READ:可读的权限,不包括列目录的权限,包括RETR, SITE, SIZE, STAT
WRITE:写文件或者目录的权限,包括APPE, DELE, MKD, RMD, RNTO, STOR, XMKD, XRMD
DIRS:是否允许列目录,包括CDUP, CWD, LIST, MDTM, NLST, PWD, RNFR, XCUP, XCWD,XPWD
针对上面这个Limit所应用的对象,又包括以下范围
AllowUser 针对某个用户允许的Limit
DenyUser 针对某个用户禁止的Limit
AllowGroup 针对某个用户组允许的Limit
DenyGroup 针对某个用户组禁止的Limit
AllowAll 针对所有用户组允许的Limit
DenyAll 针对所有用户禁止的Limit
4.2)欢迎词里的变量解释
%T 目前的时间
%F 所在硬盘剩下的容量
%C 目前所在的目录
%R Client 端的主机名称
%L Server 端的主机名称
%U 使用者帐户名称
%M ***允许连接人数
%N 目前的服务器连接人数
%E FTP服务器管理员的 email
%i 本次上传的文件数量
%o 本次下载的文件数量
%t 本次上传+下载的文件数量
example:(welcome.msg)
vi /var/ftp/welcome.msg
欢迎光临!
我的主机: %L
目前时间: %T
***连线: %M
目前连线: %N
您的主机: %R
您的帐号: %U
目前目录: %C
example:(some info)
vi /var/ftp/upload/.message
this directory is only for upload!
you are anonymous!
4.3)上传100Kbytes/second ,下载速度50Kbytes/second
- TransferRate STOR 100 user anonymous,ftp
- TransferRate RETR 50 user anonymous,ftp
【编辑推荐】