一:FTP的安全问题:
(1)建立/etc/ftpusers文件,列入此文件中的用户不能使用ftp服务,考虑安全性该文
件中应包括root,uucp用户。
(2)solaris系统中默认时无/etc/Shells文件,这就为黑客创造了条件,这时用户可以
用任何shell访问系统的ftp服务,如不存在时应考虑建立该文件。
二:自动登录:
如需使用FTP提供的自动登录功能需产生一个名为.netrc的文件,该文件位与用户的home
目录中,.netrc文件的权限要设置为600。 文件格式如下:
machine hostname | default login login_id password password macdef macfilename
例:machine zzft login test password test
defalut login test password test1
第一行使用户test自动登录到主机zzft上建立ftp会话;第二行准许zzft使用默认的帐号登
录到其他服务器上。
三:对于 Anonymous FTP 的用户, in.ftpd 限定了该用户的一些使用权限.
要建立一个Anonymous FTP, 建议按下列的步骤来设置.
1. 建立一个 Anonymous FTP 的 home directory. 这个目录是Anonymous
FTP 的根目录, 所有 Anonymous 所能存取的文件,都在这个目录以下.
假设这个目录为 ~ftp (例如建立在 /export/ftp). 这个目录的属主需为 root, 且对任何
人都不能有写的权限.
2. 建立 ~ftp/bin 这个目录是用来放 Anonymous 所能使用的命令. 一般 来说, 放入 ls
和 pwd 即可.这个目录的属主需为 root, 且对任何人 都不能有写的权限. 目录内, 文件的
mod 需为 111.(ex. %chmod 111 * )
3. 建立 ~ftp/usr/lib 这个目录是用来存放当 Anonymous 用户在使用 FTP时,所会使用到
的 library. 这个目录的属主需为 root, 且对任何人 都不能有写的权限. 你可以把存在
/usr/lib 的下列文件拷贝到这个目录内.
ld.so.1*
libc.so.1*
libdl.so.1*
libmp.so.2*
libnsl.so.1*
libsocket.so.1*
nss_compat.so.1*
nss_dns.so.1*
nss_files.so.1*
nss_nis.so.1*
nss_nisplus.so.1*
nss_xfn.so.1* #没有这个文件可忽略
straddr.so* straddr.so.2*
4. 建立 ~ftp/etc 这个目录是用来存放 FTP 用户及权限.这个目录的 属主需为 root, 且
对任何人都不能有写的权限. 你可以把 /etc/passwd /etc/group 以及 /etc/netconfig 拷
贝到这个目录中. 并且修改 passwd及 group. 在 passwd 这个档中, 你只需留
root,daemon,uucp,ftp这几个 user. 内容 如下: (请按自己的环境设置)
root:x:0:1:Super-User::
daemon:x:1:1:::
uucp:x:5:5:uucp Admin::
ftp:x:30000:400:Anonymous FTP::
在 group 进个档中, 你只需留必需的 group . 如 other (root,daemon的 group),
uucp (uucp 的 group),ftp (ftp 的group). 内容如下: (请按自 己的环境设置)
other::1:
uucp::5:root,uucp
ftp::400:
5. 建立 ~ftp/pub 这个目录是给 Anonymous 存取文件的地方, 也就是一般 我们用
Anonymous FTP 时, 所可以 download file 的地方. 此目录的拥有 者为 ftp 的理者.
而其 mod 需设为 755.
6. 建立 ~ftp/dev 这个目录是当Anonymous FTP用户在执行指令行, 所需用 到的装置. 要
建立这些装置, 要先以 ls -lL 来看下列四个装置的属性.
/dev/zero
/dev/tcp
/dev/udp
/dev/ticotsord
然后再利用 mknod , 在 ~ftp/dev 内建立这四个装置.
例如:
% ls -lL /dev/zero
crw-rw-rw- 1 root root 13, 12 Feb 19 15:00 /dev/zero ^^^ ^^^ ^^^ ^^^^ 则建立
zero 这个 device 的方法为
% mknod zero c 13 12
建立好了之后, 必需将其 mod 设为 666 才不会产生 "permission denied" 的错误息.
7. 建立 ~ftp/usr/share/lib/zoneinfo 这个目录是让 Anonymous 在使用 ls -l 时, 会显
示出正确的时间及日期. 需将其 mod 设为 555
8. in.ftpd 利用 pam 来对用户做 认证,计费管理及session的管理. pam的设置档存放在
/etc/pam.conf .你必需把以下三行加入 pam.conf这个文件里头.
ftp auth required /usr/lib/security/pam_unix.so.1
ftp account required /usr/lib/security/pam_unix.so.1
ftp session required /usr/lib/security/pam_unix.so.1
9. 最后, 要设置 Anonymous FTP 的步骤, 就是开一个 Anonymous 的帐号. 假设
Anonymous FTP 的 root 为 /export/ftp . 则你必需在 /etc/passwd 中加入以下这一行:
ftp:x:30000:30000:Anonymous FTP:/export/ftp:/nosuchshell
并且, 在 /etc/shadow 中加入以下这行: ftp:NP:6445::::::
加好了以后, 你就可以用 Anonymous 来做 FTP 了.....
如果你要一开放一个 incoming 区, 可以按下列的方式做.
1. 建立一个 ~ftp/incoming 的目录, 属主为 root , group 为 ftp 的 group
2. 将 upload 的 mod 设为 777 即可.
除将PUB目录设为755其余设为555
四:FTP的问题
(1)修改超时时间的方法是编辑/etc/inetd.conf文件。
原文件:ftp stream tcp nowait root /usr/sbin/in.ftpd in.ftpd
修改后:ftp stream tcp nowait root /usr/sbin/in.ftpd -t3600 in.ftpd
必须向inetd进程发SIGHUP信号重新启动
(2)无法用mput一次传送多个文件使用glob命令打开文件名扩展的功能:
ftpglob
Globbing truned off
ftpglob
Globbing truned on
(3)FTP的调试开关-d或在ftp下执行debug,会显示会话中交换ftp消息及消息的传递方向