安全攻略:如何巧妙设定安全的匿名FTP

以下的设定方式是由过去许
多网站累积的经验与建议组成。我们认为可以让有个别需求的网站拥有不同设定的选择。设定匿名FTPA.FTP daemon网站必须确定目前使用的是最新版本的FTP daemon。B设定匿名FTP的目录匿名ftp的根目录(~ftp)和其子目录的拥有者不能为ftp帐号,或与ftp相同群组的帐号。这是 一般常见的设定问题。假如这些目录被ftp或与ftp相同群组的帐号所拥有,又没有做好
防止写入的保护,入侵者便可能在其中增加文件或修改其它文件。现在许多网站都拥有root帐号,如果让匿名FTP的根目录与子目录的拥有者是root,所属族群(group)为system?,如此只有root有写入的权力,这能帮助你维持FTP服务的安全???以下是一个匿名ftp目录的设定范例:drwxr-xr-x 7 root system 512 Mar 1 15:17 ./drwxr-xr-x 25 root system 512 Jan 4 11:30 ../drwxr-xr-x 2 root system 512 Dec 20 15:43 bin/drwxr-xr-x 2 root system 512 Mar 12 16:23 etc/drwxr-xr-x 10 root system 512 Jun 5 10:54 pub/所
有的文件和链接库,特别是那些被FTP daemon使用和那些在 ~ftp/bin 与~ftp/etc 中的文件,应该像上面范例中的目录做相同的保护。这些文件和链接库除了不应该被ftp帐号或与ftp相同群组的帐号所拥有之外,也必须防止写入。C.我们强烈建议网站不要使用系统中 /etc/passwd 做为~ftp/etc 目录中的密码文件或将系统中 /etc/group 做为 ~ftp/etc目录中的群组文件。在~ftp/etc目录中放置这些文件会使得入侵者取得它们。这些文件是可自定的而且不是用来做存取控制。我们建议你在 ~ftp/etc/passwd 与 ~ftp/etc/group 使用代替的文件。这些文件必须由root所拥有。DIR命令会使用这代替的文件来显示文件及目录的拥有者和群组名称。网站必须确定 ~/ftp/etc/passwd档中没有包含任何与系统中 /etc/passwd文件中相同的帐号名称。这些文件应该仅仅包含需要显示的FTP阶层架构中文件与目录的拥有者与所属群组名称。此外,确定密码字段是"整理"过的。例如使用「*」来取代密码字段。以下为cert中匿名ftp的密码文件范例ssphwg:*:3144:20:Site Specific Policy Handbook Working Group::cops:*:3271:20:COPS Distribution::cert:*:9920:20:CERT::tools:*:9921:20:CERT Tools::ftp:*:9922:90:Anonymous FTP::nist:*:9923:90:NIST Files::以下为cert中匿名ftp的群组文件范例cert:*:20:ftp:*:90:II..在你的匿名ftp提供可写入的目录让一个匿名ftp服务允许使用者储存文件是有风险存在的。我们强烈提醒网站不要自动建立一个上传目录,除非已考虑过相关的风险。CERT/CC的事件回报成员接获许多使用上传目录造成非法传输
版权软件或交换帐号与密码信息的事件。也接获恶意地将系统文件灌报造成denialof service问题。本节在讨论利用三种方法来解决这个问题。第一种方法是使用一个修正过的FTP daemon。第二个方法是提供对特定目录的写入限制。第三种方法是使用独立的目录。A. 修正过的FTP daemon假如你的网站计划提供目录用来做文件上传,我们建议使用修正过的FTP daemon对文件上传的目录做存取的控制。这是避免使用不需要的写入区域的
最好的方法。以下有一些建议:1.限定上传的文件无法再被存取, 如此可由系统管理者检测后,再放至于适当位置供人下载。2.限制每个联机的上传资料
大小。3.依照现有的
磁盘大小限制数据传输的总量。4.增加登录记录以提前发现不当的使用。若您欲修改FTP daemon, 您应该可以从厂商那里拿到程序代码, 或者您可从下列地方取得公开的FTP程序原始码:wuarchive.wustl.edu ~ftp/packages/wuarchive-ftpdftp.uu.net ~ftp/systems/unix/bsd-sources/libexec/ftpdgatekeeper.dec.com ~ftp/pub/DEC/gwtools/ftpd.tar.ZCERT/CC 并没有正式地对所提到的FTP daemon做检测、评估或背书。要使用何种FTP daemon 由每个使用者或组织负责决定,而CERT/CC建议每个机关在安装使用这些程序之前, 能做一个彻底的评估。B. 使用保护的目录假如你想要在你的FTP站提供上传的服务, 而你又没办法去修改FTP daemon, 我们就可以使用较复杂的目录架构来控制存取。这个方法需要事先规划并且无法百分之百防止FTP可写入区域遭不当使用,
不过许多FTP站仍使用此方法。为了保护上层的目录(~ftp/incoming), 我们只给匿名的使用者进入目录的权限(chmod 751~ftp/incoming)。这个动作将使得使用者能够更改目录位置(cd),但不允许使用者检视目录内容。Ex:drwxr-x--x 4 root system 512 Jun 11 13:29 incoming/在~ftp/incoming使用一些目录名只让你允许他们上传的人知道。为了要让别人不易猜到目录名称, 我们可以用设定密码的规则来设定目录名称。请不要使用本文的目录名称范例(避免被有心人士发现您的目录名, 并上传文件)drwxr-x-wx 10 root system 512 Jun 11 13:54 jAjwUth2/drwxr-x-wx 10 root system 512 Jun 11 13:54 MhaLL-iF/很重要的一点是,一旦目录名被有意无意的泄漏出来, 那这个方法就没什么保护作用。只要目录名称被大部分人知道, 就无法保护那些要限定使用的区域。假如目录名被大家所知道,那你就得选择删除或更改那些目录名。C. 只使用一颗硬盘:假如你想要在你的FTP站提供上传的服务, 而你又没办法去修改FTP daemon,您可以将所有上传的资料集中在同一个挂(mount)在~ftp/incoming上的文件系统。可以的话 ,将一颗单独的硬盘挂(mount)在~ftp/incoming上。系统管理者应持续检视这个目录(~ftp/incoming), 如此便可知道开放上传的目录是否有问题。限制FTP用户目录匿名FTP可以很好地限制用户只能在规定的目录范围内活动,但正式的FTP用户默认不会受到这种限制,这样,他可以自由在根目录、系统目录、其他用户的目录中读取一些允许其他用户读取的文件。如何才能把指定的用户象匿名用户一样限制在他们自己的目录中呢?以下我们以red hat和wu-ftp为例做一介绍。1 创建一个组,用groupadd命令,一般可以就用ftp组,或者任何组名.-----相关命令: groupadd ftpuser-----相关文件: /etc/group-----相关帮助: man groupadd2 创建一个用户,如testuser,建立用户可用adduser命令.如果你已在先前建立了 testuser这个用户,可以直接编辑/etc/passwd文件,把这个用户加入到ftpuser这个组中.-----相关命令: adduser testuser -g ftpuser-----相关文件: /etc/passwd-----相关帮助: man adduser3 修改/etc/ftpaccess文件,加入guestgroup的定义: guestgroup ftpuser我是这样改的,加的是最后5行compress yes alltar yes allchmod no anonymousdelete no anonymousoverwrite no anonymousrename no anonymouschmod yes guestdelete yes guestoverwrite yes guestrename yes guestguestgroup ftpuser除了加 guestgroup ftpuser 这行,其他4行也要加上,否则用户登陆后,虽然可以达到用户不能返回上级目录的目的,
但是却只能上传,不能覆盖、删除文件!-----相关命令: vi /etc/ftpaccess-----相关文件: /etc/ftpaccess-----相关帮助: man ftpaccess,man chroot4 向这个用户的根目录下拷贝必要的文件,拷贝ftp server自带的目录,把 /home/ftp/下的Bin,lib两个目录拷贝到这个用户的根目录下,因为一些命令(主要是ls)需要Lib支持,否则不能列目录和文件.-----相关命令:cp -rf /home/ftp/lib /home/testuser;cp -rf /home/ftp/bin /home/testuser5 另外可别忘了关掉用户的telnet权,否则就白做了噢. 怎么不让用户telnet呢?很简单: 在/etc/shells里加一行/dev/null ,然后可以直接编辑/etc/passwd文件,把用户的shell设置为/dev/null就可以了.-----相关命令: vi /etc/passwd这一步可以在步骤2 创建一个用户时就先做好.-----相关命令: adduser testuser -g ftpuser -s /dev/null小经验:只要把/home/ftp下的bin和lib目录cp到/etc/skel目录里,以后新建用户都会自动把bin和lib目录CP到用户目录里,当然你也可以加上public_html目录和cgi-bin目录.经过以上设置,testuser这个用户的所有FTP动作将限制在他的/home/testuser目录中。责任编辑 赵毅 zhaoyi#51cto.com TEL:(010)68476636-8001 给力(0票)动心(0票)废话(0票)专业(0票)标题党(0票)路过(0票) 原文:安
全攻略:如何巧妙设定安全的匿名FTP 返回网络安全首页

时间: 2024-09-13 01:57:20

安全攻略:如何巧妙设定安全的匿名FTP的相关文章

上网用傲游之--傲游浏览器强悍截图全攻略

  众所周知,傲游浏览器拥有众多实用功能.在新版(V2.5.1)的"傲游"里面,就有这样一款非常实用的功能--屏幕截图. 立即下载:http://www.duote.com/soft/8181.html 图1:傲游浏览器屏幕截图工具栏 相信朋友们都用过QQ的截图功能吧,但是他仅适用于桌面的截图,而对一些特殊需要,例如网页全屏截图等方面根本不能满足用户的需求!但是傲游的这款截图功能则可以轻松办到,相当方便且智能化! 傲游浏览器截图功能不仅能满足所有的基于桌面的截图,对浏览网页.视频播放时

jspSmartUpload上传下载全攻略

js|攻略|上传|下载 一.安装篇 jspSmartUpload是由www.jspsmart.com网站开发的一个可免费使用的全功能的文件上传下载组件,适于嵌入执行上传下载操作的JSP文件中.该组件有以下几个特点: 1.使用简单.在JSP文件中仅仅书写三五行JAVA代码就可以搞定文件的上传或下载,方便. 2.能全程控制上传.利用jspSmartUpload组件提供的对象及其操作方法,可以获得全部上传文件的信息(包括文件名,大小,类型,扩展名,文件数据等),方便存取. 3.能对上传的文件在大小.类

jspSmartUpload上传下载全攻略(四)

js|攻略|上传|下载 四.文件下载篇 1.下载链接页面download.html 页面源码如下: <!--文件名:download.html作 者:纵横软件制作中心雨亦奇(zhsoft88@sohu.com)--><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>下载</title><meta

jspSmartUpload上传下载全攻略1

js|攻略|上传|下载 一.安装篇 jspSmartUpload是由www.jspsmart.com网站开发的一个可免费使用的全功能的文件上传下载组件,适于嵌入执行上传下载操作的JSP文件中.该组件有以下几个特点: 1.使用简单.在JSP文件中仅仅书写三五行JAVA代码就可以搞定文件的上传或下载,方便. 2.能全程控制上传.利用jspSmartUpload组件提供的对象及其操作方法,可以获得全部上传文件的信息(包括文件名,大小,类型,扩展名,文件数据等),方便存取. 3.能对上传的文件在大小.类

jspSmartUpload上传下载全攻略(三)

js|攻略|上传|下载 三.文件上传篇 ㈠ 表单要求 对于上传文件的FORM表单,有两个要求: 1.METHOD应用POST,即METHOD="POST". 2.增加属性:ENCTYPE="multipart/form-data" 下面是一个用于上传文件的FORM表单的例子: <FORM METHOD="POST" ENCTYPE="multipart/form-data" ACTION="/jspSmartU

jspSmartUpload上传下载全攻略2

js|攻略|上传|下载 C.下载文件常用的方法 1.setContentDisposition 作用:将数据追加到MIME文件头的CONTENT-DISPOSITION域.jspSmartUpload组件会在返回下载的信息时自动填写MIME文件头的CONTENT-DISPOSITION域,如果用户需要添加额外信息,请用此方法. 原型:public void setContentDisposition(String contentDisposition) 其中,contentDisposition

上传下载全攻略jspSmartUpload

js|攻略|上传|下载 一.安装篇 jspSmartUpload是由www.jspsmart.com网站开发的一个可免费使用的全功能的文件上传下载组件,适于嵌入执行上传下载操作的JSP文件中.该组件有以下几个特点: 1.使用简单.在JSP文件中仅仅书写三五行JAVA代码就可以搞定文件的上传或下载,方便. 2.能全程控制上传.利用jspSmartUpload组件提供的对象及其操作方法,可以获得全部上传文件的信息(包括文件名,大小,类型,扩展名,文件数据等),方便存取. 3.能对上传的文件在大小.类

jspSmartUpload上传下载全攻略(二)

js|攻略|上传|下载 二.相关类说明篇 ㈠ File类 这个类包装了一个上传文件的所有信息.通过它,可以得到上传文件的文件名.文件大小.扩展名.文件数据等信息. File类主要提供以下方法: 1.saveAs作用:将文件换名另存. 原型: public void saveAs(java.lang.String destFilePathName) 或 public void saveAs(java.lang.String destFilePathName, int optionSaveAs) 其

PHP安装攻略:PostgreSQL

攻略 以下将说明使用Apache+PHP3+PostgreSQL作为基于Web的数据库平台的安装和配置方法.关于Apache.PHP3和PostgreSQL的更多内容可以从软件的附带文档.Linux的HOWTO文件以及以下站点处找到: Apache: http://www.apache.org PHP3: http://www.php.net PostgreSQL: http://www.postgresql.org 1. PostgreSQL的安装和设置 1.1 获得源程序 PostgreSQ