文章摘要:
Linux作为开放式操作系统具有很多优点,但也存在一些安全隐患。关于如何解决这些隐患,为应用提供一个安全的操作平台,本文会告诉你一些最基本、最常用,同时也是最有效的招数。
正文:
Linux 网络安全问题及其对策
背景
Linux不论在功能上、价格上或性能上都有很多优点,然而,作为开放式操作系统,它不可避免地存在一些安全隐患。关于如何解决这些隐患,为应用提供一个安全的操作平台,本文会告诉你一些最基本、最常用,同时也是最有效的招数。
Linux是一种类Unix的操作系统。从理论上讲,Unix本身的设计并没有什么重大的安全缺陷。多年来,绝大多数在Unix操作系统上发现的安全问题主要存在于个别程序中,所以大部分Unix厂商都声称有能力解决这些问题,提供安全的Unix操作系统。但Linux有些不同,因为它不属于某一家厂商,没有厂商宣称对它提供安全保证,因此用户只有自己解决安全问题。
Linux是一个开放式系统,可以在网络上找到许多现成的程序和工具,这既方便了用户,也方便了黑客,因为他们也能很容易地找到程序和工具来潜入Linux系统,或者盗取Linux系统上的重要信息。不过,只要我们仔细地设定Linux的各种系统功能,并且加上必要的安全措施,就能让黑客们无机可乘。
一般来说,对Linux系统的安全设定包括取消不必要的服务、限制远程存取、隐藏重要资料、修补安全漏洞、采用安全工具以及经常性的安全检查等。本文以红旗Linux为例,讲述一些提高Linux系统安全性的方法,相信对于提高用户 Linux 系统的安全性大有裨益。
一、取消不必要的服务
早期的Unix版本中,每一个不同的网络服务都有一个服务程序在后台运行,后来的版本用统一的/etc/inetd服务器程序担此重任。Inetd是Internetdaemon的缩写,它同时监视多个网络端口,一旦接收到外界传来的连接信息,就执行相应的TCP或UDP网络服务。
由于受inetd的统一指挥,因此Linux中的大部分TCP或UDP服务都是在/etc/inetd.conf文件中设定。所以取消不必要服务的第一步就是检查/etc/inetd.conf文件,在不要的服务前加上""#""号。
一般来说,除了http、smtp、telnet和ftp之外,其他服务都应该取消,诸如简单文件传输协议tftp、网络邮件存储及接收所用的imap/ipop传输协议、寻找和搜索资料用的gopher以及用于时间同步的daytime和time等。
还有一些报告系统状态的服务,如finger、efinger、systat和netstat等,虽然对系统查错和寻找用户非常有用,但也给黑客提供了方便之门。例如,黑客可以利用finger服务查找用户的电话、使用目录以及其他重要信息。因此,很多Linux系统将这些服务全部取消或部分取消,以增强系统的安全性。
Inetd除了利用/etc/inetd.conf设置系统服务项之外,还利用/etc/services文件查找各项服务所使用的端口。因此,用户必须仔细检查该文件中各端口的设定,以免有安全上的漏洞。
在Linux中有两种不同的服务类型:一种是仅在有需要时才执行的服务,如finger服务;另一种是一直在执行的永不停顿的服务。这类服务在系统启动时就开始执行,因此不能靠修改inetd来停止其服务,而只能从修改/etc/rc.d/rc[n].d/文件或用Runleveleditor去修改它。提供文件服务的NFS服务器和提供NNTP新闻服务的news都属于这类服务,如果没有必要,最好取消这些服务。
二、口令安全
在进入Linux系统之前,所有用户都需要登录,也就是说,用户需要输入用户账号和密码,只有它们通过系统验证之后,用户才能进入系统。
与其他Unix操作系统一样,Linux一般将密码加密之后,存放在/etc/passwd文件中。Linux系统上的所有用户都可以读到/etc/passwd文件,虽然文件中保存的密码已经经过加密,但仍然不太安全。因为一般的用户可以利用现成的密码破译工具,以穷举法猜测出密码。比较安全的方法是设定影子文件/etc/shadow,只允许有特殊权限的用户阅读该文件。
在 RedFlag Linux 中提供为影子口令有很好的支持,提供了丰富的工具:
1、把正常口令转换成shadow口令, 并转回(pwconv,pwunconv)。
2、较验口令、组和相应的shadow文件(pwck,grpck)。
3、增加、 删除和修改用户帐号的工业标准方式(useradd, usermod,,和userdel)。
4、增加,删除和修改用户组的工业标准方式(groupadd,,groupmod, 和groupdel)。
5、管理/etc/group文件的工业标准方式(gpasswd)。
请注意: 关于这些工具, 还有一点有趣的地方::不管是否用了shadow, 这些工具都能正常工作。
在RedFlag Linux 中,系统缺省情况已经将密码放在 /etc/shadow 文件中,该文件只有超级用户(root)可以读。可以使用命令 /usr/sbin/pwconv 或 /usr/sbin/grpconv 来建立 /etc/shadow 或 /etc/gshadow 文件。
在Linux系统中,如果要采用影子文件,必须将所有的公用程序重新编译,才能支持影子文件。这种方法比较麻烦,比较简便的方法是采用插入式验证模块(PAM)。很多Linux系统都带有Linux的工具程序PAM,它是一种身份验证机制,可以用来动态地改变身份验证的方法和要求,而不要求重新编译其他公用程序。这是因为PAM采用封闭包的方式,将所有与身份验证有关的逻辑全部隐藏在模块内,因此它是采用影子档案的最佳帮手。
此外,PAM还有很多安全功能:它可以将传统的DES加密方法改写为其他功能更强的加密方法,以确保用户密码不会轻易地遭人破译;它可以设定每个用户使用电脑资源的上限;它甚至可以设定用户的上机时间和地点。
Linux系统管理人员只需花费几小时去安装和设定PAM,就能大大提高Linux系统的安全性,把很多攻击阻挡在系统之外。在后面我们将对 PAM 进行介绍。
三、保持最新的系统核心
由于Linux流通渠道很多,而且经常有更新的程序和系统补丁出现,因此,为了加强系统安全,一定要经常更新系统内核。
Kernel是Linux操作系统的核心,它常驻内存,用于加载操作系统的其他部分,并实现操作系统的基本功能。由于Kernel控制计算机和网络的各种功能,因此,它的安全性对整个系统安全至关重要。
早期的Kernel版本存在许多众所周知的安全漏洞,而且也不太稳定,只有2.0.x以上的版本才比较稳定和安全,新版本的运行效率也有很大改观。在设定Kernel的功能时,只选择必要的功能,千万不要所有功能照单全收,否则会使Kernel变得很大,既占用系统资源,也给黑客留下可乘之机。
在Internet上常常有最新的安全修补程序,Linux系统管理员应该消息灵通,经常光顾安全新闻组,查阅新的修补程序。
四、检查登录密码
设定登录密码是一项非常重要的安全措施,如果用户的密码设定不合适,就很容易被破译,尤其是拥有超级用户使用权限的用户,如果没有良好的密码,将给系统造成很大的安全漏洞。
在多用户系统中,如果强迫每个用户选择不易猜出的密码,将大大提高系统的安全性。但如果passwd程序无法强迫每个上机用户使用恰当的密码,要确保密码的安全度,就只能依靠密码破解程序了。
实际上,密码破解程序是黑客工具箱中的一种工具,它将常用的密码或者是英文字典中所有可能用来作密码的字都用程序加密成密码字,然后将其与Linux系统的/etc/passwd密码文件或/etc/shadow影子文件相比较,如果发现有吻合的密码,就可以求得明码了。
在网络上可以找到很多密码破解程序,比较有名的程序是crack。用户可以自己先执行密码破解程序,找出容易被黑客破解的密码,先行改正总比被黑客破解要有利。
五、设定用户账号的安全等级
除密码之外,用户账号也有安全等级,这是因为在Linux上每个账号可以被赋予不同的权限,因此在建立一个新用户ID时,系统管理员应该根据需要赋予该账号不同的权限,并且归并到不同的用户组中。
在Linux系统上的tcpd中,可以设定允许上机和不允许上机人员的名单。其中,允许上机人员名单在/etc/hosts.allow中设置,不允许上机人员名单在/etc/hosts.deny中设置。设置完成之后,需要重新启动inetd程序才会生效。此外,Linux将自动把允许进入或不允许进入的结果记录到/rar/log/secure文件中,系统管理员可以据此查出可疑的进入记录。
每个账号ID应该有专人负责。在企业中,如果负责某个ID的职员离职,管理员应立即从系统中删除该账号。很多入侵事件都是借用了那些很久不用的账号。
在用户账号之中,黑客最喜欢具有root权限的账号,这种超级用户有权修改或删除各种系统设置,可以在系统中畅行无阻。因此,在给任何账号赋予root权限之前,都必须仔细考虑。
Linux系统中的/etc/securetty文件包含了一组能够以root账号登录的终端机名称。最好不要修改该文件,如果一定要从远程登录为root权限,最好是先以普通账号登录,然后利用su命令升级为超级用户。
六、清除黑客犯罪的温床
在Linux 系统中,有一系列r字头的公用程序,可以使用户在不需要提供密码的情况下执行远程操作。因此,在提供方便的同时,也带来了潜在的安全问题,它们常被黑客用做入侵的武器,非常危险。
在 Linux 系统中,系统是通过查看 /etc/hosts.equiv 及$HOME/.rhosts文件来控制可以使用""r""命令的节点和用户。所以,这两个文件的正确设置是安全使用""r""命令的基本保障。
黑客在侵入某个Linux 系统后,通常做的一件事就是修改在主目录下的"".rhosts""文件,以便为自己日后再次进入系统留下后路。因此建议用户在会议自己的系统被闯入时,马上查看"".rhosts""文件,检查其最后一次修改日期及内容,特别注意文件中绝对不能出现""+ +"",否则你的帐户就可以被网络上任何一个用户不需要知道你的密码而任意进入。
另外,还要特别注意"".rhosts""文件中不能涉及一些特殊帐户(例如 news,bbs 等等),一些黑客就是通过这条途径进入用户帐户而有不留下自己的来龙去脉。
可以看出,"".rhosts""为外部侵入留下了潜在的危险,用户在自己设置时要格外小心。如果不是特别需要,建议在"".rhosts""文件中不要设外部入口。
同样的,对于系统管理员,如果不是特别需要,建议在 /etc/hosts.equiv 中不设入口。如果在 /etc/hosts.equiv 中有入口,而用户个人为了安全起见,可以在"".rhost""文件中加入""- -"",从而关闭所有的入口。
此外,建议在这两个文件中不要加注释行(以""#""开头),因为有些有特权的黑客可以将其节点名设成""#""而获得进入你系统的权利。
目前很多系统都使用 ssh 来代替早期的这些""r""命令。我们在下面会介绍 ssh。
由于r字头指令是黑客们的温床,因此很多安全工具都是针对这一安全漏洞而设计的。例如,PAM工具就可以用来将r字头公用程序的功能废掉,它在/etc/pam.d/rlogin文件中加上登录必须先核准的指令,使整个系统的用户都不能使用自己home目录下的.rhosts文件。
七、控制网络地址用户对系统的访问
1、通过 IP 地址限制。
这是通过安装TCP_Wrappers 软件来实现的。该软件可对系统进行 telnet、ftp、rlogin、rsh、finger和talk 等服务访问的IP 地址进行控制。比如你可以只允许公司内部的一些机器对服务器进行这些操作。RedFlag Linux 系统缺省情况下已经安装了TCP_Wrappers。
2、限制超级用户口令。
超级用户口令只允许系统管理员知道,并要求定期修改。另外,不允许用户远程登录来访问root,这是在系统文件 /etc/securetty 中缺省设置好的。还可以通过""sudo""命令,将原来只有root 能执行的一些操作分授给其他用户。关于 ""sudo""工具,我们将在下面讲述。
八、root 帐号
一些系统管理命令只能由超级用户 root 运行。超级用户拥有其他用户所没有的特权。超级用户不管文件存取权限如何,都可以读、写任何文件,运行任何程序。系统管理员通常使用命令 su 或以root 进入系统从而成为超级用户。 su 命令可以不注销帐号,而以另一用户身份登录系统。它将启动一个新的shell 并将有效和实际的 UID 和 GID 设置给另一用户,因此必须将 root 口令保密。
此外,在使用root 帐号时,还必须注意以下几点:
1、在执行复杂任务之前,必须明白自己的目的,尤其在执行 rm 这样的可能破坏系统的命令时。例如,如果要执行""rm *.c""时,应该首先执行""ls -l *.c"",列出所有要删除的文件,当确信每个文件都可以删除时才能继续进行操作。
2、root 用户的命令路径是很重要的。命令路径也就是PATH 环境变量的值,定义了shell 搜索命令的位置。在PATH 语句中,要尽量限制root 用户的命令路径,允许"".""出现在变量中。另外,不要在路径中出现可写的目录,防止黑客在目录中修改或放置新的可执行文件,为自己留下""后门""。
3、不要由 root 执行 r 命令,如 rsh、rlogin等。这些命令将会导致各种类型的攻击。不要为 root创建 .hosts 文件。
4、不要使用 root 远程登录系统。如果需要登录,那么可以先以普通用户身份登录。然后使用 su 命令切换到 root。
5、以 root 身份登录后,一切操作都要""三思而后行""。因为每一个操作都可能会给系统带来很大的影响,所以在输入命令之前必须考虑清楚。
如果必须允许其他人拥有 root 权限,那么可以使用一些工具来达到这一目的。Sudo 就是其中之一。它允许用户用自己的口令以root 身份访问有限的命令。例如,允许用户在操作系统上安装或卸载可移动介质,但是没有其他root 用户的特权。sudo 可以自动记录日志。在日志里,记录了每一条执行的命令和执行命令的用户。所以,即使有很多用户使用sudo 命令,也不会影响系统的运行。
九、 X管理
X 的使用使计算机网络锦上添花。它除了提供友好的图形用户截面,还可以使用户通过网络在本机上调用远程节点的 X 程序。同时,也由于 X 的广泛应用,物美价廉的X终端才得以倍受欢迎。
X 产生的宗旨原本就是通过client/server 模型,使用户的本地界面可以显示网络上任何其它系统的 X 客户程序;反过来,本机 X 客户程序也可以在网络上任何其它系统上显示。 X 的设计本身就是针对并构件与计算机网络之上的。然而在它给广大用户带来方便的同时,也正由于它的网络属性带来了不可避免的网络安全问题。
下面将推荐几项措施,以保障你的 X 系统的基本安全:
1、设置 X 访问控制。
X 提供了基于节点的访问控制的基本手段。
(1)/etc/X0.hosts 文件的正确设置。
该文件列出了可以访问本X服务器的一系列节点名。即名单上的系统的 X 客户程序可以随时访问本地 X 服务器。这个文件应有系统管理员根据实际情况合理设定。从安全角度出发,建议此文件中尽可能地少设入口。
例如,PCWS2上/ETC/X0.hosts文件内容为:
PCWS0.RedFlag linux.com.cn
PCWS1.RedFlag linux.com.cn
…
PCXT1.RedFlag linux.com.cn
PCXT2.RedFlag linux.com.cn
即PCWS0 上的 X 客户程序(如 XV,ghostview)被授权可以访问PCWS2的X服务器,即PCWS0可以向 PCWS2 上送显示内容。
(2) xhost 客户程序。
Xhost 客户程序可以交互地设置节点访问控制。例如,允许PCXT1上的 X 客户访问PCWS0 的Xserver,则应该在PCWS0 上输入""xhost+PCXT1"",那么就会产生下列信息:
PCXT1 added to access control list
""xhost+""则会解除访问控制,允许任何节点的Xclient 访问本地X服务器,从安全的角度讲,这无疑是大开城门,存在着许多潜在的危险。因此,强烈建议用户不要使用这样的命令。
2、麻省理工魔术蛋糕(MIT-MAGIC-COOKIE1)
上面的措施只限制到节点,即使所有其它节点均处于访问控制之下,也仍存在着一个很大的漏洞,即任何连接到本机节点上的用户都有权访问本机 X 服务器。
为了解决这一点,有些xhost 支持基于用户的访问控制,即 xhost+username@domain,而普遍采取的方法是MIT-MAGIC-COOKIE-1。
(1) HOME/.Xauthority 文件。
如果你的系统提供MIT-MAGIC-COOKIE-1 服务,你就会在你的主目录下发现一个.Xauthority 文件。这个文件装有机器可识别代码(代码被称为魔术蛋糕),相当于进入 X 服务器的密码。一个 X 客户机程序在被允许与 X 连接前,必须首先能够从.Xauthority文件中获得密码,被 X 服务器核实后,才能获得其访问权。因此,为了确保你自己可以访问你的X 显示,你必须将.Xauthority文件保管好,只允许你本人可读或修改此文件。即"".Xauthority""的文件保护应设置为""-rw------""。
(2) xauth 命令。
用户通常希望自己在网络上无论哪个节点帐户的 X 客户程序均可以访问魔术蛋糕,这样,不仅可以很方便地使用 X 的网络功能,又保证了安全性。当然,如果你的"".Xauthority""是由你的几个节点帐户共享的(如用 NFS 系统),那么你这几个节点的 X 客户程序可以方便地访问各 X 服务器。但如果是两个互不关联的系统,这时 xauth 命令可以解决这个问题。
xauth 命令用于将一个节点上的魔术蛋糕传送给另一个节点,例如将节点 PCWS2 魔术蛋糕传送给 PCXT1,可以使用下面的命令:
$xauth extract - PCWS2:0|rsh PCXT1 xauth merge -
这样,只要是用户本人使用这两个节点的 X 资源,就不需要在做任何 X 访问控制的设置。
3、保护 Xterm。
xterm 是 X 模拟字符终端提供的用户窗口,用户可以在命令提示符下键入各种命令。为了防止他人偷窥你在 xterm 输入的内容,xterm 专门提供了 xterm 保护功能,即在 xterm 的主菜单下(同时按ctrl 和第一个鼠标键)选""Securekeyboard""一项,这时xterm 的底色应该变黑。如果没有变色,则很有可能某个人正在监视你的xterm。一般建议用户在输入敏感信息时,将其 xterm 设保护。
十、安全检查
保护系统安全的一个主要任务就是监视系统的安全。这包括检查系统程序、系统日志以防未授权访问或是监视系统本身以查找安全漏洞。本节将介绍如何监视系统安全。
1、检查帐号安全
对于系统帐号,管理员要定期检查的是:在不正常的时间(比如深夜或假期)登录的用户和执行意想不到命令的用户。下面将为读者介绍一些命令和文件,它们可以帮助管理员获得这些信息。
(1)、lastlog 文件
/var/log/lastlog 文件可以记录系统中每个用户的最后一次登录时间。当用户每次登录时,屏幕上显示的时间就是从lastlog 文件中获得的。而且,finger 命令报告的登录时间也是从这个文件中取得的。系统管理员应该告诉每个用户仔细检查上次登录的时间,并报告不正常的登录时间。因为人们通常都会记得他上次登录的时间,所以通过这种方法很容易发现被破解的帐号。
(2)、utmp 和 wtmp 文件
/var/run/utmp 文件记录了当前登录系统的用户。我们可以使用who 命令来查看这个文件:
$ who
cuckoodoo ttyp1 Jul 22 22:03 (202.204.3.20)
zyc ttyp0 Jul 22 22:06 (202.204.3.16)
对于每个当前用户、登录名、使用终端、登录时间和远程主机(如果用户是使用网络登录)等信息会显示出来。
/var/run/wtmp 文件记录了每个用户的登录时间和注销时间。wtmp 可以用 last 命令查看。该命令将把文件中的每个项按照登录时间和注销时间合并、排序,然后显示出来。如果不带参数,last 命令将把文件中的所有信息都列出来。
$ last
devin ttyp1 vstout.vbrew.com Tue Nov 02 10:12-10:20(00:01)
chenlf ttyp2 cheli01.vbrewcom Tue Nov 02 10:14-10:23 (00:03)
reboot - Mon Nov 01 00:00
ring ttyp1 dragon.vbrew.com Mon Nov 01 17:32-18:39(00:01)
可以看出,输出结果中包含每个登录过程的用户名、使用终端、远程主机、登录注销时间和占用主机时间。而且,系统关闭和重新启动的记录在该文件中也可以找到。
(3)、pacct 文件
/var/log/pacct 文件记录了用户执行命令的信息(比如谁执行命令、命令执行时间、命令执行了多久等等)。如果编译核心时加上了 SYSACCT 选项(通常是不加这一项的),那么每一条命令执行完毕之后,就向 pacct 文件中添加一条日志记录。
可以使用 lastcomm 命令来列出 pacct 文件的内容。在不加参数的情况下,该命令会显示文件中的所有信息。如果用命令、用户名或终端作为参数,那么将只输出包含给定命令、用户名或终端名的信息。下面是执行 lastcomm 命令的一个例子:
$ lastcomm
sh S root - 0.67 sec Tue Nov 02 23:09
atrun root - 0.23 sec Tue Nov 02 23:09
lpd F root - 1.02 sec Tue Nov 02 23:08
lpr S ring tty01 1.21 sec Tue Nov 02 23:01
troff ring tty01 12.32 sec Tue Nov 02 23:01
eqn ring tty01 1:23 sec Tue Nov 02 23:01
文件中第一列的内容是命令名。下一列是一些特殊的命令标志:""F""表示该进程产生了一个子进程;""S""表示已经设置了进程的 SUID;""D""表示结束进程时 存储了内核;""X""表示进程被不正常的 kill 了。剩下的列显示了运行程序的用户、使用的终端、占用的 CPU时间和进程开始运行的时间和日期。
2、网络应用安全
由于黑客可以使用很多种方法攻击系统的网络应用程序,所以很难监视网络应用的安全。不过一些程序可以帮助用户完成这一任务。
(1)、syslog
syslog 提供了一种机制可以发送错误、状态和调试信息到控制台或日志文件中。通常日志文件的位置会随着Linux 的版本的不同而不同。在RedFlag Linux 中,可以在/var/log 目录下找到messages 、 mail.log 等日志文件。
/var/log/messages 文件记录了命令的执行信息,与其一起记录下来的还有日期、时间、发送信息的程序名称和程序的PID。
在 messages 文件中令管理员感兴趣的应该时 login 和 su 程序发送的信息。无论何时有人用 root 登录,login 程序都会在日志文件中添加一条记录。如果用户用 root 帐号直接登录而不是使用 su 命令成为超级用户,那么就很难确定是哪个用户在使用这个帐号了。如果在系统中禁止使用root 帐号远程登录到系统,那么就可以更好的监控网络安全了。
管理员应该经常查看 messages 文件,特别是一些系统认证信息。如果用户反复尝试某个帐号登录系统而又不失败,那么login程序也会将这一事件记录到日志文件中。如果用户尝试了三次,那么login 程序将禁止该用户继续登录。Messages 文件中的有关记录可以提醒管理员有人在试图猜口令。
当有人使用 su 命令切换到 root 或其他帐号时, su 程序将在日志文件中添加一条成功或失败的信息。这些信息可以告诉用户是否有人与他共享了一个口令,也能告诉管理员已经破解了一个系统帐号的黑客正在破解另一个帐号。
syslog 提供的信息是非常重要的,应该防止它们被篡改。因此必须修改 /var/log 目录的访问权限,使得只有少数用户可以对它进行读写。如果日志文件被篡改了,那么要查看一下是否可以确定修改的事件,篡改了哪些内容的信息。用以前备份的日志文件和现在的作对比是一个比较好的做法。黑客篡改日志文件的主要目的是""擦掉""他们留在系统里的""蛛丝马迹""。尽管日志文件被修改了,但是还是可以从留下的内容中发现可疑点。比如黑客修改它们之后检查日志文件。
如果可能的话,可以配置syslog 使它可以发送大多数的重要信息的拷贝到一个安全的系统。这样就可以防止黑客通过删除日志来掩盖他们的行迹了。有关内容可以参考sys.conf 的 man pages。
(3)、showmount 命令
在 NFS 文件服务器上,mounted 在/etc/mtab 文件中记录已安装的文件系统的情况,执行showmount 命令可以显示文件的内容。不带任何参数的 showmount 命令只是简单地显示所有的客户机。带 -a 和 -b 选项的 showmount 命令可以输出更有用的信息。-a 选项可以输出每个主机和该主机的安装目录,在输出结果中,被主机安装的每个目录都占一行。而带-d 选项的 showmount 命令会显示某个主机安装的所有目录。
执行 showmount 命令后,应该仔细检查输出结果。检查时,要注意两个问题。首先,只有信任的主机才可以安装文件目录。其次,也只有正常的目录才可以被安装。如果管理员发现不常被安装的目录却反常地安装了,那么可能是有人想""拜访""系统了。
3、 一些简单的系统监视命令
与大型监视程序相比,一些简单的 Linux 命令同样可以有效的监视网络的安全。经常运行这些命令,你就回习惯每个命令的输出格式。通过熟悉运行在系统上的进程、不同用户登录的时间等情况,就可以很容易地发现异常情况。
ps 命令
ps 命令可以显示当前运行的进程。ps 命令可以带不同的命令行参数,感兴趣的话,可以查看 ps 的man pages 以获得详细的信息。如果想检查系统运行的情况,通常加""alxww""选项是最有效的。在Linux 系统中,应该注意输出结果中的以下进程:
1) swapper,pagedaemon:虚拟内存系统的辅助程序。
2) init:init 进程,用来响应大量的任务,包括为终端启动服务进程。
3) portmamp:NIS 的组成部分。
4) biod,rpc,nfsd,rpd.mountd, rpc.quatad, rpc.lockd :网络文件系统(NFS)的组成部分。如果系统不是文件服务器,那么就没有rpc.nfsd 进程。
5) rarpd,rpc.bootparanmd:允许无盘工作站启动的进程。
此外,还应该检查的进程有update(文件系统更新程序)、gettty(每个终端都对应该进程)、lpd(打印守护进程)、bash(Shell 程序,每次登录时都启动一个或多个)。另外,如果当前有用户登录到系统上,那么你可以看到各种编译器、文本编辑器和字处理程序等。
who 命令和 w
who 命令可以显示当前登录到系统中的用户。通过执行这条命令,系统管理员可以了解到每天用户都在什么时候上机。当发现用户在特别的时间登录时,系统管理远应该调查用户是否在做对系统有害的事情。
w 命令有点象 who 命令和ps 命令的组合。 W 命令不仅可以显示登录到系统上的用户,还可以显示用户空闲的时间(没有敲击键盘的时间)和用户正在运行的进程。
ls 命令
ls 命令是 Linux 系统最常用的命令之一。尽管功能很简单,但它是检查系统文件系统的一个不可少的命令。系统管理员应该用 ls 命令定期检查每个系统目录,检查是否有不该出现的文件。在多数情况下,这些文件是偶然放在那里的。然而,保持对系统的完全控制可以尽早、尽快地发现问题。
当用 ls 命令检查系统时,一定要带上""-a""选项,这样可以检查以"".""开头的文件。黑客经常会在系统加入名为""…""或""‥(空格)""这样的目录或文件来迷惑管理员。
十一、 定期对服务器进行备份
为了防止不能预料的系统故障,或用户不小心的非法操作,必须对系统进行安全备份。除了应该对全系统进行每月一次的备份外,还应该对修改过的数据进行每周一次的备份。同时应该将修改过的重要的系统文件存放在不同的服务器上,以便在系统万一崩溃时,可以及时将系统恢复到最佳状态。
目前,RedFlag Linux 中提供了很强的备份工具,如 dump 和 restore 等。
十二、共同防御,确保安全
从计算机安全的角度看,世界上没有绝对密不透风、百分之百安全的计算机系统,Linux系统也不例外。采用以上的安全守则,虽然可以使Linux系统的安全性大大提高,使顺手牵羊型的黑客和电脑玩家不能轻易闯入,但却不一定能阻挡那些身怀绝技的武林高手,因此,企业用户还需要借助防火墙等其他安全工具,共同防御黑客入侵,才能确保系统万无一失