第四部分 总结
没有绝对安全的网络系统,网络信息对抗是一个长期的研究课题,安全问题是多种多样,且随着时间技术的变化而变化,而黑客的侵入手段也随之不断变化,所以安全防护也是非常重要的,保持清醒正确的认识,同时掌握最新的安全问题情况,再加上完善有效的安全策略,是可以阻止大部分的网络入侵,从而保持最小程度的经济损失。
第五部分 附录
5.1 Free BSD系列
FreeBSD 是一个非常安全的操作系统。也正因为它的 source code 是可以免费的取得,这个 OS 长久以来不断的有人改进加强。尽管 FreeBSD 一出厂就非常安全, 但是仍然有更多加强安全性的措施,这份 HOW-TO 会教你一些步骤, 以更加强你机器的整体安全。
5.1.1 网络
5.1.1.1 inetd (Inet Daemon)
网络在系统安全上扮演了一个很重要的角色。FreeBSD 的根基是有着内建网络功能, 且具有最稳最快的 TCP/IP stacks 的 4.4BSD。这个 stack 支持了非常多的协议像是telnet, ftp
, talk, rsh 等... 这些 service 的的主设定档便是 /etc/inetd.conf。要编辑这个档, 请
输入 "vi /etc/inetd.conf" (在这个例子里, 我使用 vi 。你可以使用其它你较为上手的编
辑器。或许你可以试试 pico)。如果你要使用 pico, 请在启动它时加上 -w 选项:
-w 关掉自动断行。(因此可以容许超过 80 字符的行存在)
这选项在编辑 /etc/inetd.conf 时非常有用。
当然了, 你也可以使用 ee - 它随着 FreeBSD 一起 "出厂" 的, 而且也是 root 预设的编辑
器。不过, 请再 "echo $EDITOR" 确认一次。 开启了这个档案后, 你可以看到里面怎么描
述每个 service 怎么激活, 要以那位使用者执行等等的信息。(man 5 inetd.conf)既然这个
档案是许多 internet service 的主要设定档, 好好的设定它便是一件十分重要的事。你要
关掉一个 service的话,只消在那一行前面加个 "#" 符号。基本的概念是, 关掉些你不熟悉
的 services - 如果你不知道那个 service 是啥, 或者不知道它可以干啥。理想状态下, 你
不须要把所有的 service 都打开。例如, 你的器只是要跑 web server。这种情况下, 你只
要激活 ssh 和 httpd 便够了。关于啥是ssh, 下面会说明。如果你啥 service 都不想跑,
最直接干脆的方法是-关掉 inetd。做法很简单, 只要编辑 /etc/rc.conf 并且把
inetd_enable="YES"改成inetd_enable="NO"就可以了。
如此一来没人可以 telnet, rlogin, 或 ftp 到计算机中。如果你决定要激活你的 inetd 的
话, 记得激活 log 选项, 并提高一个 service 每分钟激活的上限数目。(默认值是 256, 我
建议提高到 1024-自行参照下面解说调整吧!)为什么要这么做呢...? 就 modem user 或是低
速专线用户是没什么差别。但高速线路的人, 上限值太低会蹦出一个 DoS attack(Denial o
f Service)。某个坏心的人可以简单的用一个 shell script 同时搞出超过 256 个 connec
tions, 这么一来你的 inetd会很不幸的阵亡。换句话说, 如果你想让每分钟每个 service
可接受的connection 数多点, 记得做如下的设定, 不然来个坏心的人就可以搞垮你的计算机
。因此, 在这行inetd_enable="YES"
下面的:
inetd_flags=""
要改成:
inetd_flags="-l -R 1024"
这会将联机的动作都 log 下来(-l 参数)而且将同时最大联机数从预设的 256 增加到1024。
你还须要对你的 /etc/syslog.conf 作些修改, 这些等会儿会提到。
5.1.1.2 SSH
在以下提到的案例中, 你完全不须要 run inetd。例如, 如果你只有跑 web, news, 或是 n
fs server, 那么就没有必要在你的机器上再跑其它的services。但是你一定会问,"我要怎么
控制我的机器啊!?" 嗯嗯, 所以现在要介绍 SSH。你可以透过 SSH (SecureShell) 来登入你
的机器。Secure Shell 当初便是设计来取代 rsh, rlogin 等其它的Berkeley r* 命令。相
信你很快就会了解 SSH 是如何有用,而且开始使用它,来代替其它的程序像是 telnet 和 ft
p。SSH 具有很多功能,但是最为人知的是, 它的加密通讯方式, 也就是防止你的密码和资料
以明码的方式在网络上传输。如果你使用 telnet,你的通讯内容可能会被"窃听": 传输中的
资料被改变, 通讯内容被看到。(不是有 S/Key可以解决吗? 很不幸的, 它还是有着插入资料
和连接时被破解的问题) 我希望你可以完全的关掉 inetd 而使用 SSH。如果你认为完全不靠
inetd 来激活某些 services,是完完全全不可能的事, 那么希望你至少激活 log 功能, 而
且要增加每分钟同一个 servi-ce 可激活的次数。 (原因上面有提到)
你可以从 ftp://ftp.funet.fi/pub/unix/security/login/ssh 下载 SSH。
若你想要更简单的方法:
# cd /usr/ports/security/ssh
# make install
5.1.1.3 inetd (part II)
好吧, 你仍然执意要使用 inetd。那么我们来看看在 inetd.conf 有那些选项, 可以增进你
的系统安全。在攻击某系统之前, 攻击者都会先收集该系统的相关信息。就 telnetd 而言,
你可以试试在 telnetd 那行后面加个 -h:
telnet stream tcp nowait root /usr/libexec/telnetd telnetd -h
从 telnetd 的 man page 可以知道:
-h Disable the printing of host-specific information before login
has been completed.
当有很多管道可以获得系统信息的同时, 这招和下面的那招是个不错的解决方案。如果你认
为跑 telnet daemon 是没有必要的, 那么只消加个 "#" 在该行的最前面就行了:
#telnet stream tcp nowait root /usr/libexec/telnetd telnetd
有个极不错的措施是, 你可以拒绝没有完整 FQDN 的人来联机。要做到这点, 也只要加个 -
U 选项到 telnetd 后面:
telnet stream tcp nowait root /usr/libexec/telnetd telnetd -h -U
这是个小动作, 但是对你的系统安全有莫大的助益。
5.1.1.4 ftpd
现在来看看 ftp。 对于 ftp FreeBSD 已经做了一些 log 的动作 。 可以看到在/etc
/inetd.conf 里面 ftpd 那一行已经加了 "-l"。然而, 你还是要设定你的syslogd, 使它可
以接受 ftp daemon 产生的 log。从 man page 可以得知:
每个成功或是失败的 ftp 登入尝试, 都会以 LOG_FTP 机制纪录起来。如果这个选项被指定
了两次, 所有的下载 (get), 上载(put), 新增, 删除,建立目录, 及更名的动作和文件名字
都会被纪录下来。 又: LOG_FTP 讯息预设是不会被 syslogd(8) 纪录下来的。你还要在 s
yslogd(8) 的设定文件里面激活这个功能才行。
让我们开启 syslogd 纪录 ftpd log 的功能吧~ 这个档案是 /etc/syslog.conf (别忘了顺
便看看 man 5 syslog.conf)。把下面这一行加到这个设定档里:
ftp.* /var/log/ftpd
也不要忘了执行这个指令 "touch /var/log/ftpdlog", 因为 syslogd 不能写入到一个没有
被开启过的档案。如果你想要你的 ftpd 提供你更多的 log 讯息, 那么就在 ftp那一行多加
个 "-l" 吧:
ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l -l
如果你想要确定你的使用者们都用 scp (Secure Copy, 附属在 SSH 里面), 但是又想要提供
anonymous ftp 服务, 也只消加个 "-A" 在 ftp 那行后面就行了:
ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l -A
你也可以编辑 /etc/ftpwelcome, 说明目前接受 anonymous ftp 登入, 但是系统内的使用者
就得使用 rcp 了。如果你有提供 anonymous ftp, 你可以使用 -S 选项来记录传输的情形:
ftp stream tcp nowait root /usr/libexec/ftpd ftpd -A -S
5.1.1.5 fingerd
Finger 服务默认值还算安全: 它不容许不带 user name 的 query。这是一件不错的事(tm)
。然而, 就是有些人无论如何也不想 run fingerd。这种情形下, 你只要简单的给它加个 "
#" 在这行的最前面就可以了。又, 你想要 log 住谁来 finger 的话, 加个"-l" 也就行了
:
finger stream tcp nowait nobody /usr/libexec/fingerd fingerd -s -l
Fingerd 产生的 log 信息预设是写到 /var/log/messages。如果你想要这些信息写入到特定
的档案里去, 那么就在 /etc/syslog.conf 加入这一行:
daemon.notice /var/log/fingerd
/* !fingerd anyone? */
$ man 5 syslog.conf
除了 ftp, telnet 和 finger 之外, 你实在不须要在 /etc/inetd.conf 中再多激活任何东
西了。通常我都会关掉 talk 及 comsat等我个人不须要的东西。如同我之前讲的,如果你不
知到某个 servcie 是干嘛用的, 而且你也不须要它, 那么就关掉它。一些和网络有关而且很
有用的 man page 是: inetd, ftpd, telnetd, fingerd, syslogd,comsat, talkd, rshd,
rlogind, inetd.conf。并且记得要看 man page 的"SEE ALSO"部份, 以获得更多的相关信息
。
5.1.1.6 ipfw (IP FrewWall)
IP FireWall 做的是 packet 过滤的工作。没错, 就是只有这样。然而, 你要考虑的事是,
你的 kernel 要有支持 ipfw。 通常在我管的机器上, 我都会重编核心使其支持ipfw。大
概看起来是这样:
options IPFIREWALL #finger the net
options IPFIREWALL_VERBOSE #log the net
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
·路由安全配置专题 (10280篇文章)
·系统安全设置 (19465篇文章)
·配置安全的操作系统 (8460篇文章)
·打造安全服务器 (11396篇文章)
·MySQL安全 (8548篇文章)
·电子邮件安全 (7171篇文章)
·SSH安全技术 (7076篇文章)
·数据库安全技术专题 (11412篇文章)
·FreeBSD系统安全管理 (7587篇文章)
·局域网安全管理 (8194篇文章)
·系统安全设置 (19465篇文章)
·配置安全的操作系统 (8460篇文章)
·打造安全服务器 (11396篇文章)
·MySQL安全 (8548篇文章)
·电子邮件安全 (7171篇文章)
·SSH安全技术 (7076篇文章)
·数据库安全技术专题 (11412篇文章)
·FreeBSD系统安全管理 (7587篇文章)
·局域网安全管理 (8194篇文章)
·局域网乐趣系列一:如何共享上网,如何在特 (7918次浏览)
·数据加密算法 (概述) (3001次浏览)
·SCO UNIX 5.05 安装指南 (1113次浏览)
·Unix系列shell程序编写(中) (1111次浏览)
·群雄争霸:25款操作系统全面接触 (1087次浏览)
·UNIX网络操作系统平台搭建初探 (1085次浏览)
·教你如何在Linux/Unix平台安装MySQL (486次浏览)
·Oracle,HA在Unix上双机环境的安装指南 (352次浏览)
·UNIX的分支 服务器上的FreeBSD操作系统 (342次浏览)
·Mac OS X与Unix结合意义非凡 (328次浏览)
·数据加密算法 (概述) (3001次浏览)
·SCO UNIX 5.05 安装指南 (1113次浏览)
·Unix系列shell程序编写(中) (1111次浏览)
·群雄争霸:25款操作系统全面接触 (1087次浏览)
·UNIX网络操作系统平台搭建初探 (1085次浏览)
·教你如何在Linux/Unix平台安装MySQL (486次浏览)
·Oracle,HA在Unix上双机环境的安装指南 (352次浏览)
·UNIX的分支 服务器上的FreeBSD操作系统 (342次浏览)
·Mac OS X与Unix结合意义非凡 (328次浏览)
·SCO破产保护 叫价3600万美元希望出售Unix资产 10-29
·上海贝尔阿尔卡特1000 S12 Unix计费采集系统 10-28
·UNIX 基本指令操作 10-28
·如何知道系统被入侵(Linux/Unix) 10-28
·测试一下你的UNIX基础知识有多少 10-28
·防御四法:限制ROOT用户远程登陆UNIX系统 10-20
·UNIX的分支 服务器上的FreeBSD操作系统 10-16
·在UNIX下怎样发现站点是否被入侵? 10-09
·进行类Unix小型机系统管理的八项注意 10-09
·Unix系统安全必读 10-09
·上海贝尔阿尔卡特1000 S12 Unix计费采集系统 10-28
·UNIX 基本指令操作 10-28
·如何知道系统被入侵(Linux/Unix) 10-28
·测试一下你的UNIX基础知识有多少 10-28
·防御四法:限制ROOT用户远程登陆UNIX系统 10-20
·UNIX的分支 服务器上的FreeBSD操作系统 10-16
·在UNIX下怎样发现站点是否被入侵? 10-09
·进行类Unix小型机系统管理的八项注意 10-09
·Unix系统安全必读 10-09
最新论坛文章
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
站内频道文章精选
百度推荐,商机无限
搜索您感兴趣的内容



