提高网络服务安全性
匿名FTP的设定 匿名FTP若有正确地设定与管理,将是一项很有价值的服务。这份文件的第一节提供一般 匿名FTP最起始的设定方式。第二节提出当一个网站要在匿名FTP下提供可写入目录区的 相关议题与面临的问题。第三节提供CERT以前的FTP 相关Advisories信息。 `GHM b-a%E S4C8zYzB2JPH
以下的设定方式是由过去许多网站累积的经验与建议组成。我们认为可以让有个别需求的网站拥有不同设定的选择。 \8^'Z#PUZ6Z
I.设定匿名FTP
6Y&E7rzrm5rJ
A.FTP daemon 9flC?0a O
-lR^XBw&x9h]a
网站必须确定目前使用的是最新版本的FTP daemon。 (la+h5EbqhN,@7u9g
]#_%~.o;pz.pTB
B.设定匿名FTP的目录 )E`8R3Df:yg"d
匿名ftp的根目录(~ftp)和其子目录的拥有者不能为ftp帐号,或与ftp相同群组的帐号。这是一般常见的设定问题。假如这些目录被ftp或与ftp相同群组的帐号所拥有,又没有做好防止写入的保护,入侵者便可能在其中增加档案(例如:.rhosts檔)或修改其它档案。许多网站允许使用root帐号。让匿名FTP的根目录与子目录的拥有者是root,所属族群(group)为system,并限定存取权(如chmod 0755),如此只有root有写入的权力,这能帮助你维持FTP服务的安全。
0k&wB u0Ldas
以下是一个匿名ftp目录的设定范例: B1fr uyU*Z
M&JR `_3K4c vD
V:z-_3u*EV v1o
drwxr-xr-x 7 root system 512 Mar 1 15:17 ./0_*^0Cm,bcZ#nX\D
drwxr-xr-x 25 root system 512 Jan 4 11:30 ../*`ph'f.A7`
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/
6C1A iB|+}`
所有的档案和链接库,特别是那些被FTP daemon使用和那些在 ~ftp/bin 与~ftp/etc 中的档案,应该像上面范例中的目录做相同的保护。这些档案和链接库除了不应该被ftp帐号或与ftp相同群组的帐号所拥有之外,也必须防止写入。 /w1dPh7N c:CV
4_Fr%p#hv5XU/k(m"Sn
C.使用合适的密码与群组档案 W(Xx V$W*M
Y+]:O W#@/Y,K*t
我们强烈建议网站不要使用系统中 /etc/passwd 做为~ftp/etc 目录中的密码档案或将系统中 /etc/group 做为 ~ftp/etc目录中的群组档案。在~ftp/etc目录中放置这些档案会使得入侵者取得它们。这些档案是可自定的而且不是用来做存取控制。
NnH"u_
我们建议你在 ~ftp/etc/passwd 与 ~ftp/etc/group 使用代替的档案。这些档案必须由root所拥有。DIR命令会使用这代替的档案来显示档案及目录的拥有者和群组名称。网站必须确定 ~/ftp/etc/passwd档中没有包含任何与系统中 /etc/passwd文件中相同的帐号名称。这些档案应该仅仅包含需要显示的FTP阶层架构中档案与目录的拥有者与所属群组名称。此外,确定密码字段是"整理"过的。例如使用「*」来取代密码字段。
yzjA#b~\
以下为cert中匿名ftp的密码档案范例 j_Ae#q8R
p-~ T:u&^8]t0X
9y3Z[*o8@2i!V
ssphwg:*:3144:20:Site Specific Policy Handbook Working Group::pU4M?6{#W2uz
cops:*:3271:20:COPS Distribution::0y9Ux4|%M9Q{
cert:*:9920:20:CERT::
tools:*:9921:20:CERT Tools::x`2ar4h7bvDT
ftp:*:9922:90:Anonymous FTP::.k&V;FCh%Y)|XRc
nist:*:9923:90:NIST Files::
gAf`a
以下为cert中匿名ftp的群组档案范例 +@F9KS9V
cert:*:20:&E C*cU[tvW2h_*K
ftp:*:90:
naay)A1l:H's(|
Z!M]1F5yH7O(B
II.在你的匿名ftp提供可写入的目录
X3X#n7oe:@^;?
让一个匿名ftp服务允许使用者储存档案是有风险存在的。我们强烈提醒网站不要自动建立一个上传目录,除非已考虑过相关的风险。CERT/CC的事件回报成员接获许多使用上传目录造成非法传输版权软件或交换帐号与密码信息的事件。也接获恶意地将系统档案灌报造成denial of service问题。 ;C(R%dd7`N;lL|
本节在讨论利用三种方法来解决这个问题。第一种方法是使用一个修正过的FTP daemon。第二个方法是提供对特定目录的写入限制。第三种方法是使用独立的目录。 .p5`A#v8Y3L9|)Y;x'b[
:e4I"k]k.nA
A.修正过的FTP daemon
假如你的网站计划提供目录用来做档案上传,我们建议使用修正过的FTP daemon对档案上传的目录做存取的控制。这是避免使用不需要的写入区域的最好的方法。以下有一些建议: M9[[IiHUt@#V
1.限定上传的档案无法再被存取, 如此可由系统管理者检测后,再放至于适当位置供人下载。
2.限制每个联机的上传资料大小。 lee w3Gu@$S
t+W?9x N0Co4g
3.依照现有的磁盘大小限制数据传输的总量。
.V4gB,}3B'y-d3q-m!N"K
4.增加登录记录以提前发现不当的使用。 $U0Ik[9e6Q%A
若您欲修改FTP daemon, 您应该可以从厂商那里拿到程序代码,或者您可从下列地方取得公开的FTP程序原始码:
wuarchive.wustl.edu ~ftp/packages/wuarchive-ftpd