首页 | 邮件资讯 | 技术教程 | 解决方案 | 产品评测 | 邮件人才 | 邮件博客 | 邮件系统论坛 | 软件下载 | 邮件周刊 | 热点专题 | 工具
网络技术 | 操作系统 | 邮件系统 | 客户端 | 电子邮箱 | 反垃圾邮件 | 邮件安全 | 邮件营销 | 移动电邮 | 邮件软件下载 | 电子书下载

操作系统

Windows 9X | Linux&Uinx | Windows Server | 其它操作系统 | Vista | FreeBSD | Windows 7 |
首页 > 操作系统 > 其它操作系统 > OpenBSD自带ftpd程序搭建ftp服务器 > 正文

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

出处:5DMail.Net收集整理 作者:请作者联系 时间:2006-11-21 11:21:00
写在前面

本文参考OpenBSD 3.8的官方FAQ文档和ftpd的man文档写成,更全面的信息请参看这两个文件。
·FAQ: Setting up Anonymous FTP Services
·Manual Page: ftpd
所有操作均在OpenBSD 3.8 Release上测试通过。
注:本文可以任意转载,但请保留作者信息,谢谢。

ftpd的三种启动方式

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

1、inetd方式

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

ftp stream tcp nowait root /usr/libexec/ftpd ftpd -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、# kill PID
如果需要现在就结束ftpd进程,则使用\kill PID"的方式来实现:

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

以下是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"用户,所以无法登录)。当然你也可以多设置一些参数。比如:

ftpd °ags="-4DllUSn"

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

接下来我们要做的就是按照上面列出的三个要求来添加和设置这个低权限、处处受限的"ftp"用户。
1、添加"ftp"帐户以提供匿名访问
在/etc/shells中添加一个无法实际使用的shell设置"ftp"使用这个shell的目的,是不允许它通过shell登录到系统中。通常我们会有两种选择:
· /sbin/nologin
· /usr/bin/false
为了在添加用户时可以使用这两个shell,我们可以这样做:

# echo '/sbin/nologin' >> /etc/shells
# echo '/usr/bin/false' >> /etc/shells

或者在未将它们加入到/etc/shells的情况下,在使用adduser添加帐户时加上"-shell"参数:
# adduser -shell /sbin/nologin
Enter username []: ftp
Enter full name []: anonymous ftpd user
Enter shell bash csh ksh nologin sh [/sbin/nologin]:
......

这里在询问该用户使用何种shell时就出现了/sbin/nologin 。如果不带这个参
数,将无法使用它:
# adduser
Enter username []: ftp
Enter full name []: anonymous ftpd user
Enter shell bash csh ksh nologin sh [bash]: /sbin/nologin
/sbin/nologin: is not allowed!
Enter shell bash csh ksh nologin sh [bash]:

这里就提示了不允许使用/sbin/nologin 做为shell使用。

添加帐户

这里使用"adduser -s shell /sbin/nologin"来添加一个这样的'ftp'帐户做为示例,并将该用户的$HOME目录设置为"/var/ftp":

# adduser -shell /sbin/nologin -home /var
Use option \-silent" if you don't want to see all warnings and questions.
Reading /etc/shells
Check /etc/master.passwd
Check /etc/group
Ok, let's go.
Don't worry about mistakes. I will give you the chance later to correct any input.
Enter username []: ftp
Enter full name []: anonymous ftpd user
Enter shell bash csh ksh nologin sh [/sbin/nologin]:ENTER
Uid [1001]:ENTER
Login group ftp [ftp]:ENTER
Login group is \ftp". Invite ftp into other groups: guest no
no
: ENTER
Login class daemon default sta. [default]:ENTER
Enter password []: ENTER # 在此直接按ENTER键。

这样就可以设置一个不可用的密码。

Set the password so that user cannot logon? (y/n) [n]: y
Name: ftp
Password: ****
Fullname: anonymous ftpd user
Uid: 1001
Gid: 1001 (ftp)
Groups: ftp
Login Class: default
HOME: /var/ftp
Shell:
OK? (y/n) [y]: y
Added user \ftp"
Copy ˉles from /etc/skel to /var/ftp
Add another user? (y/n) [y]: n
Goodbye!
#

到这里,添加用户的工作就完成了。还需要把系统从'/etc/skel' 复制到$HOME目录的一些"dot ˉles"给删除,以免暴露信息。'dot ˉles'的第一行通常会有一些系统的信息,比如' /.cshrc'文件中就有这么一句:
# $OpenBSD: dot.cshrc,v 1.5 2005/02/16 06:56:57 matthieu Exp $

这至少就告诉了匿名登录的用户,这是个OpenBSD系统。所以建议把它们删除:
# rm -f /var/ftp/.*
为FTP目录设置正确的权限

1、'ftp'目录
"ftp"目录表示"ftp"用户的主目录,在本例中就是"/var/ftp"目录。将它的owner设置为"root",权限设置为任何人都不可写(555):

# chown -R root:wheel /var/ftp
# chmod -R 555 /var/ftp

2、'ftp/bin'目录
这个目录并不是必须的。如果希望匿名用户登录到FTP后能够执行一些command,就可以将command 复制到这个目录下。所有的command的权限都应该设置为只允许执行(111)。
# mkdir /var/ftp/bin
# chown -R root:ftp /var/ftp/bin
# chmod -R 111 /var/ftp/bin/*

3、'ftp/etc'目录
和"ftp/bin"目录一样,这也是个可选的,并不推荐创建它。(更多关于该目录设置的信息请查看"ftpd" 的man文档)。
4、'ftp/pub"目录
这个目录用来存放你希望被匿名用户访问的文件。权限应该设置为555。
# chown -R root:ftp /var/ftp/pub
# chmod -R 555 /var/ftp/pub

这里虽然提到了创建三个目录,但是实际上我们只需要创建' ftp/pub'目录并设置好权限就可以了。
chroot匿名登录的用户

'ftpd'会将'/etc/ftpchroot'文件中列出的用户都chroot。要使'ftp'用户在登录ftp后被chroot,只需要简单地把用户名添加到这个文件中就可以了。这是一个示例文件:

# file: /etc/ftpchroot
# $OpenBSD: ftpchroot,v 1.3 1996/07/18 12:12:47 deraadt Exp $
##
list of users (one per line) given ftp access to a chrooted area.
# read by ftpd(8).
ftp
bibby

'ftpd'在启动时会读取这个文件,如果'ftp'和'bibby'这两个用户登录ftp,将被分
别chroot到自己的$HOME目录下。
其他一些相关文件

· /etc/ftpusers { 列出了所有不受欢迎的用户。列在该文件中的用户都无法
登录ftp服务器。
· /etc/ftpwelcome { 欢迎信息。登录的用户都将在登录时看到这一信息。
· /etc/motd { 如果'/etc/ftpwelcome'文件不存在,则使用'/etc/motd'文件的内容做为欢迎信息。
2 .message { 这个文件可以被放置在' ftp'目录下的任何一个子目录中。用户进入该目录时就会显示这个文件中的内容。

相关文章 热门文章
  • OpenBSD4.0 PostgreSQL8.1.5数据库的安装
  • OpenBSD3.8+PF+PFSYNC+CARP
  • OpenBSD2.8服务器配置实务手册
  • OpenBSD入门
  • NetBSD操作系统在VMware下的安装指南
  • OpenBSD入门
  • SCO UNIX系统安装全图解
  • 怎样选择服务器操作系统?
  • Netware 6.5操作系统安装全程图解
  • 在Fedora core 4.0 加载NTFS和FAT32分区详述
  • IBM专家解析UNIX和Windows之间区别
  • Gentoo 完整的USE参数清单中文详解
  • Fedora Core下声卡驱动全功略
  • 建立针对arm-linux的交叉编译环境
  • Debian服务器设置入门教程之一
  • OpenBSD2.8服务器配置实务手册
  • 自由广告区
     
    最新软件下载
  • SharePoint Server 2010 部署文档
  • Exchange 2010 RTM升级至SP1 教程
  • Exchange 2010 OWA下RBAC实现的组功能...
  • Lync Server 2010 Standard Edition 标..
  • Lync Server 2010 Enterprise Edition...
  • Forefront Endpoint Protection 2010 ...
  • Lync Server 2010 Edge 服务器部署文档
  • 《Exchange 2003专家指南》
  • Mastering Hyper-V Deployment
  • Windows Server 2008 R2 Hyper-V
  • Microsoft Lync Server 2010 Unleashed
  • Windows Server 2008 R2 Unleashed
  • 今日邮件技术文章
  • 腾讯,在创新中演绎互联网“进化论”
  • 华科人 张小龙 (中国第二代程序员 QQ...
  • 微软推出新功能 提高Hotmail密码安全性
  • 快压技巧分享:秒传邮件超大附件
  • 不容忽视的邮件营销数据分析过程中的算..
  • 国内手机邮箱的现状与未来发展——访尚..
  • 易观数据:2011Q2中国手机邮箱市场收入..
  • 穿越时空的爱恋 QQ邮箱音视频及贺卡邮件
  • Hotmail新功能:“我的朋友可能被黑了”
  • 入侵邻居网络发骚扰邮件 美国男子被重..
  • 网易邮箱莫子睿:《非你莫属》招聘多过..
  • 中国电信推广189邮箱绿色账单
  • 最新专题
  • 鸟哥的Linux私房菜之Mail服务器
  • Exchange Server 2010技术专题
  • Windows 7 技术专题
  • Sendmail 邮件系统配置
  • 组建Exchange 2003邮件系统
  • Windows Server 2008 专题
  • ORF 反垃圾邮件系统
  • Exchange Server 2007 专题
  • ISA Server 2006 教程专题
  • Windows Vista 技术专题
  • “黑莓”(BlackBerry)专题
  • Apache James 专题
  • 分类导航
    邮件新闻资讯:
    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营销 | 网络营销 | 营销技巧 |营销案例
    邮件人才:招聘 | 职场 | 培训 | 指南 | 职场
    解决方案:
    邮件系统|反垃圾邮件 |安全 |移动电邮 |招标
    产品评测:
    邮件系统 |反垃圾邮件 |邮箱 |安全 |客户端
    广告联系 | 合作联系 | 关于我们 | 联系我们 | 繁體中文
    版权所有:邮件技术资讯网©2003-2010 www.5dmail.net, All Rights Reserved
    www.5Dmail.net Web Team   粤ICP备05009143号