1 / 25

ProFTPD

ProFTPD. 西安交通大学 李思 2004 年 8 月 23 日. 主要内容. FTP 基本概念 双连接 主动模式与被动模式 ProFTPD 的安装 ProFTPD 的配置 ProFTPD 的辅助管理工具 日志文件. 1. FTP 基本概念. FTP 协议与双连接. FTP = File Transfer Protocol ,被广泛应用于 Internet 上的文件传输 FTP 采用 C/S 结构 Client 和 Server 之间必须建立两个 TCP 连接 一个命令连接 一个数据连接 命令连接总是由客户端发起

gauri
Download Presentation

ProFTPD

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ProFTPD 西安交通大学 李思 2004年8月23日

  2. 主要内容 • FTP基本概念 • 双连接 • 主动模式与被动模式 • ProFTPD的安装 • ProFTPD的配置 • ProFTPD的辅助管理工具 • 日志文件

  3. 1. FTP基本概念

  4. FTP协议与双连接 • FTP = File Transfer Protocol,被广泛应用于Internet上的文件传输 • FTP采用C/S结构 • Client和Server之间必须建立两个TCP连接 • 一个命令连接 • 一个数据连接 • 命令连接总是由客户端发起 • 根据数据连接发起方式的不同,FTP的工作模式可分为 • 主动模式 • 被动模式

  5. 主动(Active)模式 • 客户机首先连接到服务器的21端口,建立命令连接,并完成FTP的登陆过程 • 由客户机侦听一个任意端口,并通过命令连接把该端口的号码告诉服务器 • 服务器使用20端口去连接客户机的数据端口,建立数据连接 • 文件的传输、LIST等命令结果的返回都必须通过数据连接进行

  6. 被动(Passive)模式 • 客户机首先连接到服务器的21端口,建立命令连接,并完成FTP的登陆过程 • 由服务器侦听一个任意端口,并通过命令连接把该端口的号码告诉客户机 • 客户机使用任意端口去连接服务器的数据端口,建立数据连接 • 文件的传输、LIST等命令结果的返回都必须通过数据连接进行

  7. 2. ProFTPD的安装与配置

  8. ProFTPD概述 • ProFTPD=Professional FTP Daemon • 目前Linux平台上最常用FTP服务器软件之一 • 功能强于VSFTPD • 安全性优于WuFTPD • 支持FTP虚拟主机 • 支持使用DBMS来验证用户名和密码 • 配置文件与Apache类似 • 目前最新稳定版本为1.2.9 • 警惕:1.2.9rc2及其之前的版本(20031015前版本)存在严重安全漏洞

  9. Proftpd的安装 • RPM安装 • 安装:rpm –ivh proftpd-xxxxx.rpm • 卸载:rpm –e proftpd-xxxxx • 源代码编译安装 • 解压:# tar zxvf proftpd-1.2.9.tar.gz • 配置:# ./configure • 编译:# make • 安装:# make install • 安装控制脚本: # cp proftpd-1.2.9/contrib/dist/rpm/proftpd.init.d /etc/init.d/proftpd # chmod +x /etc/init.d/proftpd # chkconfig --level 345 proftpd on

  10. proftpd的启动与停止 • 临时启动/停止proftpd的两种方法 • #service proftpd start/stop/restart • #/etc/init.d/proftpd start/stop/restart • 每次开机自动启动proftpd的两种方法 • #ntsysv,选中proftpd • #setup,系统服务,选中proftpd

  11. 配置上下文(1) • Proftpd的主配置文件为/usr/local/etc/proftpd.conf • 配置文件的结构是使用配置上下文来描述的 • 配置上下文是指配置指令的作用范围,它一般用一对<context>…</context>表示 • Proftpd.conf中可以使用六个配置上下文 • 主服务器:对主服务器有效,不需要<> • <Anonymous>:对匿名访问有效 • <Directory>:对指定的目录有效 • <Global>:对主服务器和虚拟主机都有效 • <Limit>:对所限定的命令有效 • <VirtualHost>:对虚拟主机有效

  12. 配置上下文(2) < > < > </ > < > <配置上下文> </ > </ > < > </ >

  13. 常用配置指令(1) • ServerName:指定服务器的名字 • ServerType:指定服务器独立运行还是依靠xinetd运行 • Port:服务器的端口号 • Umask:新建文件的权限掩码 • User/Group:服务器运行的身份,建议用nobody • MaxInstances:最大进程数(并发数量) • MaxClients:最多允许在线用户数量 • MaxClientsPerHost:每个IP的最大连接数 • MaxHostsPerUser:每个IP最大连接数 • MaxClientsPerUser: 每个帐号最大同时登陆数 • ServerIdent:连接时显示的服务器信息

  14. 常用配置指令(2) • DisplayLogin:指定欢迎词文件 • DisplayFirstChdir: 第一次进入该目录显示文件 • DefaultRoot:默认目录(Anonymous例外) • AllowOverwrite:是否允许覆盖 • UserAlias:给用户建立别名 • UseReverseDNS:是否使用反向DNS解析 • RequireValidShell:是否需要有合法的shell • AllowStoreRestart:是否允许上载时断点续传 • AllowStoreRestart:是否允许下载时断点续传(默认允许) • TransferRate RETR:限制最大下载速度(单位KBps) • TransferRate STOR:限制最大上载速度(单位KBps)

  15. Limit上下文(1) • 使用Limit上下文可以控制用户执行以下各类命令: • CWD: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 • LOGIN:是否允许登陆的权限 • ALL:所有权限

  16. Limit上下文(2) • Limit上下文中一般使用下列指令: • AllowUser 允许某些用户使用 • DenyUser 禁止某些用户使用 • AllowGroup 允许某个组使用 • DenyGroup 允许某个组使用 • AllowAll 允许所有人使用 • DenyAll 禁止所有人使用 • 也可以使用Apache配置中Deny和Allow的设置方法 • 例如: • 禁止任何人删除文件:<Limit DELE> DenyAll </Limit>

  17. 匿名FTP的配置 #将匿名FTP(不需要特殊口令的ftp)的根目录设为用户ftp的主目录 <Anonymous ~ftp> <Limit LOGIN> AllowAll </Limit> MaxClients 5 "Sorry, max %m users -- try again later" User ftp Group ftp UserAlias anonymous ftp AnonRequirePassword on #一般目录不允许写 <Limit WRITE> DenyAll </Limit> #uploads及其子目录不允许读 <Directory uploads/*> <Limit READ> DenyAll </Limit> <Limit STOR> AllowAll </Limit> </Directory> </Anonymous>

  18. 虚拟主机 • FTP依靠端口号的不同来区分虚拟主机 <VirtualHost 202.117.21.2> ServerName "Virtual.com's FTP Server" MaxClients 10 MaxLoginAttempts 1 Bind 202.117.21.2 Port 8021 <Limit LOGIN> DenyAll </Limit> <Anonymous ~ftp1> User ftp1 Group ftp1 <Limit LOGIN> AllowAll </Limit> </Anonymous> </VirtualHost>

  19. 欢迎文件中可使用的参数 • %T 目前的时间 • %F 所在硬盘剩下的容量 • %C 目前所在的目录 • %R Client 端的主机名称 • %L Server 端的主机名称 • %U 使用者帐户名称 • %M 最大允许连接人数 • %N 目前的服务器连接人数 • %E FTP服务器管理员的 email • %i 本次上传的文件数量 • %o 本次下载的文件数量 • %t 本次上传+下载的文件数量

  20. 3. 辅助管理工具、日志

  21. 管理工具ftpshut • ftpshut用于停止ftp服务,但是并不杀死proftpd进程 • 用法:ftpshut [ -l min ] [ -d min ] time [ warning-message ... ] • -l min: 在ftp关闭服务之前的min分钟内,不再接受新的ftp连接 • -d min: 在ftp关闭服务之前的min分钟内,停止所有已经建立的连接 • time: 在多少时间后,服务器将关闭ftp服务,格式有两种 • +number经过number分钟后关闭 • MMHH在今天MM:HH服务器将关闭 • ftpshut –R可以重新启动FTP服务

  22. 其它辅助管理工具 • ftpwho • 显示当前用户的相关信息 • ftptop • 按照一定次序显示当前ftp服务器的连接信息 • ftpcount • 显示当前每个FTP配置的统计信息

  23. Proftpd的日志文件 • 默认的日志文件为/var/log/xferlog • 默认的日志记录格式为:%h %l %u %t \"%r\" %s %b • %h: 客户端IP或域名 • %l: 远程用户名 • %u: 本地认证通过的用户id • %t: 当前时间 • %r: 从客户端接收到的命令 • %s: FTP相应状态码 • %b: 返回的字节数

  24. 遇到问题怎么办? • 防火墙级别是否太高? • 用户/组是否存在? • 文件/目录的权限是否正确? • 检查系统日志/var/log/messages • 检查ftp日志/var/log/xferlog

  25. 练习题 • 安装Proftpd • 配置一个用于学生交作业的FTP,要求设teacher、student两个帐号。Teacher帐号登陆后可以读、写、增、删,student登陆后能上传,能看到文件列表,但是不能下载文件。 • 在上一题的基础上,配置在2121端口配置一个虚拟主机,实现一个匿名的FTP。要求有incoming和pub目录。只有incoming目录允许上传。

More Related