网络安全 频道

使用自由软件维护异构网络的安全

保护网络
如果你的主机已经适当的”准备”了,你只是完成了事情的一半。你需要继续前进。既然我们谈到了自由软件,我们会为网关配置防火墙:这样你就可以把机器放到”野蛮” 的世界里去了。毫不犹豫的(又一次!)我们使用Linux机器:这样我们就可以使用 Bastille-Linux防火墙了。不同版本,或使用ipchains 或使用ipfwadm。如果你用的Linux是2.4的内核,你就使用ipchains。

一个小的心得:当涉及到安全时,把所有的初级问题堆叠到一起可不是个好主意。把内核立刻升级到最新版本也许会带来很坏的负面效应。这不是说新的内核工作不好,而是”陪嫁”的工具不能协调(新的内核)工作,这也许会犯大错误的。一个建议:耐心。作为新内核一部分的新防火墙工具很有前途,但是有点儿”年青”。这么说,你是不是轮到你...

总之,Bastille-Linux防火墙既简单又有效率。 还有更多的精细的工具,有点儿象”天然气工厂” 称为T.REX。可以从以下网址下载: http://www.opensourcefirewall.com. 如果你想得到一个很复杂的自由工具的话,它就是。

其他的解决方案,比如说proxys,它工作的不是太好。另一点??:proxys常被误认为是防火墙。毫无疑问,它们是两回事。防火墙使用包过滤而不提供认证的手段。有2种的proxy服务:基于应用的和基于套接字的。总之,一个应用服务器管理整个的通讯过程和提供用户认证,这是为什么它要比防火墙多消耗系统资源的原因。但是,我再说一遍,这类的工具只能保护网络一小段时间。一个防火墙可以在15分钟内 ”攻克”。你听说过,不是吗?因此之前的适当安全化网络中的主机是很重要的:想把安全都托付给防火墙或Proxy而安全无恙的网络那可是异数呀!

另一个减少危险的手段是加密。 比如,使用telnet服务简直是让攻击者脚踩红地毯一样 大摇大摆的进入(你的网络系统),或者象你给了强盗商店的钥匙。不仅他们能得到环境 数据,而且能得到明明白白的文本形式的password:这也太爽了,不是吗? 相应地,你可以自在地在那些”不安定”的协议下使用ssh(或直接使用它)。如果你必需(?)使用 telnet,你可以在选择一个安全的联接。这就是说把telnet的端口重定位到一个安全的端口上。 如果你想得到更多信息可以参考:这篇名为”通过隧道”的文章 ( ../../English/May2001/article202.shtml). (免费广告!)

好了,我们是想提高系统安全,现在回过头来检查我们的工作。为了做到这一点,让我们变成”黑客”,我们将使用他们的工具。恶心,是吗?在这个领域,也有一个很棒的工具的组合,我们随意的选择其中2个:nmap和nessus。这里可没有重复。比如说,第二个就需要第一个的支持。这些工具是端口扫描工具,nessus还远胜于此。 Nessus可以报告给你系统的弱点,而且把扫描结果和弱点数据库进行对比。在网络中运行这些工具使得你可以得到每个主机的弱点,无论什么操作系统。这些工具得到的结论很有实际的意义,所以这些工具要必备。你可以在以下网址找到nmap和nessus: http://www.insecure.orghttp://www.nessus.org.

在文章的开始我们讨论过一些联接外部网络的局域网的安全问题。这和一个因特网服务提供商的情形会有很多的不同并且我们不会在这个问题的上深入讨论。当然我们提到的依然有效但是你需要更精细的手段,比如VPN(虚拟私人网络),LDAP作为认证手段(打比方)等等。这几乎是另一个主题了因为它涉及到的东西有更多的约束条件。请千万不要提到电子商务网站,这些网站是不考虑安全隐患的。不过他们总是说自己的网站是安全的!不要告诉我...你已经通过因特网发送了你的信用卡的卡号了。如果是,你的勇气可嘉。建言:如果你会法文可以看一下这个网站: http://www.kitetoa.com, 这很值哦。

系统特殊性的考虑
我们已经提过系统安全在敌人面前的表现是不一样的。有些有很好的能力但另一些没有。有点荒谬的,自由的操作系统是很好的。不同的BSD(OpenBSD, NetBSD, FreeBSD...),不同的Linux在安全方面走在别的系统的前面。当然,这归功于自由软件社区的伟大的工作。别的系统,即使有Unix的标签的,要差一点的。不是Unix的系统,那很糟糕。

所有这里提到的工具都在所有的操作系统里运转。大多数的专有的Unix系统也可以从中得益。无论如何,这些专有的操作系统大多数都有自己的工具。比如,在Solaris上有ndd and aset。因为传播的不广,Sun的系统不是一个很好的安全的典范。 aset工具允许提高进入的权限的安全。aset提供3种保护等级:低,中,高。你可以在shell中运行它或者在cron任务中起动它。在运行的网络中,事情总是变化的,在5pm是可以的在5.30pm是不可以的情形是有的。因此周期性的运行一些命令保持某种平衡的需要是有的。这就是aset由cron管理的原因。它总是每一小时或每30分钟,或者你想的任何时间,管理目录文件的进入权限...
ndd,允许改变IP栈的参数。比如它可以隐藏系统的fingerprints。一个被识别出的系统更容易受到攻击,因为入侵者知道从哪里”下手”会更容易。使用ndd,你可以改变最大段尺寸(MSS)。默认的情况下,Solaris2.6是536。命令ndd -set /dev/tcp tcp_mss_def 546 可以使MSS变为546。越高越好(也不能太多)。不过,Nmap可以找到这个弱点(值设的过大)。如果你运行Solaris,你可以自在的使用ndd。这里有很多的可选项:检查一下man帮助:
你可以使用IP Filter,一个包过滤工具。在以下的网址可以找到: ftp://coombs.anu.edu/pub/net/ip-filter.

涉及到Irix,情形又有不同!SGI(ex Silicon Graphics)如其名曰,是专用的图形设计的系统。安全不是它的关注的重点。小心没大错,应该强制性地提供工具减少危险。 ipfilterd在Irix中的发布中提供,但是在缺省情况下没有安装:你应该找到它!ipfilterd当然是个包过滤软件,这样你可以拒绝某人的访问。你可以在一个叫做ipfilterd.conf的文件中设置并且这里还有一点小奇巧。这个文件的字符比较奇特并且它不是空格和空行。如果你想让一个叫做mars的机器和一个叫做jupiter的机器(是SGI工作站的名子),你需要键入以下的命令:
accept -i ec0 between jupiter mars
在这个机器中,文件没有被列举的是不允许进入jupiter的。更甚的是:如果你没有使用systune改变 ipfilterd_inactive_behavior 的参数,没有人能够进入这台机器。很有效率,不是吗?这个参数的默认设为1,并且你应该使用systune -i ipfilterd_inactive_behavior 0 命令把它变成0。
另一个尽人皆知的事情是Irix有易个很”好”的易入侵性的东西,它是fam(文件变更监视器)。这个程序有一个很好的特性,在各个后台程序间通讯。比如,它可以使得文件管理器得到一个很漂亮的图标。很遗憾地,这里只有一件事情可以做的:关闭它!悲惨吧,但就要这么干。

为了结束Unix系统的讨论,让我们提一下QNX,它是很容易受到攻击的,但是你同样可以从自由软件中受益。Mac OS X也提供一些工具。

我们必需谈论一下在网络系统中绝对的参照物了:这就是孤独的NT4.0。维护它的安全简直是乌托邦的观点,当然Redmond的头头(和其他一些人)可不这么说。使用nessus模拟一次攻击,结果会使你遭遇到恶梦一般。只要NetBIOS处于激活状态,nessus会提供给你域中每台机器名和相应的用户名,包括管理员。答案是:干掉NetBIOS!对了,我们说过,没有NetBIOS就没有网络...你看着办吧。
nessus会很可爱的告诉你可以在空事务(就是使用空(NULL)用户名和空(NULL)密码)中以客户的身份登录。删掉它,那么...怎么办?怎么成了这个样子!
所以,必需减少进入分区(NTFS)和目录。对FAT分区来说...没有办法。不过,有时你需要使用FAT分区,因为有些软件在NTFS上不工作。最后,不要用庞大的IIS,特别是ftp服务器。实际上,不要安装它。现如今,许多的ISP真是疯了,他们还敢用这些东西,我们仅仅告诫使用Apache替代它,但是...我们不会在IIS上浪费太多的时间,在这个主题下有很多的文化。
事实上,这里有一个办法使得筛子变成过滤器(就是漏洞小一点!)。问题是那需要费很多的口舌就是整个杂志也说不完。让我们只提示其中的要点。这些观点和自由软件没有关联:我们谈论的是微软世界!第一个建议是使用MSCE(微软安全配置编辑器),它在SP4中提供并且带有MMC (微软管理控制台)。但是,你要格外地小心!如果你犯了一个错误,你就赢了。当然,必需是英语版本。在微软的世界里,如果你使用非英文的版本,你得到的果子不会很好吃。无论如何,我可警告过你了。接下来,在这些需求中,你必需”安全化”管理员帐号,或者不要激活它。看一下从SP3中就有的 passprop。你可以使用passfiltdll加固密码而且是要通过注册(我认为发明它的人真是得了LSD流感...)。干掉那个著名的客户帐号。它也不是很有用(上面说了),但这只是使得情况不至于太糟而已。不过,你可以通过注册限制log文件的进入。在"HKEY_LOCAL_MACHINE"中,创建关键字 SystemCurrentControlSetServicesEventLogApplication。安全和系统(这两个会取代应用程序的)。他们的名子是 "RestrictGuestAccess",其中有REG_SZ 并且它的值是1。你可以使用 syskey加密密码。小心哦,这可是不可逆转的操作!最后,有一些好消息:你可以限制客户访问。再一次,我们使用注册,还是在 "HKEY_LOCAL_MACHINE"。这次的健称做 SystemCurrentControlSetControlLsa。名子是 "RestrictAnonymous",类型是"REG_DWORD" 并且它的值是1。不过,对微软世界来说是一个讽刺:你会被提醒:这些变更会影响一些网络服务... 这些事情的要点就是限制访问某些端口,在配置面板中开启网络应用。在TCP/IP属性中,选择”高级”和选中”激活安全”框(我认为有这个名子,但是在我家没有这个东西让我试试)。在”安全”窗口,选中”Allow only” 并且选择你想激活的端口。这里,可要小心。你要知道你干的是什么,否则一些服务会不工作的。
有很多的东西要干,不过这些是根本。你想知道更多,可以参观:sans.org。有成吨的文档。

事情的不可忍受
好,你已做了所有这一切。 你运行nessus扫描整个网络但是你仍然存在安全漏洞。我们不会说他们来自什么地方...我们已经知道! 试图迷惑这些系统替代品。它不去除通过NetBIOS”提供”的漏洞,而是它将限制破坏。 建立子域。作为管理人员不要登录。 打补丁。最后,在被用作网关的Unix机器上掩藏所有这一切。遗憾地,安全的相对论仅仅不来自由Redmond制造的产品。网络是活的: 总有某样东西在运行。一个好的管理人员是“paranoid”因此经常检查“固定装置的总量”。写脚本使检查自动化。有规律地检查SUID与SGID,关键的文件,log文件的习惯... 为了得到一些更多朋友,锁住用户软驱和CDROM的设备。不要接受未经同意的用户下载软件尤其是当这种软件在微软世界总是是可执行的。使用邮件过滤系统以防止你的用户打开Word或者Excel格式的附加文件。是,我知道这么做就像法西斯一样,但是你能对着宏病毒做什么呢?不要使用诸如outlook的产品。 再一次,你必须了解你想要什么!我知道,我所说的是无价值的,但是你能对这种产品谈论安全?著名的“我爱你”病毒不能说明任何问题。
有关Unix,下载也必须被控制。 校验偶然尚未被提供。

你应该养成一个周期地检查log文件,脚本和扫描控制你的网络的习惯。你将注意到: 事情变化十分快并且不仅仅是朝着好的方向发展。
最后,我们要提到话,就是不忘记备份。 备份的策略没有变化: 每日,每星期和每月。 Unix机器也会有问题,即使它是不寻常的。 同时,有时用户犯错误的而也不是经常的。大多数问题来自负责机器或部门的管理人员:--(

最后,终于完了!
如果你看到这一节那可是勇气可嘉呀。问题是我们仅仅大概浏阅了整个的主题!安全是没有终结的并且还不仅仅是网络。易受攻击的程序会毁掉一个网络。一个配置不好的防火墙比没有安防火墙更糟。每个Unix机器一般都有成千的文件。谁能保证没有一个是易攻破的呢?谁能想到一个攻击者可以破解一个128位的密码?你不要被愚弄:他会找到屋子的后门。再说一遍,即使你安装了所有的安全工具,但是如果你只留了一个小漏洞,那么这个小漏洞就可以导致系统被击穿。

安全可以看成是这样一种行为:你要紧跟形势。比如说,周期地浏阅安全网站,包括你机器的操作系统的网站...比如Sun每个月发布推荐的补丁。SGI每3个月发布Irix的新版本。微软频繁地提供服务包和补丁。 Linux发布的各个版本每发现一个易受攻击点就发布更正。各种BSD系统也是这样。如果你不使用那些产品连同补丁从硬盘中删掉就是了。就是这样子:事情要干的事情列出来会很长很长的。总之,这个工作是没完没了。

最后,让我再说一遍,我们做的只是使你的系统不太容易受到攻击。不要期望你能得到一个100%安全的网络,即使是一段给定的时间(当然你停掉机器不算)。这样子说,好像对维护系统安全工作不负责似的... 但是它会时刻提醒你。但是不要搞的你的日常生活也是这样,你旁边的人比机器更友好一些... 
http://netadmin.77169.com/HTML/20040320174100.html

0
相关文章