目前在操作系统业界公认的安全和稳定的还要属linux或UNIX系统了,相比windows操作系统来说linux出现漏洞比较少,一般黑客工具也都是针对windows系统的。但是并不是说我们安装并使用了linux就可以高枕无忧了。在实际工作中我们仍然需要对LINUX系统采取必要的安全防范工作。笔者就自己的经验为各位IT168读者介绍如何有效的提高LINUX的启动安全。
一,卸载LILO防止入侵:
为了便于维护、修复系统,几乎所有的类UNIX系统都提供了在启动时进入单用户模式的方法,而且有些不需要口令就可以直接得到root shell,Linux就是其中之一。对于RedHat Linux,只要在LILO提示符后面输入linux single;对于Turbo Linux,在LILO提示符后面输入linux init1就可以得到root shell。具体方式请参考用户使用的Linux版本的说明。
一般来说,作为服务器,系统应该只存在Linux这个单一的操作系统,也就是说,LILO只要启动Linux就可以了,那么如果我们将LILO删除不就可以防止非法用户通过LILO的单用户模式绕过密码验证的入侵了吗?我们只需要运行下面的命令就可以卸掉LILO。
#/sbin/LILO-u
小提示:
使用该命令是很简单的,但是要确保Linux所在的分区一定是服务器的当前活动分区,如果是用其他的启动工具(如Systerm Command、NTOSLoader)来引导Linux的,多半还要重新设置启动工具。
二,为LILO的单用户模式加密码:
可能有的读者会说卸载LILO会带来一定的不方便,毕竟有一个启动界面还是大家习惯的。那么能否在不卸载LILO的情况下加强LINUX启动安全级别呢?方法是有的,我们可以为Linux的单用户模式加上口令,只要在/etc/LILO.conf文件中加上下面两行:
restricted
password=你设置的口令
另外还需要在/etc/LILO.conf文件中加上:
prompt
通过上面的设置,LILO将一直等待用户选择操作系统,但是,如果有timeout这个选项,则时间到达后,用户没有做出选择,LILO 就会自行引导默认的系统。
这里列举一个LILO.conf的例子:
boot=/dev/sda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
message=/boot/message
linear
default=linux
image=/boot/vmlinuz-2.4.4-2
label=linux
initrd=/boot/initrd-2.4.2-2.img
read-only
root=/dev/sda5
restricted
password=!#$%^12345
上面的LILO.conf有以下的功能。以/boot/vmlinuz-2.4.2内核来启动系统,它存放在SUSI1硬盘的MBR之后的第1个分区上,如果用参数“linux single”来启动Linux,timeout选项将给出5秒钟的时间用于接受口令。其中,message=/boot/message让LILO以图形模式显示,如果去掉这一行,那么,LILO将以传统的文本模式显示。Linear作用是使LILO生成线性地址,而不使用通常的Sector/Head/Cylinder机制。Linux地址机制可以不依赖磁盘的物理结构。
因为LILO的口令是以明文形式存在的,所以一定要确保LILO.conf变成仅root可以读写,其设置方法是执行:
#chmod 600/etc/LILO.conf
#chattr+i/etc/LILO.conf
然后必须进行下面的执行才能是LILO生效:
#/sbin/LILO
将会显示“Added linux”,表示LILO已经生效。
虽然重新启动并不是必须要做的,但是用户最好还是通过重新启动一次来检查一下对LILO所做的修改是否真的已经生效。
另外为了防止LILO.conf无意或由于其他原因被修改,应该将/etc/LILO.conf设置为不可更改,其设置方法是执行:
#chattr +i/etc/LILO.conf
日后若要修改LILO.conf文件,必须先去掉该文件的不可更改的属性:
#chattr ?i/etc/LILO.conf
小提示:
只有root用户可以对文件设置不可更改的属性。
现在版本的Linux的LILO是图形界面的,要进入单用户模式,只需在LILO界面出现之后,按快捷键Ctrl+X就会进入文本模式,然后输入“linux single”就可以了。
三,给GRUB加一把锁
Linux世界在很长一段时间里一直使用LILO,而且它可以让上百万的Linux用户引导系统。LILO确实很有效。但是LILO的维修率很高,而且很不灵活。从RedHat Linux7.2起,GRUB(Grand Unified Bootloader)就取代LILO成为了默认的启动装载程序,可见GRUB大有过人之处。不过相对于LILO来说,大家对GRUB还是要陌生一些。
在Linux中,当谈到root文件系统时,通常是指主Linux分区。但是,GRUB有它自己的root分区定义。GRUB的root分区是保存Linux内核的分区。这可能是你的正式root文件系统,也可能不是。例如,在Gentoo Linux中,有一个单独的小分区专用于保存Linux内核与引导信息。大多数情况下,我们不安装这个分区,这样在系统以外崩溃或重新引导时,就不会把它弄乱。
在LILO.conf中,最多有16个操作系统选项,它比GRUB有更大的灵活性。LILO.conf配置文件主要分为两部分:一部分是全局配置,另一部分是引导配置,“#”表示注释。与LILO相比,GRUB有更强的交互性。LILO要求用户十分明白每个参数才能很好地掌握;而GRUB则更加看中用户的交互性,两者在bootloader中不分伯仲。和LILO的口令的作用不同,GRUB的口令只用于防止用户修改菜单直接进入Single user mode。
在安装Linux的时候,在选择GRUB作引导程序后需要设置GRUB的口令。当然如果在安装GRUB的时候没有设置口令,可以参照以下方法给GRUB加口令:
第一步:启动系统后出现GRUB的画面,按C键进入命令方式。
第二步:输入命令md5crypt:
grub>md5crypt
Password:********
Encrypted:$1$5R.2$OanRg6GT.Tj3uJZzb.hye0
第三步:然后将加密的密码拷贝到/boot/grub/grub.conf中password的一行。如笔者的grub.conf文件如下:
timeout=25
splashimage=(hd0,5)/grub/splash.xpm.gz
password―md5 $1$5R.2$OanRg6GT.Tj3uJZzb.hye0
#boot=/dev/had
defaule=1
title Red Hat Linux(2.4.20-8)
root(hd0,5)
kernel/vmlinuz-2.4.20-8 ro root=/dev/hda7
initrd/initrd-2.4.20-8.img
title Windows XP
rootnoverify(hd0,0)
chainloader +1
我们可以看到,GRUB 的口令是经过MD5加密的,这一点和LILO所使用的密码是明文有所不同。
四,将Ctrl+Alt+Del“禁”行到底:
为防止用户执行三指敬礼“Ctrl+Alt+Del”来重新启动Linux服务器,这也是攻击。我们可以使用root身份修改/etc/inittab文件,在“ca::ctaaltdel:/sbin/shutdown-t3-r now”一行前面加上#注释掉,然后重新设置/etc/rc.d/init.d目录下所有文件的许可权限:
#chmod-R700/etc.rc.d/init.d/*
这样就只有root超级用户才可以读写并执行上述所有的脚本文件。最后执行:
#/sbin/init q
使上面的设置生效。
设置完毕后一般的用户就无法使用Ctrl+Alt+Del来重新启动linux服务器了,只有你这个网络管理员root才可以做的到。
总结:
提高linux系统安全的手段和措施有很多种,本篇文章只是就启动时刻的lilo和grub安全介绍了几个方法,各位IT168的读者可以根据自己LINUX启动使用情况自行采取行动。