在我写此文章的同时,在世界的某个地方,也许正有一个人在他家里的计算机上第一次安装发布的Linux。一个新的Linux的管理员通过为其家人和朋友设置帐户来使系统运转起来。也许在初次安装完成后的不长时间里,这个Linux系统就会以令人感激涕零的高速DSL接入Internet。
还是容易被攻击
今天几近所有可用的linux发布在安全方面存在漏洞,其中的多数漏洞是很容易被攻入的,但不幸的是依惯例和习惯做法,他们是开放的。典型安装的Linux首次启动时就提供了多种多样的可被攻击的服务,譬如SHELL,IMAP和POP3。这些服务经常会被游手好闲的网民按其需要用来作为系统突破的切入点,这不仅是Linux的局限 -- 久经风霜的商业UNIX也提供此类服务,而且也会被突破。
不用抱怨和指责,新系统的锁定(坚固系统的专业说法)是非常重要的。信不信由你,一个Linux系统的坚固过程是不需要过多的系统安全专门知识。实际上,你可以在5分钟之内就可以把百分之九十的不可靠因素屏蔽掉。
开始吧
在开始坚固系统前,要问清自己你的机器担当的角色和用来接入Internet的舒适度。要仔细确定你要对整个世界范围提供的服务,如果你还不能确定,最好什么也不要做。明确自己的安全策略是非常重要的。要决定你自己的系统上哪些使用是可接受的而哪些是不可接受的。
本文中范例机器的目标是作为工作站用来收发mail,阅读新闻,浏览网页等等。
确立网络服务安全
首先,以超级用户(root)登入系统,用netstat命令(这是多数Linux系统标配的网络工具)查看一下当前的网络状态,输出的结果譬如是:
root@percy / ]# netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *:imap2 *:* LISTEN
tcp 0 0 *:pop-3 *:* LISTEN
tcp 0 0 *:linuxconf *:* LISTEN
tcp 0 0 *:auth *:* LISTEN
tcp 0 0 *:finger *:* LISTEN
tcp 0 0 *:login *:* LISTEN
tcp 0 0 *:shell *:* LISTEN
tcp 0 0 *:telnet *:* LISTEN
tcp 0 0 *:ftp *:* LISTEN
tcp 0 0 *:6000 *:* LISTEN
udp 0 0 *:ntalk *:*
udp 0 0 *:talk *:*
udp 0 0 *:xdmcp *:*
raw 0 0 *:icmp *:* 7
raw 0 0 *:tcp *:* 7