📄 00000030.htm
字号:
<HTML><HEAD> <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER>发信人: Numb (麻木), 信区: Linux <BR>标 题: FreeBSD Security HOWTO <BR>发信站: BBS 水木清华站 (Sun Dec 20 05:14:30 1998) <BR> <BR># <BR># This HOW-TO is maintained by Jan Koum (<A HREF="mailto:jkb@best.com)">jkb@best.com)</A> <BR># Please mail me any additions, comments, suggestions, etc. <BR># <BR># Chinese Version is translated by <BR># Clive Lin <<A HREF="mailto:clive@cirx.org>">clive@cirx.org></A> (isomer as well) <BR># Thanks for MTV channel when I'm translating, and StarCraft game for giving <BR># me some entertainment when I'm tired. <BR># Special thanks to: <BR># Winggy <<A HREF="mailto:wing@cc.nsysu.edu.tw>">wing@cc.nsysu.edu.tw></A> <BR># for translation and correction help. <BR># $Id: cfbhow2,v 1.71 1998/11/04 21:07:49 clive Exp $ <BR># <BR> <BR> FREEBSD SECURITY HOW-TO <BR>o 前言 <BR> o 这份 HOW-TO 是必要的吗? <BR> <BR> FreeBSD 是一个非常安全的作业系统。也正因为它的 source code 是可以免费的取得, <BR> 这个 OS 长久以来不断的有人改进加强。尽管 FreeBSD 一出厂就非常安全, 但是仍然 <BR> 有更多加强安全性的措施, 来满足"偏执狂"的你 :) 这份 HOW-TO 会教你一些步骤, 以 <BR> 更加强你机器的整体安全。 <BR> <BR> o 这份文件会说明 tripwire, tcp_wrappers, cops, satan, 和其它的工具吗? <BR> <BR> 除了 SSH 之外, 不会。这是一份针对 FreeBSD 的文件 - 除此之外, 已经有很多文件 <BR> 说明上述的工具了。目前呢, 我只想关心的是关於 BSD 的部份。 <BR> <BR> o 谁要读这份 HOW-TO? <BR> 任何想让他的系统更安全的人。这份 HOW-TO 包含了一些很基本的步骤, 和某些很复杂 <BR> 的步骤。如果你有任何的疑问, 或者想要加以补充, 请 eMail 到维护人 <A HREF="mailto:jkb@best.com">jkb@best.com</A> <BR> 又, 尽管大部份的内容是针对 FreeBSD 的, 但仍然会套用到其它的 Unix OSes 上面。 <BR> (特别是 OpenBSD 和 NetBSD) <BR> <BR> o 这份 HOW-TO 还有其它语言的版本吗 ? <BR> 就我所知, 有俄语版: <BR> <A HREF="http://www.etrust.ru/osa/security.html">http://www.etrust.ru/osa/security.html</A> <BR> 和中文版: <BR> <A HREF="http://water.ite.ntnu.edu.tw/doc/cfbhow2.txt">http://water.ite.ntnu.edu.tw/doc/cfbhow2.txt</A> <BR> <BR> o TODO: <BR> 将包含 /etc/login.conf 和 login classes <BR> 将提及使用 X 的场合 <BR> 将会有 html 版 <BR> <BR>o 网路 <BR> o inetd (Inet Daemon) <BR> 网路在系统安全上扮演了一个很重要的角色。FreeBSD 的根基是有着内建网路功能, 且 <BR> 具有最稳最快的 TCP/IP stacks 的 4.4BSD。这个 stack 支援了非常多的协定像是 <BR> telnet, ftp, talk, rsh 等... 这些 service 的的主设定档便是 /etc/inetd.conf。 <BR> 要编辑这个档, 请输入 "vi /etc/inetd.conf" (在这个例子里, 我使用 vi 。你可以 <BR> 使用其它你较为上手的编辑器。或许你可以试试 pico)。如果你要使用 pico, 请在启 <BR> 动它时加上 -w 选项: <BR> -w 关掉自动断行。(因此可以容许超过 80 字元的行存在) <BR> <BR> 这选项在编辑 /etc/inetd.conf 时非常有用。 <BR> 当然了, 你也可以使用 ee - 它随着 FreeBSD 一起 "出厂" 的, 而且也是 root 预设 <BR> 的编辑器。不过, 请再 "echo $EDITOR" 确认一次。 开启了这个档案後, 你可以看 <BR> 到里面怎麽描述每个 service 怎麽启动, 要以那位使用者执行等等的资讯。(man 5 <BR> inetd.conf)既然这个档案是许多 internet service 的主要设定档, 好好的设定它便 <BR> 是一件十分重要的事。你要关掉一个 service的话,只消在那一行前面加个 "#" 符号。 <BR> 基本的概念是, 关掉些你不熟悉的 services - 如果你不知道那个 service 是啥, 或 <BR> 者不知道它可以干啥。理想状态下, 你不须要把所有的 service 都打开。例如, 你的 <BR> 器只是要跑 web server。这种情况下, 你只要启动 ssh 和 httpd 便够了。关於啥是 <BR> ssh, 下面会说明。如果你啥 service 都不想跑, 最直接乾脆的方法是-关掉 inetd。 <BR> 做法很简单, 只要编辑 /etc/rc.conf 并且把 <BR> <BR> inetd_enable="YES" <BR> <BR> 改成 <BR> <BR> inetd_enable="NO" <BR> <BR> 就可以了。 <BR> 如此一来没人可以 telnet, rlogin, 或 ftp 到你的电脑。 <BR> 如果你决定要启动你的 inetd 的话, 记得启动 log 选项, 并提高一个 service 每分 <BR> 钟启动的上限数目。(预设值是 256, 我建议提高到 1024-自行叁照下面解说调整吧!) <BR> 为什麽要这麽做呢...? 就 modem user 或是低速专线用户是没什麽差别。但高速线路 <BR> 的人, 上限值太低会蹦出一个 DoS attack(Denial of Service)。某个坏心的人可以简 <BR> 单的用一个 shell script 同时搞出超过 256 个 connections, 这麽一来你的 inetd <BR> 会很不幸的阵亡。换句话说, 如果你想让每分钟每个 service 可接受的connection 数 <BR> 多点, 记得做如下的设定, 不然来个坏心的人就可以搞垮你的电脑。因此, 在这行 <BR> <BR>inetd_enable="YES" <BR> <BR> 下面的 <BR> <BR>inetd_flags="" <BR> <BR> 要改成: <BR> <BR>inetd_flags="-l -R 1024" <BR> <BR> 这会将连线的动作都 log 下来(-l 叁数)而且将同时最大连线数从预设的 256 增加到 <BR> 1024。你还须要对你的 /etc/syslog.conf 作些修改, 这些等会儿会提到。 <BR> <BR> o SSH <BR> <BR> 在以下提到的案例中, 你完全不须要 run inetd。例如, 如果你只有跑 web, news, 或 <BR> 是 nfs server, 那麽就没有必要在你的机器上再跑其它的services。但是你一定会问, <BR> "我要怎麽控制我的机器啊!?" 嗯嗯, 所以现在要介绍 SSH。你可以透过 SSH (Secure <BR> Shell) 来登入你的机器。Secure Shell 当初便是设计来取代 rsh, rlogin 等其它的 <BR> Berkeley r* 命令。相信你很快就会了解 SSH 是如何有用,而且开始使用它,来代替其 <BR> 它的程式像是 telnet 和 ftp。SSH 具有很多功能,但是最为人知的是, 它的加密通讯 <BR> 方式, 也就是防止你的密码和资料以明码的方式在网路上传输。如果你使用 telnet,你 <BR> 的通讯内容可能会被"窃听": 传输中的资料被改变, 通讯内容被看到。(不是有 S/Key <BR> 可以解决吗? 很不幸的, 它还是有着插入资料和连接时被破解的问题) 我希望你可以完 <BR> 全的关掉 inetd 而使用 SSH。如果你认为完全不靠 inetd 来启动某些 services,是完 <BR> 完全全不可能的事, 那麽希望你至少启动 log 功能, 而且要增加每分钟同一个 servi- <BR> ce 可启动的次数。 (原因上面有提到) <BR> 你可以从 <A HREF="ftp://ftp.funet.fi/pub/unix/security/login/ssh">ftp://ftp.funet.fi/pub/unix/security/login/ssh</A> 下载 SSH。 <BR> 若你想要更简单的方法: <BR> <BR># cd /usr/ports/security/ssh <BR># make install <BR> <BR> 如果你有不是使用 Unix 的使用者, 那麽可以从下面的站台抓到 win32 SSH 程式: <BR> <A HREF="http://fox.doc.ic.ac.uk/~ci2/ssh/">http://fox.doc.ic.ac.uk/~ci2/ssh/</A> <BR> <A HREF="http://www.zip.com.au/~roca/ttssh.html">http://www.zip.com.au/~roca/ttssh.html</A> <BR> <A HREF="http://bmrc.berkeley.edu/people/chaffee/winntutil.html">http://bmrc.berkeley.edu/people/chaffee/winntutil.html</A> <BR> <A HREF="http://public.srce.hr/~cigaly/ssh">http://public.srce.hr/~cigaly/ssh</A> <BR> SecureCRT from <A HREF="http://www.vandyke.com">http://www.vandyke.com</A> <BR> <BR> <BR> o inetd (part II) <BR> <BR> o telnetd <BR> <BR> 好吧, 你仍然执意要使用 inetd。那麽我们来看看在 inetd.conf 有那些选项, 可以增 <BR> 进你的系统安全。在攻击某系统之前, 攻击者都会先收集该系统的相关资讯。就 teln- <BR> etd 而言, 你可以试试在 telnetd 那行後面加个 -h: <BR> <BR>telnet stream tcp nowait root /usr/libexec/telnetd telnetd -h <BR>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -