当前位置:首页 > 服务器类 > Linux服务器 > > OpenBSD自带ftpd程序搭建ftp服务器

OpenBSD自带ftpd程序搭建ftp服务器

点击次数:25 次 发布日期:2008-11-22 09:40:13 作者:源代码网
源代码网推荐
写在前面

本文参考OpenBSD3.8的官方FAQ文档和ftpd的man文档写成,更全面的信息请参看这两个文件。
·FAQ:SettingupAnonymousFTPServices
·ManualPage:ftpd
所有操作均在OpenBSD3.8Release上测试通过。
注:本文可以任意转载,但请保留作者信息,谢谢。

ftpd的三种启动方式

OpenBSD的ftpd程序没有配置文件,就靠设置运行参数进行配置。所有参数的
含义都可以在ftpd的man文档中获得详细信息:
$manftpd
ftpd程序的启动有三种方法:
·inetd方式
·"rc"方式
·直接在命令行下执行ftpd命令

1、inetd方式

在"etc/inetd.conf"文件中有这么一行:

ftpstreamtcpnowaitroot/usr/libexec/ftpdftpd-US
这里为"ftpd"传递了两个参数"-US"。当然,你还可以组合自己想要的参数。
(一些常用参数的含义已在下文给出)。使用inetd方式,ftpd由inetd进程管
理,所以需要启动inetd服务才能启动ftpd。在OpenBSD的默认设置中,inetd被
配置为随系统启动。查看"/etc/rc.conf"中的"inetd"变量的值:
inetd=YES

2、"rc"方式

所谓"rc"方式,指的就是通过修改"/etc/rc.conf"或者"/etc/rc.conf.local"文件中变
量的值,为服务的启动添加"entry",使服务能够随系统启动。使用"rc"方式启
动fttpd,只需要将"/etc/rc.conf"中的"ftpd_flags"变量设置为自己组合好的参数
即可。这种方法需要在系统重启后服务才会随系统启动(这里的参数暂时使用
与"inetd"方式相同的参数):

ftpd_flags="-US"

3、直接在命令行执行ftpd命令

这种方法的好处是不需要重新启动系统就可以启动ftpd服务:

#/usr/libexec/ftpd-4DllUS
停止ftpd

1、"/etc/rc.conf"

如果不需要ftpd随系统启动,则在"/etc/rc.conf"文件中将"ftpd_flags"变量的值设
置为"NO"”:

ftpd_flags="NO"

2、#killPID
如果需要现在就结束ftpd进程,则使用killPID"的方式来实现:

#kill$(cat/var/run/ftpd.pid)
ftpd常用参数

以下是ftpd常用的一些参数(这里列出的只是常用的,并不是全部。更多的参
数请查看OpenBSD的ManualPage。

·-4如果指定了-D"参数,则强制ftpd只使用IPv4地址。
·-6和-4"的解释类似;如果指定了-D"参数,则强制ftpd只使用IPv6地址。
·-A只允许匿名登录(除非指定了-n"选项)。
·-D如果指定了该参数,ftpd将做为daemon运行,监听ftpd端口并且fork子进程对连接进行处理。在繁忙的服务器上,这样可以减少系统负载,与使用inetd方式启动ftpd比起来,这种方式使用更少的系统资源。
·-d使用LOGFTP将Debug信息写入syslog。
·-l每个成功和失败的ftpsession都将由LOGFTP工具通过syslog记录下日志。如果这个选项被指定两次(-ll),所有get/put/append/delete/make、directory/remove、dire操作以及所操作的文件都将被记录进日志。
·-U每个并发的ftpsession都被记录到日志文件/var/run/utmp,记录的格式就象who(1)命令的输出一样。
·-n禁止匿名登录。默认是允许的。
·-S如果设置了这个参数,ftpd将会把所有匿名用户的下载情况记录在文件/var/log/ftpd中(如果该文件存在的话)。
·-Tmaxtimeout连接超时的时间限制。默认是2小时。
·-umask强制设置umask为指定的mask。而不是使用/etc/login.conf中的设置(/etc/login.conf中通常设置为022),并且不允许chmod。

常用参数组合

看了上面几个常用选项的含义,你应该可以组合出合适的选项来满足自己的功能需求了。

1、只允许使用系统帐号登录FTP
因为匿名用户登录需要使用到系统中的一个名为"ftp"的帐户(更多关于该帐户的描述,请看本文下半部分),而OpenBSD系统中默认没有该帐户,需要手动建立并且设置正确的权限,所以如果只允许用户通过系统帐号登录FTP服务器,则只需要在/etc/rc.conf中将ftpd°ags的值简单地设置为"-D"即可(虽然这时候的设置仍然允许匿名用户登录,但是因为系统中没有"ftp"用户,所以无法登录)。当然你也可以多设置一些参数。比如:

ftpd°ags="-4DllUSn"
参考上面几个常用选项的说明,你就会明白这是什么意思了。
2、允许匿名用户登录访问FTP资源
因为匿名用户登录到FTP服务器后,实际上是以ftp"用户的身份进行所有操作,所以出于安全考虑,这个用户的权限通常被设置得很低。比如:
·不为该用户提供一个可用的shell,使其无法登录系统;
·没有一个可用的密码(即FAQ上说的"Thisaccountshouldn"thaveausablepassword;");
·登录系统后被chroot;
·......

源代码网供稿.
网友评论 (0)
会员中心
服务器类
本站推荐
服务器类之精华