免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2228 | 回复: 7
打印 上一主题 下一主题

[NetBSD] [paper]NetBSD1.6下的FTPD服务配制指南 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-04-07 10:32 |只看该作者 |倒序浏览
这几天一直在用NetBSD,因为NetBSD相关的资料非常少,所以只有自己一点一点的摸着走,我把我弄FTPD的过程写出来,希望为大家做个参考,也充实一下NetBSD方面的资料,文中难免有错误之处,还请指正:matthew@arbornet.org

另外,也可以到我的网站上去查看最新版本。
http://www.arbornet.org/~matthew/

NetBSD1.6下的FTPD服务配制指南                       
============================
作者:黑夜编码人(Matthew)
Mail:matthew@arobrnet.org
Http://www.arbornet.org/~matthew/
Apr 08 2003 $20030408

注:任何形式的转载或摘抄请务必保留以上声明信息

NetBSD中自带的FTP守护进程FTPD功能非常强大而且可配制性也很强,本文将向你介绍如何配制它。

1、启动参数。

这里只介绍几个比较有用的。

-a anondir
        指定一个目录供anonymous(匿名)用户访问,并且用户将被限制在这个目录内(即通常说的chroot)。在如果不指定该参数的话anonymous目录将为ftp用户的home目录。

-h hostname
        设置要显示的主机名字,如果不设置则默认显示主机名。

-c confdir
        设置配制文件(如:ftpd.conf、ftpusers等)的文件夹。

-e email
        设置序列符%E的值。

2、限制用户访问

文件/etc/ftpusers控制着哪些用户可以访问和禁止访问FTP服务。其语法如下:

     userglob[][@host] [directive [class]]

参数意义分别如下:
userglob   用户名,可以使用通配符,如:
        matt*          匹配所有用户名以matt开头的用户
        matth?w        匹配所有用户名以matth开头中间一个任意字母最后一个w的用户
        ma[tT][tT]hew  匹配matthew matThew maTthew maTThew

groupglob  用户所在的组名,同样可以使用通配符,规则如上,这里就不再举例了。

host       主机名,可以使用的形式如下:
        192.168.1.7     匹配主机IP为192.168.1.7的主机
        cvs.netbsd.org 匹配主机名为cvs.netbsd.org的主机
        192.168.1/24   匹配IP属于192.168.1.0~192.168.1.255范围内的所有主机
        *.netbsd.org    匹配主机名以.netbsd.org结尾的所有主机

directive  访问权限,如果为allow或yes表示匹配的用户可以访问FTP服务,如果为deny或no表示禁止访问,如果该项为空则默认禁止用户访问。

class      设置该用户的类别(稍后会讲到)

当有用户访问FTP服务的时候,FTPD将会从/etc/ftpusers中的第一行依次往下匹配,一旦有任何一条匹满足条件则停止匹配,如果到最后一行都没有匹配的则将允许该用户访问。
   
3、将用户限制在一个范围内

文件/etc/ftpchroot用于决定哪些用户的访问会被限制(chroot)到一个指定的目录内。对于这个指定的目录要ftpd.conf中设置的值要么就是该用户的home目录。如果/etc/ftpchroot目录不存在或者为空,则所有用户的FTP会话根目录将不会改变,用户也不会受限于某个目录下。
该文件每行的语法与/etc/ftpusers相同,但少了一个class项,其中当directive为allow或yes的时候表示chroot生效,如果为deny或no则表示chroot无效。

4、/etc/ftpd.conf的配置

该文件的是FTPD的详细配置文件,许多高级的功能都在这里进行配制。其语法如下:

        command class [arguments]

其中command为要设置的命令,class为该命令生效的类别,也就是我们在/etc/ftpusers中使用的类别,这里有两个特殊的类别:all表示与所有的class匹配,none表示不与任何class相匹配,arguments为该命令的差数。

常用的一些设置:
checkportcmd class [off]
        检查PORT命令的合法性。如果发出PORT命令的IP与执行FTP连接的IP不匹配或者PORT命令的端口号比保留端口号小则PORT命令将失败,这用助于防止FTP bounce attack。

chroot class [pathformat]
        设置指定的class的访问会被限制在指定目录,如果pathformat省略则使用默认值。否则用户将被限制在pathformat所指定的目录中。pathformat中可以包含以下序列值:
        %c        类别名
        %d        用户的HOME目录
        %u        用户帐号名
        如: chroot all %u/ftpdir
        这样所有的用户的FTP访问将被限制在他们的HOME目录下的ftpdir的目录里。

denyquick class [off]
        当用户输USER命令(即输入用户名后)时就开始访问规则匹配,而不是在输入PASS命令(即输入密码后)才开始,这样一旦在/etc/ftpusers中设置禁止访问的用户一旦输入用户名访问就将被禁止,而不是在输入完密码之后才禁止,该设置有助于提高服务器的安全性。

display        class [file]
        每当用户进入一个新目录时将检查该文件夹中是否有名为file的文件是否存在,如果存在则打印它的内容。file中可以含有以下序列符:
        %c        类别名
        %C        当前目录
        %E        由FTPD的-e参数指定的email地址
        %L        本地机器名
        %M        当前class的最大用户数,没有设置时显示为unlimited
        %N        当前class的用户数
        %R        远程机器名
        %T        当前时间
        %U        用户名

limit class count [file]
        设置该类别的最大同时连接数为count,count为0表示不限制。当限制到达时,文件file的内容将被显示出来。如果file为相对路径FTPD则会到/etc或者由-c confidr指定的目录中去搜索file。

maxfilesize class size
        设置上传的最大文件,如:128M, 256k, 20G等。

timeout class time
        设置非活动超时,默认为5分钟,time值不能小于30秒或超过maxtimeout的值,以秒为单位。

maxtimeout class time
        设置最大超时,默认为2小时,time的最小值不能超过30秒或不于timeout的值,以秒为单位。

motd class [file]
        当用户登录后显示file的内容,file中可以使用以下序列符:
        %c        类别名
        %C        当前目录
        %E        由FTPD的-e参数指定的email地址
        %L        本地机器名
        %M        当前class的最大用户数,没有设置时显示为unlimited
        %N        当前class的用户数
        %R        远程机器名
        %T        当前时间
        %U        用户名

modify class [off]
        如果为off则禁止使用以下命令:CHMOD、DELE、MKD、RMD、RNFR和UMASK。

upload class [off]
        如果为off则禁止使用以下命令:APPE、STOR、STOU和修改命令:CHMOD、DELE、MKD、RMD、RNFR和UMASK。

private class [off]
        如果使用off则禁止在STAT命令中显示用户的类别名。

passive class [off]
        如果为off则禁止使用PASSIVE(包括:PASV、LPSV、EPSV)连接。

rateget class rate
        限制GET(RETR)的最大传输率(bytes/sec),如果rage为0则表示不限制。rate可使用以下单位:
        b        字节(B)
        k        千字节(K)
        m        光字节(M)
        g        吉字节(G)
        t        万亿字节(T)

rateput        class rate
        限制PUT(STOR)的最大传输率(bytes/sec),如果rage为0则表示不限制。rate可使用以下单位:
        b        字节(B)
        k        千字节(K)
        m        光字节(M)
        g        吉字节(G)
        t        万亿字节(T)

sanenames class [off]
        只许使用合法的文件名,即:不以"."开头且由"[-+,._a-zA-z0-9]"组成的文件名。

umask class val
        设置UMASK值,默认为027。

更多设置请参考man手册,这里举一个实例:

FTPD.CONF文件:
--------------
$ cat /etc/ftpd.conf
# 公共设置
umask all 022                        # 设置UMASK为022
denyquick all                        # 快速匹配
checkportcmd all                        # 检查PORT命令的合法性
timeout 60                        # 无响应超时1分钟
maxtimeout 180                        # 最大超时3分钟
display all .README                        # 显示每个目录中的.README文件

# 配制anon(匿名)类别
chroot anon                         # 限定在/home/ftp目录中
limit anon 500 /etc/ftp_maxconn.msg        # 该类最大同时允许50个连接,当超过是显示/etc/ftp_maxconn.msg的内容
rateget        anon 256k                # 下载最大速率为256K
upload anon off                        # 禁止上传和更改,只允许下载

# 配制upload类别
chroot upload /home/ftp/incoming        # 限定在/home/ftp/incoming目录中
limit upload 300 /etc/ftp_maxconn.msg        # 该类最大同时允许50个连接,当超过是显示/etc/ftp_maxconn.msg的内容
maxfilesize upload 100m                # 最大文件为100M
rateput upload 128K                # 上传最大速率为128K
modify upload off                        # 禁止更改、删除文件和目录、禁止新建文件夹

# 配制member类别
limit member 5000 /etc/ftp_maxconn.msg        # 该类最从同时允许5000个连接,当超过是显示/etc/ftp_maxconn.msg的内容
rateget        member 10M                        # 下载最大速率为10M
rateput member 10Mk                        # 上传最大速率为10M


FTPUSERS文件:
-------------
$cat /etc/ftpusers
root deny                                # 禁止root访问
matthew        allow                        # 允许matthew访问
tom@*.cracker.com allow anon        # 允许tom从域cracker.com访问,并设置其class为anon(匿名)
*@*.cracker.com deny                # 禁止所有来自域cracker.com的访问

uploader allow upload                # 用户uploader的访问被允许,并且设置其class为upload

*:members allow member                # 允许所以members组中的用户访问,并且设置其class为member

* deny                                # 拒绝其它一切的访问


FTPCHROOT文件:
--------------
$cat /etc/ftpchroot
*:members                        # 所有members组中的用户将被限制在自己的HOME目录中
matthew        no                        # matthew将不会被限制在任何目录中,可以自由的访问任何目录

好了,到这里NetBSD中FTPD的主要配置已经介绍完了,从上面可见其功能强大,足以能够应付一般的需求。
由于我的水平有限加上时间仓促,文中难免有错误之处,还请指正和交流:matthew@arbornet.org

[ 参考 ]

NetBSD1.6 Man pages:
        FTPD(8)
        FTPUSERS(5)
        FTPD.CONF(5)

论坛徽章:
0
2 [报告]
发表于 2003-04-07 10:52 |只看该作者

[paper]NetBSD1.6下的FTPD服务配制指南

好文!!!Apache弄出来没有

论坛徽章:
0
3 [报告]
发表于 2003-04-07 10:57 |只看该作者

[paper]NetBSD1.6下的FTPD服务配制指南

NetBSD 下的FTPD 和FBSD 下的FTPD是不是一样的啊?!(指莫认的)

论坛徽章:
0
4 [报告]
发表于 2003-04-07 11:17 |只看该作者

[paper]NetBSD1.6下的FTPD服务配制指南

好像不一样,我感觉功能要强大得多。

论坛徽章:
0
5 [报告]
发表于 2003-04-07 11:32 |只看该作者

[paper]NetBSD1.6下的FTPD服务配制指南

[quote]原帖由 "黑夜编码人"]好像不一样,我感觉功能要强大得多。[/quote 发表:
哦。和proftp 和那噶pure-ftp 比呢?

论坛徽章:
0
6 [报告]
发表于 2003-04-07 11:55 |只看该作者

[paper]NetBSD1.6下的FTPD服务配制指南

哦。和proftp 和那噶pure-ftp 比呢?

当然没有它们的设置多了,不过我觉得NetBSD自带的FTPD一般的应用都能够应付的。

论坛徽章:
0
7 [报告]
发表于 2003-04-08 13:53 |只看该作者

[paper]NetBSD1.6下的FTPD服务配制指南

[quote]原帖由 "无生相"]好文!!!Apache弄出来没有[/quote 发表:

Apache直接到ports中安装,或者直接下载回来编译就可以了,没有什么特别的。

另外,今天听说FreeBSD5.0中的FTPD Daemon就是NetBSD上的,不知道是不是,如果是的话,这篇文章对FreeBSD就同样有效,不过我没有5.0,有的朋友试试看行不行,如果有消息方便的话发个Mail通知一下我:matthew@arbornet.org  先谢了。

论坛徽章:
0
8 [报告]
发表于 2003-04-08 13:56 |只看该作者

[paper]NetBSD1.6下的FTPD服务配制指南

原帖由 "黑夜编码人"][quote:998cb285a6="无生相"]好文!!!Apache弄出来没有[/quote 发表:

Apache直接到ports中安装,或者直接下载回来编译就可以了,没有什么特别的。

另外,今天听说FreeBSD5.0中的FTPD Daemon就是NetBSD上的,不知道是不是,如果是的话,这篇文章对FreeBSD就同样有效,不过我没有5.0,有的朋友试试看行不行,如果有消息方便的话发个Mail通知一下我:matthew@arbornet.org  先谢了。
我先试试。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP