分类: BSD
2010-04-25 21:45:53
1.编辑 /etc/inetd.conf
vi /etc/inetd.conf 启动
2 kill -HUP `cat /var/run/inetd.pid`
3 关闭 vi /etc/inetd.conf
kill -HUP `cat /var/run/inetd.pid`
4 开机启动ftp
vi /etc/rc.conf inetd_enable="yes"
5 编辑欢迎信息
编辑220信息
vi /etc/ftpwelcome
格式-
Welcome to 17335 FTP Server !!
This is a welcome message.
NIce to me you.
编辑 230 信息
/etc/ftpmotd 本日讯息 message of the day
格式
This is the message of the day .
It will be shown after user login.
user jackpig login in.
6 加参数调整服务器行为
vi /etc/inetd.conf
ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l -l -d
ftp stream tcp6 nowait root /usr/libexec/ftpd ftpd -l -l -d
( -d ) 记录 FTP 的除错讯息。除了加入这个参数外,您必须修改 /etc/syslog.conf,并加入下列内容以记录 FTP 的讯息。
!ftpd *.* /var/log/ftpd.log
(-h) 不要显示 FTP 服务器的主机名称、软件信息、版本等。
(-l) 记录 FTP 登入成功及失败的讯息。如果您使用二次 -l,则使用者上传、下载、删除、
建立目录时都会留下记录。
预设的记录会留在 /var/log/xferlog 中。
(-o) 限制所有使用者只能上传档案,而无法下载任何档案。
(-r) 限制所有使用者对于服务器内所有档案只能只读,不可以建立目录、
上传、更改档名、或任何会动到档案目录的指令。
7 新增匿名用户
pw adduser ftp
mkdir /home/ftp
chown ftp:ftp /home/ftp
现在就可以用用户名ftp 或 anonymous 登陆
8设置匿名用户的权限
chroot所谓的 chroot 就是将某一个目录变成使用者看到的根目录。例如,我们让使用者 alex 登入后,
将 /home/alex 变成根目录。则 alex 在使用指令「cd /」时,
还是会停留在 /home/alex。如果他使用指令「pwd」查看目前所在路径,
则会显示 /。如此一来,我们就可以确保使用者不会到处乱跑,进入一些不该进入的地方。
这个功能对于提升 FTP 的安全性有莫大的助益。
vi /etc/ftpchroot
alex @guest john /var/ftp @other /var/ftp上述范例中的第一行是设定使用者 alex 登入后,以自己的家目录为根目录。
第二行的 @guest 表示只要是群组为 guest 的使用者,都以自己的家目录为根目录。
而第三、四行分别表示使用者 john 及群组 other 都以 /var/ftp 为根目录。
只要我们善用 chroot 的功能,就可以加强保护系统其它目录,
让没有权利的使用者不可以进入系统目录中。建议您在开放 FTP 服务时,
将所有使用者都加入 /etc/ftpchroot 中。
-M 禁止匿名使用者建立新的目录。
-m 允许匿名使用者覆写一个存在的档案。预设启动 FTP 时,并不允许匿名使用者覆写已经
存在的档案。当使用者上传档案时,如果已经有同档名的档案存在,系统会自动为上传的档案改名。
-o 让匿名使用者只能上传档案,下载档案的功能会被取消。
9 控制联机来源
vi /etc/hosts.allow
# Provide a small amount of protection for ftpd ftpd : localhost : allow ftpd : .nice.guy.example.com : allow ftpd : .evil.cracker.example.com : deny ftpd : ALL : allow如果我们要限制某几个 IP 或网域不能使用 FTP,可以使用下列范例:
# Provide a small amount of protection for ftpd ftpd : localhost : allow ftpd : 210.122.13.5 : deny ftpd : .evil.cracker : deny ftpd : ALL : allow我们在上述范例中拒绝 IP 210.122.13.5 及 evil.cracker 网域的主机使用 FTP,并在最后一行设定其它来源都许可。
如果您要设定只有某些来源可以使用 FTP,而拒绝大多数的主机,则可以设定:
# Provide a small amount of protection for ftpd ftpd : localhost : allow ftpd : 192.168.0. : allow ftpd : my.friend.com : allow ftpd : ALL : deny我们设定了只有本机 (localhost)、192.168.0.x、及 my.friend.com 才可以使用 FTP,其它联机都拒绝。
freebsd自代的ftpd所用到的配置主要有以下几个:
/etc/ftpusers 黑名单列表放在这个文件中的帐号不允许登陆
/etc/ftpchroot 这个文件中的用户 限制了只能访问 用户自己的目录
/etc/ftpwelcome 这个文件存放连接到主站的欢迎信息(未登陆之前的)
/etc/ftpmotd 这个文件存放登陆后的信息文件
/etc/inetd.conf 中开启 ftpd服务
/var/run/nologin 如果这个文件存在则禁止 ftp登陆,
/etc/ftphosts 建立 虚拟主机
可以登陆的用户必须是系统的有效用户匿名用户 需要 专门增加一个 用户 ftp 设置成不能登陆的shell 在他的主目录里面有类似系统的 目录结构 ,对这个里面的目录设置响应的权限,比方说incoming 设置成 chmod 1777 等