本文将讲述一些基本的安全措施,使你能更安全地使用Linux,并且主要是关于Red Hat Linux的安全使用。
BIOS安全
记着要在BIOS设置中设定一个BIOS密码,不接收软盘启动。这样可以阻止不怀好意的人用专门的启动盘 启动你的Linux系统,并避免别人更改BIOS设置,如更改软盘启动设置或不弹出密码框直接启动服务器等。
LILO安全
在“/etc/lilo.conf”文件中添加3个参数:time-out、restricted 和 password。这些选项会在启动时间(如“linux single”)转到启动转载程序过程中,要求提供密码。
步骤1
编辑lilo.conf文件(/etc/lilo.conf),添加和更改这三个选项:
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
time-out=00 #change this line to 00
prompt
Default=linux
restricted #add this line
password= #add this line and put your password
image=/boot/vmlinuz-2.2.14-12
label=linux
initrd=/boot/initrd-2.2.14-12.img
root=/dev/hda6
read-only
步骤2
由于其中的密码未加密,“/etc/lilo.conf”文件只对根用户为可读。
[root@kapil /]# chmod 600 /etc/lilo.conf (不再为全局可读)
步骤3
作了上述修改后,更新配置文件“/etc/lilo.conf”。
[Root@kapil /]# /sbin/lilo -v (更新lilo.conf文件)
步骤4
还有一个方法使“/etc/lilo.conf”更安全,那就是用chattr命令将其设为不可改:
[root@kapil /]# chattr +i /etc/lilo.conf
它将阻止任何对“lilo.conf”文件的更改,无论是否故意。
关于lilo安全的更多信息,请参考LILO。
禁用所有专门帐号
在lp, sync, shutdown, halt, news, uucp, operator, games, gopher等系统中,将你不使用的所有默认用户帐号和群组帐号删除。
要删除用户帐号:
[root@kapil /]# userdel LP
要删除群组帐号:
[root@kapil /]# groupdel LP
选择恰当的密码
选择密码时要遵循如下原则:
密码长度:安装Linux系统时默认的最短密码长度为5个字符。这个长度还不够,应该增为8个。要改为8个字符,必须编辑 login.defs 文件(/etc/login.defs):
PASS_MIN_LEN 5
改为:
PASS_MIN_LEN 8
“login.defs”是登录程序的配置文件。
启用盲区密码支持
请启用盲区密码功能。要实现这一点,使用“/usr/sbin/authconfig”实用程序。如果想把系统中现有的密码和群组改为盲区密码和群组,则分别用 pwconv 和 grpconv 命令。
根帐户
在UNIX系统中,根帐户具有最高权限。如果系统管理员在离开系统时忘了从根系统注销,系统应该能够自动从shell中注销。那么,你就需要设置一个特殊的 Linux 变量“TMOUT”,用以设定时间。
编辑“/etc/profile”文件在
"HISTFILESIZE="
之后添加:
TMOUT=3600
为“TMOUT=”输入的值代表1小时的妙数(60 * 60 = 3600妙)。
在“/etc/profile”文件中加了这一行后,任何用户使用该系统时有1小时的休止状态,将自动执行注销操作。而如果用户要对该变量进行分别设定,可以在“.bashrc”文件中定义自动注销的时间。
修改了该参数后,必须退出并重新登录(为根帐户),更改才能生效。
禁止普通用户对控制台的所有访问
应该禁止服务器上的普通用户对关闭、重启、挂起等控制台级别程序的访问。运行如下命令:
[root@kapil /]# rm -f /etc/security/console.apps/
其中 为禁止访问的程序名称。
禁用 & 卸载所有不使用的服务
对所有不使用的服务,应该禁用并卸载,这样可以少些麻烦。查看“/etc/inetd.conf”文件,在不需要的项目行前加“#”号,即改为注释语句,就可以禁用它们了。然后给 inetd 过程发送一个 SIGHUP 命令,对“inetd.conf”文件进行更新。步骤如下:
步骤1
将“/etc/inetd.conf”文件许可改为600,使其只对根用户为可读写。
[Root@kapil /]# chmod 600 /etc/inetd.conf
步骤2
确保“/etc/inetd.conf”文件的所有者为根用户。
步骤3
编辑 inetd.conf 文件(/etc/inetd.conf),禁用如下服务:
ftp、telnet、shell、login、exec、talk、ntalk、imap、pop-2、pop-3、finger、auth,等等。
如果不打算用,禁用了这些服务可以减少风险。
步骤4
给 inetd 过程发送HUP信号:
[root@kapil /]# killall -HUP inetd
步骤5
将“/etc/inetd.conf”文件设为不可更改,chattr 命令可以使任何人都无法对其进行修改:
[root@kapil /]# chattr +i /etc/inetd.conf
唯一可以设置或清除该属性的用户只有根用户。要修改inetd.conf文件,必须去掉不可更改标记:
[root@kapil /]# chattr -i /etc/inetd.conf
TCP_WRAPPERS
通过 TCP_WRAPPERS,可以使服务器更好地抵制外部侵入。最好的办法是拒绝所有主机:在“/etc/hosts.deny”文件中加入“ALL: ALL@ALL, PARANOID”,然后在“/etc/hosts.allow”列出允许访问的主机。TCP_WRAPPERS 受控于两个文件,搜索时停在第一个匹配的地方。
/etc/hosts.allow
/etc/hosts.deny