引用 | 编辑
love104
2005-08-05 10:11 |
楼主
▼ |
||
x0
出处:鸟哥的 Linux 新手讨论区 http://phorum.vbird.org这是我跟同学一起整理的ftp教学 有错ㄉ话请指正喔!!!...^^ 10-0 FTP SERVER摘要 FTP(File Transfer Protocol)档案传输协定,是目前Internet最常被用来传输档案的方法,它可以提供使用者上传或下载档案。由于FTP伺服器的服务功能相当好用,所以Linux在安装光碟中就有WU-FTP Server,另外还有相当好用的PROFTP Server可在网路上下载供使用者安装,使用者可在Linux文字模式下直接以ftp指令连接伺服器。 FTP伺服器除了提供拥有专属帐号的使用者连接外,更提供了匿名式的档案下载服务,使用者只要在帐号中填入anonymous,密码则键入电子邮件地址,就能以匿名方式登入FTP伺服器来上传或下载档案,这也是FTP通讯协定得以盛行的原因之一。 10-1 WU-FTP 简介 WU-FTPD 为 Washington Univ. in Saint Louis 所写的FTP server程式。除了它原有 ftp server 的功能,主要地也增加了下列数项功能︰ 1.可将使用者区分成不同的class,给予一些权限上的限制。 2.记录 (log) 使用者所下的命令及传送档案的名称。 3.可对不同网域做不同存取权限和可存取的时段。 4.提供user在下载档案的时,可自动压缩或解压。 5.可记录FTP Server使用情形。 6.可限定最多连线人数,以符合整体运作效能。 7.显示相关讯息,让使用者了解接收状态。 8.可将FTP Server暂停,便于系统维护。 9.支援虚拟FTP主机(Virtual FTP Servers)。 10-2 WU-FTP 安装与启动 WU-FTP的安装套件在Linux的安装光碟就有,在安装Linux系统时选取即可安装WU-FTP。若是当初安装系统时没有安装WU-FTP,则可经由下列的方式安装。 [root@linux root]# mount /mnt/cdrom 将光碟机挂入/mnt/cdrom [root@linux root]# cd /mnt/cdrom/RedHat/RPMS 切换到放置RPM档案的目录 [root@linux root]# rpm –ivh wu-ftpd-2.6.1-18.i386.rpm 如要从旧版升级至新版,请将参数-i改成-U即可 [root@linux root]# /etc/rc.d/init.d/xinetd reload 启动FTP 要确认 FTP伺服器是否已启动可利用telnet指令来测试: WU-FTP Ver. 2.6.1-18有安全漏洞,可以让hacker读取Server上所有文件。必须升级至Ver. 2.6.1-20以修正漏洞。我们可以在http://www.redhat.com/apps/support/errata下载修正程式,执行 rpm –Fvh wu-ftpd-2.6.1-20.i386.rpm 安装完成后修改/etc/xinetd.d/wu-ftpd档,将disable设为no service ftp{ disable = no ←改为no socket_type = stream wait = no user = root server = /usr/sbin/in.ftpd server_args = -l -a log_on_success += DURATION USERID log_on_failure += USERID nice = 10 } 存档后,要求xinetd重新读取设定档 [root@linux root]# /etc/rc.d/init.d/xinetd reload 经过以上步骤,WU-FTP安装启动完成。 10-3 WU-FTP 设定 设定档/etc/ftpaccess l 拒绝登入的Unix使用者与UID deny-uid <使用者ID> l 拒绝登入的Unix群组与GID deny-gid <群组ID> l 不拒绝的Unix使用者与UID allow-uid <使用者ID> l 不拒绝的Unix群组与GID allow-gid <群组ID> l 当作访客Unix使用者与UID guestuser <使用者ID> l 当作访客Unix群组与GID guestgroup <群组ID> l 允许登入时帐号或密码输入错误的次数,这个值设越小越好,以避免被hacker攻击 loginfails 3 登入成功后显示欢迎讯息 message <讯息档> login 例如我们编写一个讯息内容如下: ////////////////////////////////////////////////////////////////////////// WELCOME TO FTP site !!! 请大家多分享好用的软体----^_^---thx!!///////////////////////////////////////////////////////////////////////// 你的来源IP是 %R 您是目前站上第 %N 位使用者 系统时间是: %T 主目录为: %C 将此内容存成welcome.msg放在根目录下,设定欢迎讯息 message /welcome.msg login 则登入成功后会显示欢迎讯息 讯息档中使用的参数: %T FTP Server系统的时间 %C 目前所在目录名称 %E 管理员的E-Mail %R FTP Client的主机名称 %L FTP Server的主机名称 %U Client登入的帐号 %M 最大连线人数 %N 目前连线人数 l上传设定 upload /var/ftp/guestftp /upload yes guest guest dirs 说明:/var/ftp/guestftp FTP 所在目录 /upload 上传目录 Yes 允许上传 guest guest owner group dirs 允许建立目录 密码检查 passwd-check <none|trivial|rfc822> <enforce|warn> 检查方式: none 不检查密码 trivial 密码中需有”@” rfc822 要符合rfc822规定 回应: enforce 中断与client的连线 warn 显示警告讯息 l 匿名FTP根目录 anonymous-root <目录> l 访客根目录 guest-root <目录> l 限制 user 只能在 /home 目录下活动 guest-root <FTP目录> restricted-uid l 拒绝某IP或DomainName进入 deny <IP> <讯息档> ex: deny *.*.edu.tw /msgdeny deny 140.92.0.0/16 /msgdeny l利用real, guest, anonymous三种身分与client来源IP/HostName来定义群组,以便于管理。 class <class> <typelist> <addrglob> ex: class admin real *.pccu.edu.tw class local real, guest, anonymous *.pccu.edu.tw class remote real, guest, anonymous l 纪录档 log commands <类别> ex: log command real,anonymous 将类别为real与anonymous的连线时所下的指令,纪录到纪录档去。 log transfers <类别> <directions> ex: log transfers real inbound,outbound 将类别为real的连线所下载/上传的档案全部纪录到纪录档去。 l 限定某个类别在某时间的最大登入人数 limit <类别> <n> <times> <讯息档> ex: limit local 100 Any1800-0100 /msgtoomany l 对类别设定其对于可否使用chmod, delete, overwrite, rename, umask等权限 chmod <yes|no> <类别> delete <yes|no> <类别> overwrite <yes|no> <类别> rename <yes|no> <类别> umask <yes|no> <类别> ex: chmod yes class=admin delete no anonymous, real overwrote no class=remote 设定档/etc/ftphost l 允许某使用者从某个IP登入 allow <使用者ID> <IP> ex: allow John 140.137.161.86 l 不允许某使用者从某个IP登入 deny <使用者ID> <IP> ex: deny Mary 140.137.161.80 其他管理指令: ftpwho :查阅目前登入FTP_Server的使用者。 ftpcount:计算目前登入的人数。 ftpshut :关闭FTP_Server。单纯关闭ftp,当该Server同时提供其他服务时,可以选择仅关避FTP SERVER,以保留其他服务。 ftpshut:<-l 分钟><-d 分钟><绝对时间><警告讯息> 10-4 ProFTP简介 目前大多数站台的 FTP 服务,以采用 WU-FTPD 伺服器程式架设者居多,而且WU-FTPD 在效能上,一直有不错的表现,程式版本更新的速度也不慢,不过,它却不是一个够安全的系统。 如果想找一个不错的 FTP 伺服程式来取代 WU-FTPD, ProFTPD是另一个不错得选择!ProFTPD 的发展,一开始,便是定位在:成为一个安全且容易设定的 FTP 伺服器程式。 以下是 ProFTPD 的特点: · 单一设定档,设定风格接近 Apache 设定档 · 每一目录可用 .ftpaccess 来控制(类似 Apache 的 .htaccess) · 易于设定多重虚拟主机以及匿名FTP · 可让管理人员选择 standalone 或 inetd 的执行方式 · 匿名FTP不需要额外的目录结构 · 原始码开放,没有 SITE EXEC 指令,安全性可受监控 · 根据系统档案权限,可隐藏目录或档案 · 以较低权限的身份来执行,降低万一被攻入的危险 · 记录档支援 utmp/wtmp,并和 wu-ftpd 相容,记录格式也可扩充 支援 shadow password 10-5 开始安装 1.以proftpd-1.2.4.tar.gz安装为范例 步骤: [root@linux root]#tar –zxvf proftpd-1.2.4.tar.gz [root@linux proftpd-1.2.4]#cd proftpd-1.2.4 [root@linux proftpd-1.2.4]#./configure 执行组态设定档make [root@linux proftpd-1.2.4]#make install 2. ProFTPD 设定档的位罝 用 RPM 档安装的 ProFTPD 设定档在 /etc/proftpd.conf 若抓 tar.gz 档回来安装的,则设定档在 /usr/local/etc/proftpd.conf . 3. 启动ProFTP ProFTP启动方式有两种,一种是standalone,另一种则为inetd,若此Server为专门之FTP则建议采用Standalone方式启动,若还有其他服务则建议采inetd启动其效能较佳。 以下为inetd方式作为范例: 修改 /usr/local/etc/proftpd.conf ServerType inetd 在 /etc/xinedtd.d/ 下建立 proftpd 档,内容为 : Service ftp { disable = no ←预设为 yes,请改为 no socket_type = stream wait = no user = root server = /usr/local/sbin/proftpd } 10-6 proftpd.conf 的设定范例: # ServerName : 设定您的站台名称 (”# ”号为注解) ServerName "MY FTP SITE" # ServerType : 设定 ProFTPD 的执行方式,可以是 standalone 或 inetd # 此处是 inetd ServerType inetd # DefaultServer 用来设定 unknown 的连接是否由预设的主机来处理 DefaultServer on # Port 21 是 FTP 标准的通道,inetd启动的话无法变更port Port 21 # 档案安全滤网值设为022 Umask 022 # 可避免 Dos 攻击的设定 MaxInstances 30 # 执行时的身份/组别权限 User nobody Group nobody #设定档案能被覆写. <Directory /*> AllowOverwrite on </Directory> #针对特定目录设定存取的限制,如上传目录 <Directory uploads/*> #予许来源读取 <Limt READ> #Deny All Allow All </Limit> #允许来源储存、建立目录 <Limit STOR MKD> Allow All </Limit> </Directory> # 以下是匿名 FTP 的设定 <Anonymous ~ftp> User ftp Group ftp AnonRequirePassword off RequireValidShell off #将用ftp身份登入的user权限设为等同anonymous UserAlias anonymous ftp # 设定匿名最大连线人数 MaxClients 10 #当使用者登入时显示欢迎讯息 , welcome.mag为欢迎讯息档名 #DisplayFirstChdir 是当切换目录时的提示讯息 DisplayLogin welcome.msg DisplayFirstChdir .message #限制匿名使用者是有能写入资料,此处设为不允许, Allow all 为允许 <Limit WRITE> DenyAll </Limit> </Anonymous> 存档之后,重新启动 inetd : /etc/rc.d/init.d/inet restart 10-7其他设定 设定一般user登入与否: <Limit Login> AllowAll 若不允许为 DenyAll </Limit> 设定一般user登入时的home目录: DefaultRoot <目录位置> 若要设定根目录为自已的home目录:让使用者无法切换到别人的home目录 DefaultRoot ~ 设定支援续传: AllowStoreRestart on #若想使用Root身份登入,请加上: RootLogin On 隐藏版本讯息: ServerIdent On “” 设定一个IP的登入个数: MaxClientsPerHost 1 设定Log档的位置和档名: TransferLog <目录位置><档名> 匿名FTP来源限制: <Limit Login> Order Deny,Allow Deny from .evil.net , .otherevil.net Allow from all </Limit> 若发现使用 CuteFtp 等软体连上FTP时,无法改变档案属性,在proftpd.conf加入 AllowChmod true 隐藏某Group/User的档案: HideUser <使用者> / HideGroup <群组> 若设定完仍无法使用匿名登入,请确定在匿名使用者中,有加入: RequireValidShell off x0
|
引用 | 编辑
mnbmnb5266
2010-08-25 19:46 |
4楼
▲ |
教学是不错,只不过我不接触这个软体所以暂时也是用不到,可惜啊
x0 |