Linux的安全初步设置
3308 点击·0 回帖
![]() | ![]() | |
![]() | 不久前,我以极大的耐心下载了最新的内核版本,那可是通过拨入连接完成的。在整个下载的过程中,我渴望有一天在家里就能使用高速的internet连接。xDSL和线缆猫的到来使其成为可能,但这并不包括价格因素。 在我写此文章的同时,在世界的某个地方,也许正有一个人在他家里的计算机上第一次安装发布的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 如你所见到的输出结果,最初的安装对一定数量的服务并未侦听,而这些服务的大多数就是麻烦的制造者,在配置文件/etc/inetd.conf中就可以行使禁止。 用你喜欢的文本编辑器打开这个文件,注销你不想提供的服务,这只需在包含服务内容的行前面添加一个``#'',在本例中所有的服务都被注销了,当然,如果你决定要提供这些服务中的某几个,那由你自己来决定。 现在,重新启动 inetd 来使这些改变的内容起作用,这根据系统的不同会有多种方法,一个例子是: killall -HUP inetd 依诀窍,重新用netstat检查开放的socket并注意发生的变化。 接下来,查看还有哪些进程在运行。通常会看到sendmail、lpd和snmd 在等待接入的请求。因此机器不对此类的任何请求提供服务,所以他们应当终止运行。 通常,这些服务是由系统初始化脚本启动,脚本会因发布的不同而异,一般可以在/etc/init.d 或 /etc/rc.d中找到。如果你还不能确定,请参照你所用发布的文档。目标是在系统启动时禁止脚本启动这些服务。 如果你的Linux发布使用的是打包的系统,花点时间移掉你不需的服务。在此范例机器中,包括了sendmail和r字头的服务进程(rwho、rwall等),lpd、ucd-snmp和apache。这是确保此类服务不会因意外而激活的最简捷的途径。 | |
![]() | ![]() |