Linux安全管理的基本技巧(1)


Linux作为是一个开放源代码的免费操作系统,以其高效隐定的优秀品质,越来越受到用户们的欢迎,并在全世界不断普及开来。相信在不久的将来Linux还会得到更大更快的发展。虽然,Linux和Unix很相似,但是它们之间还是有不少重要的差别。

对于很多习惯了UNIX和Windows的系统管理员来讲,如何保证Linux操作系统的安全可靠将面临许多新的挑战。本文在此将给大家介绍一些Linux管理安全的基本技巧,希望能对大家有所帮助。

首先我想从系统的安全配置,开始我们的话题。因为我个人认为一位管理员要能充分利用系统提供的安全机制、挖掘系统自身的潜力来对服务器进行高效安全的维护,才能称得上优秀。我并不是完全反对使用防火墙等工具,但是正如人一样,我们可以消毒、可以带口罩,却没有我们自身体魄强健、有抗体来得好。

Linux是完全开放源代码的免费操作系统,其可开发的潜力极大,有能力的管理员甚至可以通过自行改编内核来满足自己服务器优良工作的需要。当然,在此我们只讲一些基本,但实用的配置技巧。

一、ILO的安全设置

LILO是Linux Loader的缩写,它是LINUX的启动模块

我们可通过修改“/etc/lilo.conf”文件中的内容来对它进行配置。在文件中加上,如下两个参数:restricted,password。这两个参数可以使你的系统在启动lilo时就要求密码验证。

boot=/dev/hda

map=/boot/map

install=/boot/boot.b

prompt

timeout=00 #把这行该为00,这样系统启动时将不在等待,而直接启动LINUX

message=/boot/message

linear

default=linux

restricted #加入这行

password= #加入这行并设置自己的密码

image=/boot/vmlinuz-2.4.2-2

label=linux

root=/dev/hda6

read-only

因为"/etc/lilo.conf"文件中包含明文密码,所以要把它设置为root权限读取。

# chmod 0600 /etc/lilo.conf

还要使用“chattr”命令使"/etc/lilo.conf"文件变为不可改变。

# chattr +i /etc/lilo.conf

这样可以对“/etc/lilo.conf”文件起到很好的保护作用。对其它文件的保护也可以采用此方法)

最后要使lilo.conf文件生效要用

# /sbin/lilo -v

更新一下系统。

二、口令安全

口令可以说是系统的第一道防线,目前网络上大部分的系统入侵都是从猜测口令或者截获口令开始的,所以口令安全至关重要。首先要杜绝不设口令的帐号存在。这可以通过查看/etc/passwd文件来发现。例如,存在用户名为test的帐号,没有设置口令,则在/etc/passwd文件中就有如下一行:

test::100:9::/home/test:/bin/bash

其第二项为空,说明test这个帐号没有设置口令,这是非常危险的!应将该类帐号删除或者设置口令。

其次,在旧版本的linux中,在/etc/passwd文件中是包含有加密的密码的,这就给系统的安全性带来了很大的隐患,最简单的方法就是可以用暴力破解的方法来获得口令如,用John等工具)。

可以使用命令/usr/sbin/pwconv或者/usr/sbin/grpconv来建立/etc/shadow或者/etc/gshadow文件,这样在/etc/passwd文件中不再包含加密的密码,而是放在/etc/shadow文件中,该文件只有超级用户root可读!

第三点是修改一些系统帐号的Shell变量,例如uucp,ftp和news等,还有一些仅仅需要FTP功能的帐号,一定不要给他们设置 /bin/bash或者/bin/sh等Shell变量。可以在/etc/passwd中将它们的Shell变量置空,例如设为/bin/false或者 /dev/null等,也可以使用usermod!-s /dev/nullusername命令来更改username的Shell为/dev/null。这样使用这些帐号将无法Telnet远程登录到系统中来!

第四点是修改缺省的密码长度:在你安装linux时默认的密码长度是5个字节。但这并不够,要把它设为8。修改最短密码长度需要编辑login.defs文件vi/etc/login.defs),把下面这行

PASS_MIN_LEN 5

改为

PASS_MIN_LEN 8

login.defs文件是login程序的配置文件。

最后别忙了为root加上一个强壮的密码,8位以上,最好包含特殊字符。

三、登录安全

1、自动注销帐号的登录,在unix系统中root账户是具有最高特权的。如果系统管理员在离开系统之前忘记注销root账户,那将会带来很大的安全隐患,应该让系统会自动注销。通过修改账户中“TMOUT”参数,可以实现此功能。TMOUT按秒计算。编辑你的profile文件vi /etc/profile),在"HISTFILESIZE="后面加入下面这行:

TMOUT=300

300,表示300秒,也就是表示5分钟。这样,如果系统中登陆的用户在5分钟内都没有动作,那么系统会自动注销这个账户。你可以在个别用户的“.bashrc”文件中添加该值,以便系统对该用?

改变这项设置后,必须先注销用户,再用该用户登陆才能激活这个功能。

2、使用PAM可插拔认证模块)禁止任何人通过su命令改变为root用户su(Substitute

User替代用户)命令允许你成为系统中其他已存在的用户。如果你不希望任何人通过su命令改变为root用户或对某些用户限制使用su命令,你可以在su配置文件在"/etc/pam.d/"目录下)的开头添加下面两行: 编辑su文件(vi /etc/pam.d/su),在开头添加下面两行:

auth sufficient /lib/security/pam_rootok.so

auth required /lib/security/Pam_wheel.so group=wheel

这表明只有"wheel"组的成员可以使用su命令成为root用户。你可以把用户添加到“wheel”组,以使它可以使用su命令成为root用户。添加方法可以用这个命令:chmod -G10 username 。

四、控制台访问安全

1、取消普通用户的控制台访问权限,你应该取消普通用户的控制台访问权限。比如shutdown、reboot、halt等命令。

# rm -f /etc/security/console.apps/

是你要注销的程序名。

2、不允许从不同的控制台进行root登陆

"/etc/securetty"文件允许你定义root用户可以从那个TTY设?

傅锹健D憧梢员嗉?quot;/etc/securetty"文件,再不需要登陆的TTY设备前添加“#”标志,来禁止从该TTY设备进行root登陆。

在/etc/inittab文件中有如下一段话:

# Run gettys in standard runlevels

1:2345:respawn:/sbin/mingetty tty1

2:2345:respawn:/sbin/mingetty tty2

#3:2345:respawn:/sbin/mingetty tty3

#4:2345:respawn:/sbin/mingetty tty4

#5:2345:respawn:/sbin/mingetty tty5

#6:2345:respawn:/sbin/mingetty tty6

系统默认的可以使用6个控制台,即Alt+F1,Alt+F2...,这里在3,4,5,6前面加上“#”,注释该句话,这样现在只有两个控制台可供使用,最好保留两个。然后重新启动init进程,改动即可生效!


相关内容