配置与管理FTP服务实验报告

网络服务器配置与管理实验报告

实验题目:      配置与管理FTP服务      时间:      2012/04/25   

姓名:    于俊梅         学号:   20101401322      班级:   10计3     

协作者:                       

*********************************************************************

实验概述:

【实验原理】

FTP采用客户端/服务器模式工作,一个FTP服务器可同时为多个用户提供服务。它要求用户使用FTP客户端软件与FTP服务器连接,然后才能从FTP服务器上下载或上传文件。

FTP包含两个通道,一个控制通道,一个数据通道。

   (1)控制通道

控制通道是FTP客户端和FTP服务器进行沟通的通道,连接FTP服务器、发送FTP命令,都是通过控制通道来完成的。

(2)数据通道

数据通道是FTP客户端与FTP服务器进行文件传输的通道。两种工作方式:

①PORT模式(主动方式):FTP客户端首先和FTP服务器的TCP21端口建立连接,通过这个通道发送命令,FTP客户端需要接收数据的时候在这个通道上发送PORT命令。

②PASV模式(被动方式):在建立控制通道的时候与PORT模式类似,当客户端通过这个通道发送PASV命令的时候,FTP服务器打开一个位于1024和5000之间的随机端口并且通知FTP客户端在这个端口上进行数据传送。

【实验目的及要求】

   (1)了解FTP的概念和工作原理

   (2)安装FTP服务

   (3)创建FTP站点并测试

   (4)创建FTP站点的用户账号

   (5)创建“隔离用户”FTP站点并测试

   (6)配置和管理FTP站点

【实验环境】(使用的硬件设备、软件或平台)

    硬件设备:个人PC机

    软件:虚拟机

    平台:Windows Server 2003系统与虚拟机之间构建的平台

-------------------------------------------------------------------------------------------------------

实验内容:

【实验方案设计】

在VMware里安装1个Windows Server 2003操作系统,搭建FTP服务需求环境,并验证配置环境,创建FTP站点,虚拟机作服务器,真机作客户端,IP设为同一网段,进行一系列验证配置

【实验过程】(实验步骤、记录、数据、分析)

    1.安装FTP服务

   (1)打开“控制面板”,选择“添加或删除程序”,然后选择“添加/删除Windows组件”,选择“应用程序服务器”

   (2)在“应用程序服务器”对话框的“应用程序服务器的子组件”选项区域中,选取“Internet信息服务(IIS)”选项,然后单击“详细信息”按钮,打开“Internet信息服务(IIS)” 对话框。 

(3)在“Internet信息服务(IIS)”对话框的“Internet信息服务(IIS)的子组件”选项区域中,选择“文件传输协议(FTP)服务”选项,单击“确定”按钮返回“应用程序服务器”对话框,然后依次单击“确定”按钮、单击“下一步”按钮、单击“完成”按钮完成FTP服务的安装。

    2.创建FTP站点并测试

   (1)在FTP服务器中,新建一个文件夹“E:\ftproot”作为FTP站点的根目录,里边存放文件:图片文件夹,music文件夹,readme.txt,ftp.chm,setup.exe,tutu.bmp,tutu.jpg。

   (2)选择“开始”→“管理工具”→“Internet信息服务(IIS)管理器”命令,打开“Internet信息服务(IIS)管理器”管理控制台,展开“ftp站点”,右击“默认FTP站点”图标,删除“默认FTP站点”图标。

   (3)右击“Internet信息服务(IIS)管理器”管理控制台中的“FTP站点”图标,选择“新建”→“FTP站点”,单击“下一步”,在“FTP站点描述”对话框中输入“自由人艺术公司”。

   (4)单击“下一步”,打开“IP地址和端口设置”对话框,输入IP:192.168.102.103,端口号:21。单击“下一步”,打开“FTP用户隔离”对话框。

   (5)在“FTP用户隔离”对话框中,选择“不隔离用户”单选按钮,单击“下一步”,打开“FTP站点主目录”对话框。

   (6)在“FTP站点主目录”对话框中,指定FTP站点主目录路径为“E:\ftproot”

,单击“下一步”,打开“FTP站点访问权限”对话框,选择“读取”。

   (7)单击“下一步”,打开“已成功完成FTP站点创建向导”对话框,单击“完成”按钮,完成FTP站点的创建。

测试:

①      打开IE浏览器,在地址栏输入“ftp://192.138.102.103”

②      打开“命令提示符”窗口,输入ftp  192.168.102.103,并使用匿名用户

“anonymous”登录FTP站点,连接成功后,使用“dir”命令显示FTP站点上的目录文件和子目录列表,若要断开,输入“bye”。

3.创建FTP站点的用户账号

(1)选择“开始”→“运行”命令,在弹出的“运行”对话框中,输入字符串命令“compmgmt.msc”,打开本地计算机的“计算机管理窗口”。

(2)在“计算机管理”窗口的左侧区域,双击“本地用户和组”选项,右击“用户”图标,在弹出的快捷菜单中选择“新用户”命令。

(3)在“新用户”对话框中输入用户名:Jim,全名:Jim,描述:艺术总监,密码:126,将“用户下次登录时须更改密码”项目中的选中状态取消,同时选中“用户不能更改密码”复选框,依次单击“创建”按钮和“关闭”按钮,一个新的用户账号就创建成功了。

4.创建“隔离用户”的FTP站点并测试

(1)首先在E盘根目录下建立文件夹“glftproot”,打开该文件夹在其中再创建一个文件夹“Localuser”,在“Localuser”文件夹中创建两个子文件夹,分别为“Jim”、“Public”,在这两个文件夹中分别存放“Jim1.doc”、“Jim2.jpg”、“Jim3.txt”文件和“Public 1.doc”、“Public 2.jpg”、“Public 3.txt”。

(2)打开“Internet信息服务(IIS)管理器”管理控制台,右击FTP站点图标,“新建”→“FTP站点”命令,单击“下一步”。

(3)在“FTP站点描述”对话框中输入新建站点名称:“自由人公司隔离FTP站点”,单击“下一步”,输入IP地址:192.168.102.103,端口号为默认的“21”

,单击“下一步”。

   (4)在“FTP用户隔离”设置对话框中选择“隔离用户”选项,单击“下一步”,在“FTP站点主目录”对话框中设置隔离FTP站点的主目录为:“E:\glftproot”,单击“下一步”,“完成”按钮,完成隔离用户FTP站点的创建。

测试:

①      在IE浏览器地址栏中输入ftp://Jim@192.168.102.103来连接隔离用户的

FTP站点,在弹出的登录身份认证对话框中输入用户名及密码后按【Enter】键。

②      在IE浏览器地址栏中输入ftp://192.168.102.103来连接FTP站点。

5. 配置和管理FTP站点

(1)设置安全帐户

 在FTP站点“属性”对话框中,选择“安全帐户”选项卡,取消选中“允许匿名连接”复选框,打开IIS管理器警示对话框,单击“是”按钮,返回FTP站点“属性”对话框,单击“确定”按钮保存设置。

   (2)设置消息

在FTP站点“属性”对话框中选择“消息”选项卡,在“标题”文本框中输入:“自由人公司FTP”,在“欢迎”文本框中输入“欢迎光临!”,在“退出”文本框中输入“谢谢您的光临!欢迎下次惠顾!”,在“最大连接数”文本框中输入“对不起,系统忙,请稍后继续!”。

(3)配置FTP站点主目录

在FTP站点“属性”对话框中选择“主目录”选项卡,选择FTP站点目录的路径为:E:\ftproot,选中“读取”和“记录访问”复选框。

(4)创建虚拟目录

打开“Internet信息服务(IIS)管理器”管理控制台,右击FTP站点图标,“新建”→“虚拟目录”命令,单击“下一步”,设置虚拟目录别名为“sout”,单击“下一步”,在“FTP站点内容目录”对话框中,输入路径“E:\内容”,设置访问权限为“读取”,单击“完成”按钮完成虚拟目录创建。

测试:在IE浏览器地址栏输入ftp://192.168.102.103/sout.

【结论】(结果)

    FTP服务器上发布的信息,在客户端都能通过IE浏览器访问到相关的内容

【备注】

(1)    虚拟机要网卡桥接

(2)    实验要把虚拟机的IP配置好,把真机的DNS去掉

(3)    虚机的C盘或E盘要存放各种不同的文件,便于FTP查找

 =============================================================

                                      

 

第二篇:FTP服务器管理与配置

Linux中FTP 服务器vsftpd的管理与配置

vsftpd是UNIX类操作系统上运行的服务器名称,它的名字代表“very secure FTP daemon”,安全性是其设计与开发的一个重要目标。它可运行在Linux、Solaris等系统中,支持很多其他的FTP 服务器不支持的特征:

? 非常高的安全性需求

? 带宽限制

? 良好的可伸缩性

? 创建虚拟用户的可能性

? 分配虚拟IP地址的可能性

一、vsftpd的启动

#service vsftpd start

如果允许用户匿名访问,需创建用户ftp和目录/var/ftp

# mkdir /var/ftp

# useradd –d /var/ftp ftp

二、vsftpd的配置

Vsftpd的配置文件存放在/etc/vsftpd/vsftpd.conf 我们可根据实际数要对如下信息进行配置:

1. 连接选项

? 监听地址和控制端口

(1) listen_address=ip address

定义主机在哪个IP 地址上监听FTP请求。即在哪个IP地址上提供FTP服务。

(2) listen_port=port_value

指定FTP服务器监听的端口号。默认值为21。

2. 性能与负载控制

? 超时选项

(1) idle_session_timeout=

空闲用户会话的超时时间,若是超过这段时间没有数据的传送或是指令的输入,则会被迫断线。默认值是300s

(2) accept_timeout=numerical value

接受建立联机的超时设定。默认值为60s

? 负载选项

(1) max_clients= numerical value

定义FTP服务器最大的兵法连接数。当超过此连接数时,服务器拒绝客户端连接。默认值为0,表示不限最大连接数。

(2) max_per_ip= numerical value

定义每个IP地址最大的并发连接数目。超过这个数目将会拒绝连接。此选项的设置将会影响到网际快车、迅雷之类的多线程下载软件。默认值为0,表示不限制。

(3) anon_max_rate=value

设定匿名用户的最大数据传输速度,以B/s为单位。默认无。

(4) local_max_rate=value

设定用户的最大数据传输速度。以B/s为单位。默认无。此选项对所有的用户都生效。

3. 用户选项

vsftpd的用户分为3类:匿名用户、本地用户(local user)及虚拟用户(guest)

? 匿名用户

(1) anonymous_enable=YES|NO

控制是否允许匿名用户登录

(2) ftp_username=

匿名用户使用的系统用户名。默认情况下,值为ftp

(3) no_anon_password= YES|NO

控制匿名用户登录时是否需要密码。

(4) anon_root=

设定匿名用户的根目录,即匿名用户登录后,被定位到此目录下。主配置文件中默认无此项,默认值为/var/ftp/

(5) anon_world_readable_only= YES|NO

控制是否只允许匿名用户下载可阅读的文档。YES,只允许匿名用户下载可阅读的文件。NO,允许匿名用户浏览整个服务器的文件系统。

(6) anon_upload_enable= YES|NO

控制是否允许匿名用户上传文件。除了这个参数外,匿名用户要能上传文件,还需要两个条件,write_enable参数为YES;在文件系统上,FTP匿名用户对某个目录有写权限。

(7) anon_mkdir_wirte_enable= YES|NO

控制是否允许匿名用户创建新目录。在文件系统上,FTP匿名用户必须对新目录的上层目录拥有写权限。

(8) anon_other_write_enbale= YES|NO

控制匿名用户是否拥有除了上传和新建目录之外的其他权限。如删除、更名等。

(9) chown_uploads= YES|NO

是否修改匿名用户所上传文件的所有权。YES,匿名用户上传得文件所有权改为另一个不同的用户所有,用户由chown_username参数指定。

(10) chown_username=whoever

指定拥有匿名用户上传文件所有权的用户。

? 本地用户

(1) local_enable= YES|NO

控制vsftpd所在的系统的用户是否可以登录vsftpd。设置为YES时,在/etc/passwd中的账号才能以本地用户的方式登录vsftpd

(2) local_root=

定义本地用户的根目录。当本地用户登录时,将被更换到此目录下。

? 虚拟用户

(1) guest_enable= YES|NO

此值设置为YES是,任何非匿名用户登路的帐号均被假设成为guest。guest默认会取得FTP这个用户的相关权限。但可以通过guest_username来修改

(2) guest_username=

定义vsftpd的guest在系统中的用户名。

4. 安全措施

? 用户登录控制

(1) /etc/vsftpd.ftpusers

Vsftpd禁止列在此文件中的用户登录FTP服务器。此机制是默认设置的。

(2) userlist_enable= YES|NO

此选项激活后,vsftpd将读取userlist_file参数所指定的文件中的用户列表。

(3) userlist_file=/etc/vsftpd.user_list

指出userlist_enable选项生效后,被读取的包含用户列表的文件。默认值是/etc/vsftpd.user_list

(4) userlist_deny= YES|NO

决定禁止还是只允许由userlist_file指定文件中的用户登录FTP服务器。userlist_enable选项启动后才能生效。默认值为YES,禁止文中的用户登录,同时不向这些用户发出输入口令的指令。NO,只允许在文中的用户登录FTP服务器。

? 目录访问控制

(1) chroot_list_enable= YES|NO

锁定某些用户在自己的目录中,而不可以转到系统的其他目录。

(2) chroot_list_file=/etc/vsftpd/chroot_list

指定被锁定在主目录的用户的列表文件。

(3) chroot_local_users= YES|NO

将本地用户锁定在主目中。

Vsftp服务启动:

# service vsftpd start

# /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf &

Standalone运行模式下的Xinetd服务修改:

Xinetd服务对Vsftpd服务管理的配置文件:

/etc/xinetd.d/vsftpd

Service ftp

{

Disable=yes

Socket_type=stream

Wait=no

User=root

Server=/usr/sbin/vsftpd

Server_args=/etc/vsftpd/vsftpd.conf

}

重启xinetd

# /etc/rc.d/init.d/xinetd restart

Linux下FTP服务器proftpd安装与配置指南

1.安装

新版的proftp中已经有mod_quotatab了,所以不用另外下载了。

# tar -zxvf proftpd-1.2.10.tar.gz

# cd proftpd-1.2.10

# ./configure \

--prefix=/usr/local/proftpd \

--with-includes=/usr/local/mysql/include/mysql \

--with-libraries=/usr/local/mysql/lib/mysql \

--with-modules=mod_sql:mod_sql_mysql:mod_quotatab:mod_quotatab_sql:mod_ratio # make

# make install

设置自启动

# cp contrib/dist/rpm/proftpd.init.d /etc/rc.d/init.d/proftpd

# chmod 755 /etc/rc.d/init.d/proftpd

# chkconfig --level 0123456 proftpd on

修改/etc/rc.d/init.d/proftpd

# vi /etc/rc.d/init.d/proftpd

把 PATH="$PATH:/usr/local/sbin" 改为 PATH="$PATH:/usr/local/proftpd/sbin"

修改/usr/local/proftpd/etc/proftpd.conf

# vi /usr/local/proftpd/etc/proftpd.conf

把Group nogroup 改为 Group nobody

再添加两行,使支持续传(默认是不支持的)

AllowRetrieveRestart on

AllowStoreRestart on

启动服务

# service proftpd start

2.proftpd的结构

proftpd.conf:这个是主要的 proftpd 的设定档。在 RPM 安装的范例中,所在的目录为 /etc/proftpd.conf ,在这个范例中,则是在/usr/local/proftpd/etc/proftpd.conf。

/usr/local/proftpd/sbin/proftpd:这个是主要的 proftpd 的 daemon 执行档。此外,这也是 TCP Wrappers (/etc/hosts.deny(allow)) 设定里头的服务档案档名。另外,当proftpd 在启动的时候会去读取设定档,也就是proftpd.conf这个档案,不过,我们也可以指定其它的档案来进行proftpd的设定。

# proftpd -c /usr/local/proftpd/etc/proftpd.conf

/usr/local/proftpd/bin/ftpcount:目前在主机上面使用 proftpd 的联机数,直接在指令列下达 ftpcount 即可。

/usr/local/proftpd/sbin/ftpshut:指定再过多久之后 proftpd 服务会终止。语法如下: ftpshut [ -l min ] [ -d min ] time [ warning-message ... ]

-l min: 在ftp关闭服务之前的几分钟内,尝试建立新的ftp连接均不被接受

-d min: 在ftp关闭服务之前的几分钟内,已经建立的ftp连接将被中止

time: 在多少时间后,服务器将关闭ftp服务,格式有两种

+number 经过number分钟后关闭

MMHH 在今天MM:HH服务器将关闭

注意,这里我们用这个命令是把ftp服务给停了,但实际的proftpd进程还没停止,所以一般调试ftp会使用到这个命令

举例:

再经过30分钟后,FTP服务将关闭,在这之前的20分钟不可接受任何新的ftp连接,已经建立的在服务关闭前10分钟强制断线,并在客户端显示“FTP Server Will shutdown at time” # ftpshut -l 20 -d 10 +30 "FTP Server Will shutdown at time"

其实ftpshut就是产生/etc/shutmsg ,你只要删除这个文件ftp又可以重新服务,或者直接 # ftpshut -R

/usr/local/proftpd/bin/ftpwho:可以用来察看目前有多少人使用 proftpd 这个服务。简单的语法直接下达 ftpwho 即可,如下所示:

# ftpwho

standalone FTP daemon [8451]:

10194 badbird [ 0m 11s] 0m 6s (idle)

Service class - 1 user

如上所示,目前有一个使用者,名为badbird的账号,在使用proftpd。

3.proftpd.conf

3.1.proftpd.conf 的设定方式

proftpd的设置和apache类似,它的配置基本格式如下:

#全局设置

设置项目1 参数1

设置项目2 参数2

#某个目录的设置

...

...

#关于匿名用户的设置

...

...

...

...

我们用到的比较多的可能是Limit的使用,Limit大致有以下动作,基本能覆盖全部的权限了,大家灵活使用就是了。

CMD:Change Working Directory 改变目录

MKD:MaKe Directory 建立目录的权限

RNFR: ReName FRom 更改目录名的权限

DELE:DELEte 删除文件的权限

RMD:ReMove Directory 删除目录的权限

RETR:RETRieve 从服务端下载到客户端的权限

STOR:STORe 从客户端上传到服务端的权限

READ:可读的权限,不包括列目录的权限,相当于RETR,STAT等

WRITE:写文件或者目录的权限,包括MKD和RMD

DIRS:是否允许列目录,相当于LIST,NLST等权限,还是比较实用的

ALL:所有权限

LOGIN:是否允许登陆的权限

针对上面这个Limit所应用的对象,又包括以下范围

AllowUser 针对某个用户允许的Limit

DenyUser 针对某个用户禁止的Limit

AllowGroup 针对某个用户组允许的Limit

DenyGroup 针对某个用户组禁止的Limit

AllowAll 针对所有用户组允许的Limit

DenyAll 针对所有用户禁止的Limit

关于限制速率的参数为:

TransferRate STOR|RETR 速度(Kbytes/s) user 使用者

3.2.常用参数说明

ServerName

#当使用者登入主机的时候,proftpd 会显示在 Client 端的 FTP 软件的一些基本讯息啦! ServerType

#启动 proftpd 的方法,有两种方式,分别是 standalone与xinetd

DefaultServer

#预设的主机啊。这个项目可以设定为on或off,基本上,除非您有两个 IP 或者是设定了虚拟主机 (virtualhost), 否则这个项目都应该要设定为 on 才行!不然有些 uknown的联机会无法连接到您的 FTP 服务。

Port

# 设定主机的 FTP 命令信道端口!FTP命令通道通常为 21 ,您也可以更改,不过,这个设定只有当ServerType 为 standalone 时才有效。

Umask

# 与建立目录及档案的预设属性有关的设定喔!用 022 就够了!

MaxInstances

#同一时间允许的联机数目,这个设定项目与 process (PID) 有关!所以您的 FTP 主机中,proftpd 启用的 process 最多能有30个。这个与 MaxClients 不一样!

User 与 Group

#预设的服务启动者!后面接的使用者与群组必须在 /etc/passwd 与 /etc/group 里面存在方可! MaxHostsPerUser 1 "对不起,每个帐户最多允许来源ip为1个"

#MaxHostsPerUser 对防止ftp帐号还是比较有用的。

MaxClientsPerUser 1 "对不起,每个帐户在每个客户端最多可以同时登陆1次"

#这个参数可以防止多线程软件下载对服务器的破坏

MaxClientsPerHost 1 "对不起,同一个客户端只能最多1个帐号可以登陆"

#比如ftp服务端有好多帐户你都有,但也只能用1个帐号登陆

WtmpLog on

#是否要把ftp记录在日志中,如果不想可以设置成off屏蔽掉log日志。

TimeoutIdle 600

#客户端idel时间设置,默认就是600秒

DisplayLogin welcome.msg

#设置ftp登陆欢迎信息文件

关于欢迎文件的设置包含如下参数

%T 目前的时间

%F 所在硬盘剩下的容量

%C 目前所在的目录

%R Client 端的主机名称

%L Server 端的主机名称

%U 使用者帐户名称

%M 最大允许连接人数

%N 目前的服务器连接人数

%E FTP服务器管理员的 email

%i 本次上传的文件数量

%o 本次下载的文件数量

%t 本次上传+下载的文件数量

知道这些参数,我们就可以写出一个友好的欢迎语

vi /home/kaoyan/welcome.msg

欢迎您%U, 这是Frank的测试FTP服务器;

目前时间是:%T;

本服务器最多允许%M个用户连接数;

目前服务器上已有%N个用户连接数;

目前你所在的目录是%C;

目录所在的硬盘还剩下%F字节。

让proftp支持现在流行的passive传输方式,默认是不支持的。只要在服务端设置

AllowForeignAddress on

PassivePorts 49152 65534 #端口也可自己指定喜欢的

千万别忘了在客户端也要设置成支持passive

如何让root能登陆,默认proftp是不支持root登陆,我们可以设置让root也能登陆ftp,不过建议大家最好不要让root能登陆ftp,设置如下

RootLogin on

如何禁止某个地址访问ftp。比如禁止10.1.1网段的机器访问ftp,可以这么设置

Order deny,allow

Deny from 10.1.1.

Allow from all

虚拟ftp的建立,一般用于一台ftp服务器有好多ip地址,或者ftp用不同的端口,基本设置语法是: 比如我们要做一个端口是5555的ftp服务器:

ServerName "Frank FTP Server"

Port 5555

...

...

...

...

至于虚拟主机中的其他设置跟我以前讲的基本差不多

上传/下载比率设置,我想用过Serv_U的朋友一定知道这个功能的使用,我们这里让proftp也实现这个功能。

要实现功能注意编译的时候加入ratio模块,否则proftp默认是不支持,假设有个帐户ftp1的ftp目录在/home/kaoyan ,然后我们设置ftp1的上传/下载比率是1:2(即上传1M,就可以下载2M) touch /home/kaoyan/ratio.dat

touch /home/kaoyan/ratio.tmp

chmod -R 666 /home/kaoyan

在proftpd.conf设置如下

Ratios on

SaveRatios on

RatioFile /home/kaoyan/ratio.dat

RatioTempFile /home/kaoyan/ratio.tmp

在相应的设置项里添加

UserRatio ftp1 0 0 2 1000

#UserRatio "使用者帐户" fileratio filequota byteratio bytequota

# fileratio :以文件为基础的比率,通常不限制,故为 0

# filequota :预设置能下载多少文件,不限制时为 0

# byteratio :就是上传/下载的比例,如果数字为2,表示1:2

# bytequota :预设置能下载多少 KBytes 的文件

#上面设置的就是1:2的比率,默认只允许下载1M的文件

重启一下,以后ftp1就可以启用上传/下载比率了

4.各种ftp的配置

4.1.本地用户

目标:

使用主机本地端时间,而不要使用 GMT 时间;

主机最多允许 50 条联机,且最多允许 100 个使用者上线,当超过 100 个使用者还有其它 FTP 要求时,就显示:很抱歉,上线人数额满了!;

同一个 IP (或主机) 来源最多仅能具有 5 个 FTP 服务;

允许续传;

被动式(passive mode)的端口为 65400 到 65420 这21个端口;

主机不允许 Root 登入;

想建立一个名为 badbird 的群组,在该群组内的所有使用者都无法离开自己的家目录(chroot); 在badbird 这个群组当中的 nogoodbird 这个使用者,该使用者能够使用 ftp 但是无法使用 ssh 连到主机;

在这个公开的目录 /home/ftp/pub 中,所有人均不可写入,只有读取的权限;

# vi /usr/local/proftpd/etc/proftpd.conf

# FTP主机的环境设定

ServerName "测试用的 Proftp 主机"

ServerType standalone

DefaultServer on

Port 21

User nobody

Group nobody

#所谓的 GMT 时间就是格林威治时间,因为要使用本地时间,所以设为 off

TimesGMT off

# 最多仅有 50 条 prftpd 的 PID

MaxInstances 50

# 最多允许 100 个使用者在在线

MaxClients 100 "很抱歉上线人数额满了"

# 同一个主机最多可以同时 5 个 FTP 联机

MaxClientsPerHost 5

# 允许使用者续传!预设是 off

AllowStoreRestart on

# 后面接的是端口,最小到最大的端口共 21 个

PassivePorts 65400 65420

# 其它与实体用户较相关的设定值!

Umask 022

# 不许 root 登入!预设就是 off

RootLogin off

# 这个设定可以让使用者不需要具有能够执行的 shell。例如让nogoodbird 这个具有 /bin/false 的使用者,依然可以使用 ftp

RequireValidShell off

# ~ 代表家目录。DefaultRoot后面接的是group,所以在这里badbird为group,而不是user # 这里特别容易搞混乱,请再特别的留意一下阿!只要不属于 badbird

# 这个群组的 User 就可以离开自己的家目录了!(没有被 chroot )

DefaultRoot ~ badbird

# 下面的设定中,在根目录内的所有目录均具有可擦写的权力,但是在

# /home/ftp/pub 这个目录中,不论 Linux 属性为何,使用者均无法写入!

# 但是可以浏览以及下载喔!在我们这个设定当中, badbird 这个群组无法离开

# 自己的家目录,至于其它可以离开自己家目录的使用者,来到这个

# /home/ftp/pub 当中,也不具有写入的权限喔!

AllowOverwrite on

Denyall

建立nogoodbird用户,由于不具有 shell 所以不能 SSH 但可以 ftp

# useradd -g badbird -m -s /bin/false nogoodbird

# service proftpd restart

事实上,对于实体用户实在不需要限制的太多!要不然就不要开放,要不然就直接改成 sftp!此外,在上面这个设定当中,我们暂时拿掉了anonymous的登入,所以使用 anonymous 将无法登入。

4.2.匿名用户

目标:

anonymous的根目录为 /var/ftp 这个目录;

anonymous登入后取得的 PID 在 Linux 的权限为 ftp:ftp;

当anonymous登入 FTP 之后,在 Client 端的 FTP 软件显示一些欢迎讯息;

最多允许 30 个 anonymous 的登入;

限制上传/下载速度为 100Kbytes/s 与 50 Kbytes/s;

在 /var/ftp/ 里面,除了 /var/ftp/upload 之外,其它的目录均不可写入;

在 /var/ftp/upload 这个目录中,仅可以写入,不能下载,并且在使用者进入这个目录后,显示出一些相关的信息;

建立基本的设定档案:

# vi /usr/local/proftpd/etc/proftpd.conf

# 关于主机与实体用户的设定

ServerName "测试用的 Proftp 主机"

ServerType standalone

DefaultServer on

Port 21

User nobody

Group nobody

TimesGMT off # 所谓的 GMT 时间就是格林威治时间,因为要使用本地时间,所以设为 off MaxInstances 50 # 最多仅有 50 条 prftpd 的 PID

MaxClients 100 "很抱歉上线人数额满了" # 最多允许 100 个使用者在在线

MaxClientsPerHost 5 # 同一个主机最多可以同时 5 个 FTP 联机

AllowStoreRestart on # 允许使用者上传续传!预设是 off

PassivePorts 65400 65420

# anonymous 的设定

# 底下为建立 Anonymous 在 Linux 系统下的 PID 权限拥有者

User ftp

Group ftp

UserAlias anonymous ftp

UserAlias nogoodbird ftp

# 建立显示的讯息给 anonymous 观察用的!

DisplayLogin welcome.msg

DisplayFirstChdir .message

MaxClients 30 "匿名登入者联机数已经饱和了!"

# 这个就重要啦!用来限制传输速率的吶!基本语法为:

# TransferRate (STOR|RETR) 速度(Kbytes/s) user 使用者

# STOR 为上传而 RETR 为下载的意思!速度为 Kbytes/second 喔!

TransferRate STOR 100 user anonymous,ftp # 单位为 KBytes/second

TransferRate RETR 50 user anonymous,ftp

Denyall

# 底下这个则仅与 upload 这个目录以及其下的子目录有关而已!

Denyall

Allowall

建立欢迎画面:

注意:如果anonymous 根目录在 /var/ftp,welcome.msg 就必须放置在/var/ftp/welcome.msg

# vi /var/ftp/welcome.msg

欢迎光临!这个是测试 FTP 站点!

我的主机: %L

目前时间: %T

最大联机: %M

目前联机: %N

您的主机: %R

您的账号: %U

目前目录: %C

建立特殊注意事项:

需要在 /var/ftp/upload 里面建立一个特殊讯息 # vi /var/ftp/upload/.message

这个目录仅能上传不能下载,

您的身份为anonymous!

建立 upload 的权限:

# chown ftp:ftp /var/ftp/upload

# chmod 755 /var/ftp/upload

重新启动!

# service proftpd restart

相关推荐