本文参考OpenBSD 3.8的官方FAQ文档和ftpd的man文档写成,更全面的信息请参看这两个文件。
·FAQ: Setting up Anonymous FTP Services
·Manual Page: ftpd
所有操作均在OpenBSD 3.8 Release上测试通过。
注:本文可以任意转载,但请保留作者信息,谢谢。
OpenBSD的ftpd程序没有配置文件,就靠设置运行参数进行配置。所有参数的
含义都可以在ftpd 的man文档中获得详细信息:
$ man ftpd
ftpd程序的启动有三种方法:
·inetd方式
·'rc'方式
·直接在命令行下执行ftpd命令
1、inetd方式
在'etc/inetd.conf'文件中有这么一行:
2、'rc'方式
所谓'rc'方式,指的就是通过修改'/etc/rc.conf'或者'/etc/rc.conf.local'文件中变
量的值,为服务的启动添加'entry',使服务能够随系统启动。使用'rc'方式启
动fttpd,只需要将'/etc/rc.conf'中的'ftpd_flags'变量设置为自己组合好的参数
即可。这种方法需要在系统重启后服务才会随系统启动(这里的参数暂时使用
与'inetd'方式相同的参数):
3、直接在命令行执行ftpd命令
这种方法的好处是不需要重新启动系统就可以启动ftpd服务:
1、'/etc/rc.conf'
如果不需要ftpd随系统启动,则在'/etc/rc.conf'文件中将'ftpd_flags'变量的值设
置为"NO"”:
2、# kill PID
如果需要现在就结束ftpd进程,则使用\kill PID"的方式来实现:
以下是ftpd 常用的一些参数(这里列出的只是常用的,并不是全部。更多的参
数请查看OpenBSD 的Manual Page。
· -4 如果指定了\-D"参数,则强制ftpd 只使用IPv4地址。
· -6 和\-4"的解释类似;如果指定了\-D"参数,则强制ftpd只使用IPv6地址。
· -A 只允许匿名登录(除非指定了\-n"选项)。
· -D 如果指定了该参数,ftpd 将做为daemon运行,监听ftpd 端口并且fork子进程对连接进行处理。在繁忙的服务器上,这样可以减少系统负载,与使用inetd 方式启动ftpd比起来,这种方式使用更少的系统资源。
· -d 使用LOG FTP将Debug信息写入syslog。
· -l 每个成功和失败的ftp session 都将由LOG FTP 工具通过syslog记录下日志。如果这个选项被指定两次(-ll),所有get/put/append/delete/make、 directory/remove、dire操作以及所操作的文件都将被记录进日志。
· -U 每个并发的ftp session都被记录到日志文件/var/run/utmp,记录的格式就象who(1)命令的输出一样。
· -n 禁止匿名登录。默认是允许的。
· -S 如果设置了这个参数,ftpd 将会把所有匿名用户的下载情况记录在文件/var/log/ftpd 中(如果该文件存在的话)。
· -T maxtimeout 连接超时的时间限制。默认是2小时。
· -u mask 强制设置umask为指定的mask。而不是使用/etc/login.conf 中的设置(/etc/login.conf 中通常设置为022),并且不允许chmod。
看了上面几个常用选项的含义,你应该可以组合出合适的选项来满足自己的功能需求了。
1、只允许使用系统帐号登录FTP
因为匿名用户登录需要使用到系统中的一个名为"ftp"的帐户(更多关于该帐户的描述,请看本文下半部分),而OpenBSD系统中默认没有该帐户,需要手动建立并且设置正确的权限,所以如果只允许用户通过系统帐号登录FTP服务器,则只需要在/etc/rc.conf 中将ftpd °ags 的值简单地设置为"-D"即可(虽然这时候的设置仍然允许匿名用户登录,但是因为系统中没有"ftp"用户,所以无法登录)。当然你也可以多设置一些参数。比如:
接下来我们要做的就是按照上面列出的三个要求来添加和设置这个低权限、处处受限的"ftp"用户。
1、添加"ftp"帐户以提供匿名访问
在/etc/shells中添加一个无法实际使用的shell设置"ftp"使用这个shell的目的,是不允许它通过shell登录到系统中。通常我们会有两种选择:
· /sbin/nologin
· /usr/bin/false
为了在添加用户时可以使用这两个shell,我们可以这样做:
添加帐户
这里使用"adduser -s shell /sbin/nologin"来添加一个这样的'ftp'帐户做为示例,并将该用户的$HOME目录设置为"/var/ftp":
1、'ftp'目录
"ftp"目录表示"ftp"用户的主目录,在本例中就是"/var/ftp"目录。将它的owner设置为"root",权限设置为任何人都不可写(555):
'ftpd'会将'/etc/ftpchroot'文件中列出的用户都chroot。要使'ftp'用户在登录ftp后被chroot,只需要简单地把用户名添加到这个文件中就可以了。这是一个示例文件:
· /etc/ftpusers { 列出了所有不受欢迎的用户。列在该文件中的用户都无法
登录ftp服务器。
· /etc/ftpwelcome { 欢迎信息。登录的用户都将在登录时看到这一信息。
· /etc/motd { 如果'/etc/ftpwelcome'文件不存在,则使用'/etc/motd'文件的内容做为欢迎信息。
2 .message { 这个文件可以被放置在' ftp'目录下的任何一个子目录中。用户进入该目录时就会显示这个文件中的内容。
自由广告区 |
分类导航 |
邮件新闻资讯: IT业界 | 邮件服务器 | 邮件趣闻 | 移动电邮 电子邮箱 | 反垃圾邮件|邮件客户端|网络安全 行业数据 | 邮件人物 | 网站公告 | 行业法规 网络技术: 邮件原理 | 网络协议 | 网络管理 | 传输介质 线路接入 | 路由接口 | 邮件存储 | 华为3Com CISCO技术 | 网络与服务器硬件 操作系统: Windows 9X | Linux&Uinx | Windows NT Windows Vista | FreeBSD | 其它操作系统 邮件服务器: 程序与开发 | Exchange | Qmail | Postfix Sendmail | MDaemon | Domino | Foxmail KerioMail | JavaMail | Winwebmail |James Merak&VisNetic | CMailServer | WinMail 金笛邮件系统 | 其它 | 反垃圾邮件: 综述| 客户端反垃圾邮件|服务器端反垃圾邮件 邮件客户端软件: Outlook | Foxmail | DreamMail| KooMail The bat | 雷鸟 | Eudora |Becky! |Pegasus IncrediMail |其它 电子邮箱: 个人邮箱 | 企业邮箱 |Gmail 移动电子邮件:服务器 | 客户端 | 技术前沿 邮件网络安全: 软件漏洞 | 安全知识 | 病毒公告 |防火墙 攻防技术 | 病毒查杀| ISA | 数字签名 邮件营销: Email营销 | 网络营销 | 营销技巧 |营销案例 邮件人才:招聘 | 职场 | 培训 | 指南 | 职场 解决方案: 邮件系统|反垃圾邮件 |安全 |移动电邮 |招标 产品评测: 邮件系统 |反垃圾邮件 |邮箱 |安全 |客户端 |