资源预览内容
第1页 / 共48页
第2页 / 共48页
第3页 / 共48页
第4页 / 共48页
第5页 / 共48页
第6页 / 共48页
第7页 / 共48页
第8页 / 共48页
第9页 / 共48页
第10页 / 共48页
亲,该文档总共48页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第第08章章 FTP服务的配置与应用服务的配置与应用本章导读l FTP服务的概述l FTP服务的安装与配置l 虚拟用户管理程序User manager for PureFTPd的安装l 使用User manager for PureFTPd管理虚拟用户l FTP服务的配置l 启动和停止FTP服务l 测试FTP服务l 使用pure-ftpd实现虚拟主机注册服务8.1 FTP服务的概述服务的概述FTP服务的简介FTP的工作原理匿名用户主动模式和被动模式FTP服务的简介 FTP协议就是文件传输控制协议。它可以使文件通过网络从一台主机传送到同一网络的另一台主机上,而不受计算机类型和操作系统类型的限制。无论是PC机、服务器、大型机,还是DOS操作系统、Windows操作系统、Linux操作系统,只要双方都支持FTP协议,就可以方便地传送文件。 FTP的工作原理 FTP服务的具体工作过程如下。 当FTP客户端发出请求时,系统将动态分配一个端口(如1032)。 若FTP服务器在端口21侦听到该请求,则在FTP客户端的端口1032和FTP服务器的端口21之间建立起一个FTP会话连接。 当需要传输数据时,FTP客户端再动态打开一个连接到FTP服务器的端口20的第2个端口(如1033),这样就可在这两个端口之间进行数据的传输。当数据传输完毕后,这两个端口会自动关闭。 当FTP客户端断开与FTP服务器的连接时,客户端上动态分配的端口将自动释放掉。 匿名用户 多数的FTP站点都提供了匿名访问,它使所有的用户都能通过一个通用的账户来访问站点指定的公共区域。这个账户就是“anonymous”,它通常以E-mail地址作为口令。 主动模式和被动模式 在主动模式中,FTP客户端随机开启一个大于1024的端口X向服务器的21号端口发起控制连接请求,然后开放X+1号端口进行监听;FTP服务器接受请求并建立控制连接会话。如果客户端在控制会话中发送数据连接请求,那么服务器在接收到命令后,会用其本地的FTP数据端口(通常是20)来连接客户端指定的端口X+1进行数据传输 。主动模式和被动模式被动模式的控制连接和数据连接都是由FTP客户端发起的。首先FTP客户端随机开启一个大于1024的端口X向服务器的21端口发起连接,同时会开启X+1端口。然后向服务器发送PASV命令,通知服务器自己处于被动模式。服务器收到命令后,会开放一个大于1024的端口Y进行监听,然后用PORT Y命令通知客户端,自己的数据端口是Y。客户端收到命令后,会通过X+1号端口连接服务器的端口Y,然后在两个端口之间进行数据传输。这样就能使防火墙知道用于数据连接的端口号,而使数据连接得以建立。 8.2FTP服务的安装与配置安装Apache服务安装MySQL数据库和相关程序安装pure-ftpd生成pure-ftpd服务管理脚本配置匿名用户登录环境安装Apache服务 由于基于Web界面的pure-ftpd虚拟用户管理软件User manager for PureFTPd使用PHP编写而成,因此在使用前应安装Apache服务器并建立好PHP的运行环境。安装Apache的具体方法参见第7章的相关内容。安装MySQL数据库和相关程序 1. 安装MySQL服务及相关程序2. 安装php-mysql支持包3. 启动MySQL服务4. 设置自动运行MySQL服务5. 修改MySQL用户root的口令安装pure-ftpd 到http:/download.pureftpd.org/pub/pure-ftpd/ releases/pure-ftpd-1.0.21.tar.gz处下载 pure-ftpd最新的版。(1)解压安装包tar zxvf pure-ftpd-1.0.21.tar.gz(2)进入解压目录cd pure-ftpd-1.0.21安装pure-ftpd(3)配置pure-ftpd并指定各种安装选项./configure -prefix=/usr/local/pureftpd -with-mysql -with-virtualchroot -with-virtualhosts -with-virtualroot -with-diraliases -with-uploadscript -with-cookie -with-quotas -with-sysquotas -with-ratios -with-throttling -with-largefile -with-peruserlimits -with-paranoidmsg -with-welcomemsg -with-language=simplified-chinese安装pure-ftpd(4)编译make(5)安装make install(6)生成配置脚本cp configuration-file/pure-config.pl /usr/local/pureftpd/sbin/(7)修改配置脚本权限chmod +x /usr/local/pureftpd/sbin/pure-config.pl(8)建立FTP主目录mkdir /ftproot生成pure-ftpd服务管理脚本 进入pure-ftpd解压目录,编辑contrib子目录里的redhat.init文件。找到语句“fullpath=/usr/local/sbin/$prog”,将其改为“fullpath=/usr/local/pureftpd/sbin/$prog”;找到语句“pureftpwho=/usr/local/sbin/pure-ftpwho”,将其改为“pureftpwho=/usr/local/pureftpd/sbin/pure-ftpwho” 。生成pure-ftpd服务管理脚本 执行以下命令将文件redhat.init复制到/etc目录中并重命名为pure-ftpd。cp contrib/redhat.init /etc/init.d/pure-ftpd 执行以下命令设置文件为可执行。chmod +x /etc/init.d/pure-ftpd 执行命令chkconfig -add pure-ftpd添加pure-ftpd服务到系统中,使pure-ftpd可以随系统启动而自动运行。 配置匿名用户登录环境 使用以下命令为其建立目录/var/ftp。mkdir /var/ftp如果希望FTP匿名用户能够上传文件到FTP服务器,还要保证ftp系统账户对主目录有写入权限。可以通过以下命令设置/var/ftp主目录的所有者和所有组为ftp,使得ftp系统账户对主目录有写入权限。chown ftp:ftp /var/ftp8.3虚拟用户管理程序User manager for PureFTPd的安装安装User manager for PureFTPd配置User manager for PureFTPd安装User manager for PureFTPd到http:/machiel.generaal.net/files/pureftpd/ftp_v2.1.tar.gz处下载 User manager for PureFTPd 。 执行以下命令解压安装包。tar zxvf ftp_v2.1.tar.gz 执行下面的命令将User manager for PureFTPd目录放置在Apache的主目录中。cp -a ftp /var/www/html/pureftp配置User manager for PureFTPd 确保httpd服务器和MySQL服务启动后,使用Web浏览器访问“http:/Linux服务器的IP”或“域名/pureftp/install.php”会出现User manager for PureFTPd安装向导界面 配置User manager for PureFTPd配置User manager for PureFTPd配置User manager for PureFTPd配置User manager for PureFTPd配置User manager for PureFTPd配置User manager for PureFTPd配置User manager for PureFTPd配置User manager for PureFTPd配置User manager for PureFTPd在/etc目录中创建pureftpd-mysql.conf文件,并将图8-21中的灰色底纹的所有配置语句复制到文件中。 重新启动PureFTPd服务器。单击“Step7”按钮,完成设置。 8.4使用User manager for PureFTPd管理虚拟用户确保在httpd服务器启动后,使用Web浏览器访问“http:/Linux服务器的IP”或“域名/pureftp/index.php”会出现认证页面 8.4使用User manager for PureFTPd管理虚拟用户登录后就会进入User manager for PureFTPd管理主页面 8.4使用User manager for PureFTPd管理虚拟用户单击“按此新增账号”超链接添加FTP账户,在增加用户页面中可以设置用户的文件配额、磁盘配额、上传下载比和带宽等信息 。8.4使用User manager for PureFTPd管理虚拟用户pure-ftpd对FTP账户有着较合理且严密的管理体系,可以控制FTP账户以下功能。(1)文件配额(2)磁盘配额(3)上传下载比率(4)上传下载带宽(5)IP访问地址8.5FTP服务的配置1设置是否将用户锁定在主目录中ChrootEveryone yes2设置同时登录到FTP服务器的最大链接数MaxClientsNumber 503设置每个IP最大链接数MaxClientsPerIP 84设置是否只允许匿名用户连接AnonymousOnly no8.5FTP服务的配置5设置是否允许匿名用户登录NoAnonymous no6设置登录欢迎信息文件的位置FortunesFile /usr/share/fortune/zippy7设置用户空闲时间超过限值MaxIdleTime 158设置是否允许匿名用户建立目录AnonymousCanCreateDirs no8.5FTP服务的配置9设置是否允许下载由匿名用户上传的文件AntiWarez yes10设置FTP服务器绑定的IP地址和端口Bind 192.168.16.177,2111设置匿名用户的带宽AnonymousBandwidth 812设置是否允许匿名用户上传文件AnonymousCantUpload no13设置是否自动建立用户主目录CreateHomeDir yes14设置每个用户最大的并发连接数。PerUserLimits 3:208.6启动和停止FTP服务1启动FTP服务/etc/init.d/pure-ftpd start2停止FTP服务/etc/init.d/pure-ftpd stop3重新启动FTP服务/etc/init.d/pure-ftpd restart8.6启动和停止FTP服务 4自动启动FTP服务 如果需要让FTP服务随系统启动而自动加载,可以执行“ntsysv”命令启动服务配置程序,找到“pure-ftpd”服务,在其前面加上星号(*),然后选择“确定”即可 。8.7测试FTP服务确认pure-ftpd服务已经启动后,可在FTP客户端访问pure-ftpd服务器。如果能用匿名用户anonymous和User manager for PureFTPd建立的账户登录,则表示pure-ftpd工作正常 。在服务器上运行以下命令可以查看当前登录到FTP的用户信息/usr/local/pureftpd/sbin/pure-ftpwho8.8使用pure-ftpd实现虚拟主机注册服务设置pure-ftpd 生成MySQL数据库编写用户注册程序设置Apache服务器并编写实现用户访问转向PHP程序设置pure-ftpd 将pureftpd安装目录下的pureftpd-mysql.conf文件复制到/etc目录中,使用命令“vi /etc/pureftpd-mysql.conf”编辑pureftpd-mysql.conf文件,并修改如下配置选项,使Pure-FTPd能使用MySQL数据库管理用户。 修改语句“# MYSQLServer 127.0.0.1”,将其改为“MYSQLServer localhost”,该语句用来设置MySQL服务器的地址。 修改语句“MYSQLPassword rootpw”,将其改为“MYSQLPassword ygjalarm”,该语句用来设置访问MySQL用户的口令。 修改语句“MYSQLCrypt cleartext”,将其改为“MYSQLCrypt md5”,该语句用来设置FTP用户密码的验证方式为md5。 找到如图8-34所示的语句,将语句前的“”去除,以实现磁盘配额和对带宽的限制。 使用命令“chmod 0777 /var/www/html”修改目录的权限,使程序能够在该目录下创建用户子目录。生成MySQL数据库 在Linux中创建MySQL脚本文件pure-ftpd.sql,并在文件中添加如下语句。CREATE DATABASE pureftpd;use pureftpd;CREATE TABLE users ( User varchar(16) NOT NULL default ,/*用户名*/ Password varchar(64) NOT NULL default , /*密码*/ Uid varchar(11) NOT NULL default -1, /*用户ID*/ Gid varchar(11) NOT NULL default -1, /*用户在组ID*/ Dir varchar(128) NOT NULL default , /*用户主目录*/ QuotaSize smallint(5) NOT NULL default 0, /*磁盘配额*/ QuotaFiles int(11) NOT NULL default 0, /*文件数限制*/ ULBandwidth smallint(5) NOT NULL default 0, /*上传带宽*/ DLBandwidth smallint(5) NOT NULL default 0, /*下载带宽*/ user_url varchar(128) NOT NULL default , /*用户Web站点的域名*/ PRIMARY KEY (User),/*设置User字段为主键,避免出现用户名重复*/ UNIQUE KEY User (User) TYPE=MyISAM; 执行以下命令生成MySQL数据库。mysql -u root -p pure-ftpd.sql编写用户注册程序 index.html的代码如下: FTP用户注册 用户名: 密码: 编写用户注册程序mk.php程序的主要代码如下:设置Apache服务器并编写实现用户访问转向PHP程序 当用户使用注册的域名访问Apache服务器时,如果服务器上不存在用户所要访问的目录,就会返回一个404错误信息页面给用户。依照这一原理,我们可以设置或申请一个二级域名(如test.com),然后利用泛域名解析的办法,使所有的访问请求都先指向Apache服务器的主目录,最后编写一个404错误处理的PHP程序(如404.php),将这些请求转发到相应用户主目录下。 1. 设置Apache服务器使用命令“vi /etc/httpd/conf/httpd.conf”修改httpd.conf配置文件,将语句“# ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var”,改为“ErrorDocument 404 /error/404.php”。设置Apache服务器并编写实现用户访问转向PHP程序2. 安装设置DNS服务器设置DNS服务器实现泛域名解析,设置步骤如下。 安装DNS服务,具体步骤参见第6章。 使用命令“vi /var/named/chroot/etc/named.conf”打开DNS配置文件。 在named.conf配置文件末尾添加如下语句,建立test.com主区域。zone test.com type master; file test.com.zone;allow-transfer 192.168.1.8;设置Apache服务器并编写实现用户访问转向PHP程序 使用命令“vi /var/named/chroot/var/named/test.com.zone”创建并打开test.com.zone区域文件,在区域文件中添加如下语句。$ttl 38400test.com.INSOAdns. test.com. admin. test.com. (200509050310800360060480038400 )test.com. INNSdns. test.com.www. test.com INA 192.168.1.8*. test.com INA 192.168.1.8设置Apache服务器并编写实现用户访问转向PHP程序 404.php程序主要代码如下:404.php程序编写完成后将它拷贝到/var/www/error目录中。重新启动Web服务、DNS服务和FTP服务,虚拟主机注册服务站就可以开始运行了。 8.9练习题【练习1】建立基于虚拟用户的FTP服务器,并根据以下要求配置FTP服务器。(1)配置FTP匿名用户的主目录为/var/ftp。(2)建立一个名为abc,口令为xyz的FTP账户。设置该账户的文件配额为1000个;磁盘配额为250MB;下载带宽限制为500kB/s。(3)设置FTP服务器同时登录到FTP服务器的最大链接数为100;每个IP最大链接数为3;用户空闲时间超过限值为5分钟。【练习2】在FTP客户端连接并测试FTP服务器。
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号