OpenBSD的ftpd程序没有配置文件,就靠设置运行参数进行配置。所有参数的含义都可以在ftpd

的man文档中获得详细信息:

$ man ftpd

ftpd程序的启动有三种方法(inetd/"rc file"/"command line"):

1: inetd方式:

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

ftp stream tcp nowait root /usr/libexec/ftpd ftpd -US

这里为"ftpd"传递了两个参数"-US"。当然你还可以组合自己想要的参数。(一些常用参数的含义已在下文给出)。

inetd方式还需要同时启动inetd服务,OpenBSD默认启动了inetd(可以看看 /etc/rc.conf中的"inetd_flags"变量的值)。

2: "rc"方式;

所谓"rc"方式,指的就是通过配置"/etc/rc.conf"或者"/etc/rc.conf.local"来启动系统服务。

为"/etc/rc.conf"中的"ftpd_flags"变量设置参数,并确保该行没有被注释掉。

这种方法需要在重新启动系统后才会生效;

3: 直接在命令行下执行ftpd命令,这样就不需要重启系统了:

# /usr/libexec/ftpd -4DllUS

ftpd 程序的终止:

1: 如果不需要提供ftp服务,则在 /etc/rc.conf中将 ftpd_flags 变量注释掉(在该行最开头加一个"#"符号);

2: 使用ps查看ftpd的PID,或者查看"var/run/ftpd.pid"文件,然后"kill PID"。

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

-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记录下日志。如果这个选

项被指定两次,所有get/put/append/delete/make directory/remove directory/rename

操作以及所操作的文件都将被记录进日志。

-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_flags的值简单地设置为"-D"即可

(虽然这时候的设置仍然允许匿名用户登录,但是因为系统中没有"ftp"用户,所以无法登录)。当

然你也可以多设置一些参数。比如:

ftpd_flags="-4DllUSn"

参考上面几个常用选项的说明,你就会明白这是什么意思了。

2:允许匿名用户登录访问FTP资源;

因为匿名用户登录到FTP服务器后,实际上是一个"ftp"用户的身份进行所有操作,所以出于安全考虑,

这个用户的权限通常被设置得很低。比如:

1:不为该用户提供一个可用的shell,使其无法登录系统;

2:没有一个可用的密码(即FAQ上说的"This account shouldn't have a usable password;");

3:登录系统后被chroot;

......

接下来我们要做的就是按照上面列出的三个要求来添加和设置这个低权限、处处受限的"ftp"用户。

2.1:添加"ftp"帐户以提供匿名访问;

2.1.1:在/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 staff [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 files from /etc/skel to /var/ftp

Add another user? (y/n) [y]: n

Goodbye!

#

到这里,添加用户的工作就完成了。还需要把从 /etc/skel 复制到 $HOME 目录的一些"dot files"给删除,

以免暴露信息。"dot files"的第一行通常会有一些系统的信息,比如"~/.cshrc"文件中就有这么一句:

# $OpenBSD: dot.cshrc,v 1.5 2005/02/16 06:56:57 matthieu Exp $

这至少就告诉了匿名登录的用户,这是个OpenBSD系统。所以把它们删除:

# rm -f /var/ftp/.*

3:为/var/ftp目录设置正确的权限以保证安全性;

3.1:"~ftp"目录;

"~ftp"目录表示"ftp"用户的主目录,在本例中就是"/var/ftp"目录。

将它的owner设置为"root",权限设置为任何人都不可写(555):

# chown -R root:wheel /var/ftp

# chmod -R 555 /var/ftp

3.2:"~ftp/bin"目录;

这个目录并不是必须的。如果希望匿名用户登录到FTP后能够执行一些command,就可以将command

复制到这个目录下。所有的command的权限都应该设置为只允许执行(111)。

# mkdir /var/ftp/bin    # chown -R root:ftp /var/ftp/bin    #COPY YOUR PROGRAMS TO /var/ftp/bin,AND THEN:

# chmod -R 111 /var/ftp/bin/*

3.3:"~ftp/etc"目录;

和"~ftp/bin"目录一样,这也是个可选的,并不推荐创建它。(更多关于该目录设置的信息请查看"ftpd"

的man文档)。

3.4:"~ftp/pub"目录:

这个目录用来存放你希望被匿名用户访问的文件。权限应该设置为555。

# chown -R root:ftp /var/ftp/pub

# chmod -R 555 /var/ftp/pub

这里虽然提到了创建三个目录,但是实际上我们只需要创建"~ftp/pub"目录并设置好权限就可以了。

4: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目录下。

5:其他一些相关文件;

/etc/ftpusers -- 列出了所有不受欢迎的用户。列在该文件中的用户都无法登录ftp。

/etc/ftpwelcome -- 欢迎信息。登录上ftp的用户都将在登录时看到这一信息。

/etc/motd -- 如果"/etc/ftpwelcome"文件不存在,则使用"/etc/motd"文件的内容做为欢迎信息。

.message -- 这个文件可以被放置在"~ftp"目录下的任何一个子目录中。用户进入该目录时就会显示这个文件中的内容。

openbsd系统可以做什么服务器,OpenBSD 3.8 release 架设FTP服务器相关推荐

  1. CryptoTab 服务器_如何架设FTP服务器,如何架设FTP服务器,具体架设方法

    FTP服务器,则是在互联网上提供存储空间的计算机,它们依照FTP协议提供服务. FTP的全称是File Transfer Protocol(文件传输协议).顾名思义,就是专门用来传输文件的协议.简单地 ...

  2. qnap威联通作文件服务器,QNAP威联通NAS 架设FTP服务器.docx

    QNAP威联通NAS 架设FTP服务器 QNAP威联通NAS 架设FTP服务器轻松架设一台属于自己的文件传输服务器(FTP Server)文件传输服务器(FTP Server):让你方便的分享与交换大 ...

  3. Windows XP系统下架设FTP服务器实例详解

    Windows XP系统下架设FTP服务器实例详解 [实例1]公司网络环境:ADSL + 路由器 + 交换机  + PC机,我们单位要在客户端架设FTP服务器,当然在服务器端也是可以的,主要用于内部资 ...

  4. 虚拟机上CentOS 7 架设ftp服务器 最新版系统超详细!!

    被这玩意弄的死去活来,搞了这么长时间终于通了...看了很多教程感觉说的都不错,但对像我这样的菜鸟还是不够照顾啊...还是觉得自己写一篇入门级的更好一些,也希望能方便大家! 我们假定此时CentOS刚刚 ...

  5. Ubuntu下架设FTP服务器(转)

    Ubuntu下架设FTP服务器 Linux下提供了很多的ftp服务器,这里我选用了安全,快速,简单的vsftpd作为FTP服务器.本文是我在自己的Ubuntu 10.10 -32 位系统下搭建的.搭建 ...

  6. 用LINUX架设FTP服务器

    第二章 用LINUX架设FTP服务器 2.1 什么是FTP 2.2 安装Wu-FTP 2.3 让FTP服务器跑起来 2.4 配置文件的设置 2.5 开设只能FTP的帐户 2.6 设置虚拟FTP主机 2 ...

  7. Linux下使用vsftpd架设FTP服务器过程

    FTP可以通过很多软件实现,我们linux下面最常用的FTP服务器架设使用vsftpd软件 vsftpd 是一个基于GPL发布的FTP服务器软件.其中的vs是" Very Secure&qu ...

  8. 局域网中用centos6架设ftp服务器-配置文件说明

    2019独角兽企业重金招聘Python工程师标准>>> FTP简介: FTP是明文传输的,而且某些FTP服务器软件的安全历史问题也是很严重的. 因为ssh技术的产生,目前较为安全的F ...

  9. myftpadmin+proftpd+mysql架设ftp服务器_proftpd – 碎言碎语

    安装环境: 操作系统centos-5.2 mysql 5.0.67 源代码安装在/usr/local/mysql目录 1.proftpd-1.3.1源代码编译安装 ./configure --pref ...

  10. ftp服务器可以创建文件夹吗,ftp服务器如何创建文件夹

    ftp服务器如何创建文件夹 内容精选 换一换 从OBS导入数据到集群之前,需要提前准备数据源文件,并将数据源文件上传到OBS.如果您的数据文件已经在OBS上了,则只需完成上传数据到OBS中的2~3.准 ...

最新文章

  1. java map随机取值_HashMap随机取值和迭代器取值的对比
  2. matlab矢量相乘并打印显示
  3. OSError: exception: access violation reading 0x0000000000000001
  4. dovecot vsz_limit参造成foxmail、outlook等客户端工具接收邮件有时候报错
  5. 蓝桥杯练习系统习题-基础训练2
  6. 【ABAP】SAP销售订单定价值变更
  7. 本人的博客只是工作期间随手记录的笔记而已,所以不会很详尽,由此给您带来的不便,恳请多多包涵~...
  8. CUDA在Debug下编译有错而Release下无错
  9. ffmpeg.exe 笔记
  10. where和having区别
  11. python国内源很慢_软件下载太慢,为linux,R,python,conda配置国内源,让你快速下载安装大量国外软件...
  12. python下载哪个版本好-Python下载哪个版本比较好?
  13. OpenCV-Python实战(18)——深度学习简介与入门示例
  14. web-登陆界面html-数据库
  15. Android面试:说一下 LiveData 的 postValue ?与SetValue有什么区别?连续调用会有什么问题?为什么?
  16. python小数乘法计算题_100道小数乘法计算题
  17. 关于使用ArcGIS裁剪栅格后像元值发生变化的问题
  18. web2.0创业时代将终结
  19. script type=text/JavaScript是什么
  20. 模拟电子电路基础——放大器理解与梳理

热门文章

  1. java手机飞信_手机飞信JAVA通用版 手机飞信2011通用版
  2. Linux系统u盘win7没驱动程序,u盘安装win7找不到设备驱动程序,教您解决u盘安装win7找不到设备驱动程序...
  3. 程序员到高级程序员,只需要10个步骤!
  4. 云计价i20快速入门技巧——“附加费”应用
  5. background 渐变背景
  6. PHP安装rabbitmq扩展
  7. 《甄嬛传》计谋汇总, 本文忠实于《后宫 甄嬛传》第1本~第7本+番外原文,而非电视剧。
  8. html中左三角怎么写,css3三角形怎么写?
  9. 关于移动MM购买的相关资料
  10. python结巴分词的问题_python—结巴分词的理解