Linux系统凭借其稳定且源代码公开的特性,在Internet上被用来做Web服务器与数据库服务器已经越来越多了,随之,Linux系统的安全性也被愈发重视,加固Linux系统对于很多人来说,也是迫在眉睫的事情了。那么,要较好的加固Linux系统,足以应付各种突发事件与黑客的攻击,我们需要从哪些方面入手呢?
1.安装和升级
尽量选用最新的Linux发行版本,安装前拔掉网线,断开物理连接,安装时建议用custom自定义方式安装软件包,数量以少为好。一般来说服务器没有必要安装X-windows,在lilo/grub引导器中加人口令限制,防止能够物理接触的恶意用户。
因为Linux安装光盘的rescue模式可以跳过这个限制,所以还要给BIOS加上密码或服务器机箱上锁。/var、/home、/usr和/root等目录使用独立的物理分区,防止垃圾数据和日志填满硬盘而导致D.o.S攻击。对root账号要给予强壮的口令。
安装完毕立即用up2date或apt升级系统软件,有时升级内核也是必要的,因为内核出现问题同样会给攻击者提供机会。apt是Debian GNU Linux下的一个强大的包管理工具,也可用于其他版本的Linux.
2.账号
如果系统中的用户比较多,可以编辑/etc/login.defs,更改密码策略,删除系统中不必要的账户和组,如果不开匿名ftp,可以把ftp账号也删了。删除账号的命令如下:
[root@ayazero/]#userdel-r username
最安全的方式是本地维护,可惜不太现实,但还是需要限制root的远程访问,管理员可以用普通账户远程登录,然后su到root,我们可以把使用su的用户加到wheel组来提高安全性。在/etc/pam.d/su文件的头部加入下面两行代码:
编辑/etc/securetty,注释掉所有允许root远程登录的控制台,然后禁止使用所有的控制台程序,其命令如下:
登录采用加密的ssn,如果管理员只从固定的终端登陆,还应限制合法ssn客户端的范围,
防止嗅探及中间人攻击。同时,将命令历史纪录归为零,尽可能的隐藏你做过的事情,其命令为:
3.服务
采用最少服务原则,凡是不需要的服务一律注释掉。在/etc/inetd.conf中不需要的服务前加"#",较高版本中已经没有inetd,而换成了Xinetd;取消开机自动运行服务,把/etc/rc.d/rc3.d下不需要运行的肥务的第一个字母"S"改成"K",其他不变.
如果你希望简单一点,可以使用/etc/host.allow和/etc/host.deny这两个文件,但是推荐使用iptables防火墙,所以不在此详述.
(未完待续)