OpenBSD 3.8 release 架设FTP服务器
使用OpenBSD 3.8 release自带的FTPD架设FTP服务器
OpenBSD的ftpd程序没有配置文件,就靠运行参数进行配置。所有参数的含义都可以在ftpd $ man ftpd ftpd程序的启动有三种(id/"rc file"/"mand line" ) 1 id方式 这里为"ftpd"传递了两个参数"-US"。你还可以组合自己想要的参数。(一些常用参数的含义已在下文给出)。 2 "rc"方式; ftpd 程序的终止 1 如果不需要提供ftp服务,则在 /etc/rc.conf 中将 ftpd_flags 变量注释掉(在该行最开头加一个"#"符号); 以下是 ftpd 常用的一些参数(这里列出的只是常用的,并不是全部。更多的参数请查看 ftpd 的man文档) -4 如果指定了"-D"参数,则强制 ftpd 只使用IPv4地址。 看了这几个选项,你应该可以组合出合适的选项来满足自己的功能需求了。 1只允许使用帐号登录FTP; 因为匿名用户登录需要使用到中的一个名为"ftp"的帐户(更多关于该帐户的讨论,请看本文下 ftpd_flags="-4DllUSn" 参考上面几个常用选项的说明,你就会明白这是什么意思了。 因为匿名用户登录到FTP服务器后,实际上是一个"ftp"用户的身份进行所有,所以出于安全考虑, 1不为该用户提供一个可用的shell,使其无法登录; 接下来我们要做的就是按照上面列出的三个要求来添加和这个低权限、处处受限的"ftp"用户。 2.1添加"ftp"帐户以提供匿名访问; 2.1.1在/etc/shells中添加一个无法实际使用的shell "ftp"使用这个shell的目的,是不允许它通过shell登录到中。通常我们会有两种选择 /sbin/nologin 为了在添加用户时可以使用这两个shell,我们可以这样做 或者在未将它们加入到/etc/shells的情况下,在使用adduser添加帐户时加上"-shell"参数 # adduser -shell /sbin/nologin 这里在询问该用户使用何种shell时就出现了 /sbin/nologin 。如果不带这个参数,将无法使用它 # adduser 这里就提示了不允许使用 /sbin/nologin 做为shell使用。 这里使用"adduser -s shell /sbin/nologin"来添加一个这样的"ftp"帐户做为示例,并将该用户的 # adduser -shell /sbin/nologin -home /var Reading /etc/shells Ok, let's go. Name: ftp 到这里,添加用户的工作就完成了。还需要把从 /etc/skel 复制到 $HOME 目录的一些"dot files"给删除, # $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"目录。 # chown -R root:wheel /var/ftp 3.2"~ftp/bin"目录; 这个目录并不是必须的。如果希望匿名用户登录到FTP后能够执行一些mand,就可以将mand # mkdir /var/ftp/bin 3.3"~ftp/etc"目录; 和"~ftp/bin"目录一样,这也是个可选的,并不推荐创建它。(更多关于该目录的信息请查看"ftpd" 3.4"~ftp/pub"目录 这个目录用来存放你希望被匿名用户访问的文件。权限应该为555。 这里虽然提到了创建三个目录,实际上我们只需要创建"~ftp/pub"目录并好权限就可以了。 4chroot匿名登录的用户; "ftpd"会将"/etc/ftpchroot"文件中列出的用户都chroot。要使"ftp"用户在登录ftp后被chroot,只需要简单 # file : /etc/ftpchroot "ftpd"在启动时会读取这个文件,如果"ftp"和"bibby"这两个用户登录ftp,将被分别chroot到自己的$HOME目录下。 5其他一些相关文件; /etc/ftpusers -- 列出了所有不受欢迎的用户。列在该文件中的用户都无法登录ftp。
的man文档中获得详细信息
在"/etc/id.conf"文件中有这么一行
ftp stream tcp nowait root /usr/libexec/ftpd ftpd -US
id方式还需要启动id,OpenBSD默认启动了id(可以看看 /etc/rc.conf 中的"id_flags"变量的值)。
所谓"rc"方式,指的就是通过配置"/etc/rc.conf"或者"/etc/rc.conf.local"来启动。
为"/etc/rc.conf"中的"ftpd_flags"变量参数,并确保该行没有被注释掉。
这种需要在重新启动后才会生效;
3 直接在命令行下执行ftpd命令,这样就不需要重启了
# /usr/libexec/ftpd -4DllUS
2 使用ps查看ftpd的PID,或者查看"var/run/ftpd.pid"文件,然后"kill PID"。
-6 和"-4"的解释类似;如果指定了"-D"参数,则强制ftpd只使用IPv6地址。
-A 只允许匿名登录(除非指定了"-n"选项)。
-D 如果指定了该参数, ftpd 将做为daemon运行, ftpd 端口并且fork子进程对连接进行
处理。在繁忙的器上,这样可以减少负载,与使用 id 方式启动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。
半部分),而OpenBSD系统中没有该帐户,需要手动建立并且正确的权限,所以如果只允许用户
通过帐号登录FTP服务器,则只需要在 /etc/rc.conf 中将 ftpd_flags 的值简单地为"-D"即可
(虽然这时候的仍然允许匿名用户登录,因为中没有"ftp"用户,所以无法登录)。当
然你也可以多一些参数。比如
2允许匿名用户登录访问FTP资源;
这个用户的权限通常被得很低。比如
2没有一个可用的密码(即FAQ上说的"This aount shouldn't have a usable password;");
3登录后被chroot;
......
/usr/bin/false
# echo '/sbin/nologin' >>/etc/shells
# echo '/usr/bin/false' >>/etc/shells
Enter username []: ftp
Enter full name []: anonymous ftpd user
Enter shell bash csh ksh nologin sh [/sbin/nologin]:
......
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]:
$HOME目录为"/var/ftp"
Use option ``-silent'' if you don't want to see all warnings and questions.
Check /etc/master.passwd
Check /etc/group
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
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!
#
以免暴露信息。"dot files"的第一行通常会有一些的信息,比如"~/.cshrc"文件中就有这么一句
将它的owner设置为"root",权限为任何人都不可写(555)
# chmod -R 555 /var/ftp
复制到这个目录下。所有的mand的权限都应该为只允许执行(111)。
# chown -R root:ftp /var/ftp/bin
#COPY YOUR PROGRAMS TO /var/ftp/bin,AND THEN
# chmod -R 111 /var/ftp/bin/
的man文档)。
# chown -R root:ftp /var/ftp/pub
# chmod -R 555 /var/ftp/pub
地把用户名添加到这个文件中就可以了。这是一个示例文件
# $OpenBSD: ftpchroot,v 1.3 1996/07/18 12:12:47 deraadt Exp $
#
# list of users (one per line) given ftp aess to a chrooted area.
# read by ftpd(8).
ftp
bibby
/etc/ftpwele -- 欢迎信息。登录上ftp的用户都将在登录时看到这一信息。
/etc/motd -- 如果"/etc/ftpwele"文件不存在,则使用"/etc/motd"文件的内容做为欢迎信息。
.message -- 这个文件可以被放置在"~ftp"目录下的任何一个子目录中。用户进入该目录时就会显示这个文件中的内容。
网络安全培训
- 网络安全常见漏洞类型 网络安全常见漏洞类型包
- 绿色上网顺口溜七言 绿色上网的宣传标语
- 网络安全等级保护测评 网络安全等级保护条例
- 如何加强网络安全 网络安全隐患有哪些
- 网络安全防护措施有哪些 网络安全等级保护等级
- 如何保障网络安全 如何做好网络安全保障工作
- 维护网络安全的措施有哪些 维护网络安全的主要
- 网络安全工程师好学吗 2024年网络安全工程师好学
- 网络安全注意事项简短 网络安全注意事项100字
- 网络安全面临的挑战 当前网络安全面临的新问题
- 网络安全培训哪个靠谱 网络安全培训找哪个
- 普及网络安全知识内容 普及网络安全教育
- 网络安全防范知识宣传内容 网络安全防范知识宣
- 如何做好网络安全工作 如何做好网络安全工作
- 网络安全常识的丰富内容 网络安全的相关知识
- 青少年网络安全教育片 青少年网络安全知识讲座