讓Linux操作系統(tǒng)更加安全的辦法
眾所周知,就安全性而言,Linux相對(duì)于Windows具有更多的優(yōu)勢(shì)。但是,不管選擇哪一種Linux發(fā)行版本,在安裝完成以后都應(yīng)該進(jìn)行一些必要的配置,來(lái)增強(qiáng)它的安全性。接下來(lái)是小編為大家收集的讓Linux操作系統(tǒng)更加安全的辦法,希望能幫到大家。
讓Linux操作系統(tǒng)更加安全的辦法
安裝和配置一個(gè)防火墻
一個(gè)配置適當(dāng)?shù)姆阑饓Σ粌H是系統(tǒng)有效應(yīng)對(duì)外部攻擊的第一道防線,也是最重要的一道防線。在新系統(tǒng)第一次連接上Internet之前,防火墻就應(yīng)該被安裝并且配置好。
把防火墻配置成拒絕接收所有數(shù)據(jù)包,然后再打開(kāi)允許接收的數(shù)據(jù)包,將有利于系統(tǒng)的安全。防火墻的具體設(shè)置方法請(qǐng)參見(jiàn)iptables使用方法。
升級(jí)所有已經(jīng)安裝的軟件包
一個(gè)標(biāo)準(zhǔn)的Linux發(fā)行版通常會(huì)帶有超過(guò)1000個(gè)以上的軟件包。時(shí)刻保持所安裝的所有軟件處于最新?tīng)顟B(tài)是非常重要的。很顯然,這是一個(gè)耗費(fèi)時(shí)間的工作,幸運(yùn)的是現(xiàn)在已經(jīng)有很多工具可以自動(dòng)完成這一工作。其中兩個(gè)最常用的工具是APT(Advanced Package Tool)和Yum(Yellowdog Updater,Modified)。
有些發(fā)行版可能會(huì)提供自己的升級(jí)工具,可以充分利用它們來(lái)實(shí)現(xiàn)軟件的更新。比如,缺省情況下Red Hat和Fedora使用的是up2date;Debian使用的則是APT。
如果想安裝一個(gè)自己的軟件升級(jí)工具,那么筆者推薦使用APT。在任何一個(gè)搜索引擎中輸入所使用發(fā)行版的名字和APT,都可以快速找到APT的RPM安裝包和所需要的軟件倉(cāng)庫(kù)位置。
一旦安裝好APT,并且設(shè)置好軟件倉(cāng)庫(kù)以后(一般在/etc/apt/sources.list或與之類(lèi)似的文件中設(shè)置),就可以使用以下兩個(gè)命令來(lái)進(jìn)行軟件的更新。以root用戶(hù)運(yùn)行:
#apt-get update #apt-get upgrade |
第一個(gè)命令將從指定的軟件倉(cāng)庫(kù)下載最新的軟件包信息,第二個(gè)命令將使用這些信息下載和安裝系統(tǒng)中已經(jīng)存在的軟件的更新版本(如果有可用更新的話)。管理員應(yīng)該定期執(zhí)行命令以確保系統(tǒng)總是處于最新?tīng)顟B(tài)。
此外,從Internet下載單個(gè)文件或軟件包的時(shí)候,總是使用MD5SUM來(lái)進(jìn)行檢查。MD5SUM可以對(duì)從網(wǎng)上下載的軟件進(jìn)行檢查,以確保下載的不是被植入木馬的版本。
最后,使用者還應(yīng)該訂閱發(fā)行版的安全郵件列表。這些郵件列表可以在出現(xiàn)更新軟件包,或者對(duì)某些軟件漏洞進(jìn)行修正時(shí)及時(shí)通知使用者。
禁止所有不需要的服務(wù)
一個(gè)新安裝的Linux系統(tǒng)在默認(rèn)配置情況下,啟動(dòng)時(shí)會(huì)同時(shí)啟動(dòng)很多服務(wù)和后臺(tái)程序。比如有的發(fā)行版會(huì)啟動(dòng)HTTP(Web服務(wù)器)、POP3/IMAP(電子郵件)監(jiān)控程序、數(shù)據(jù)庫(kù)服務(wù)器等。而對(duì)于大多數(shù)用戶(hù)來(lái)說(shuō),這些服務(wù)實(shí)際上是不需要的,并且這些服務(wù)會(huì)成為攻擊者潛在的攻擊目標(biāo)。所以,為了安全起見(jiàn),應(yīng)該查看這些服務(wù)列表,然后禁止所有不需要的服務(wù)。
在Red Hat系統(tǒng)中,用于配置服務(wù)器的命令行工具名為chkconfig。要列出所有已經(jīng)安裝的服務(wù),可以執(zhí)行以下命令:
#chkconfig -list
這時(shí)將會(huì)顯示類(lèi)似以下形式的內(nèi)容:
iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off ... ..................... squid 0:off 1:off 2:off 3:off 4:off 5:off 6:off xinetd based services: rsync:off ... ... sgi_fam: on |
在上面的列表中,0至6的數(shù)字表示系統(tǒng)的運(yùn)行級(jí)別。
例如,為了讓squid服務(wù)可以在2、3、4、5運(yùn)行級(jí)別下運(yùn)行,應(yīng)該執(zhí)行以下命令:
#chkconfig --level 2345 squid on |
如果要在3和5運(yùn)行級(jí)別上關(guān)閉sshd服務(wù),則應(yīng)該執(zhí)行以下命令:
#chkconfig --level 35 sshd off |
使用chkconfig命令設(shè)置的服務(wù)會(huì)在下次啟動(dòng)時(shí)生效,而不會(huì)對(duì)當(dāng)前運(yùn)行的服務(wù)有任何影響。如果要對(duì)當(dāng)前的服務(wù)進(jìn)行設(shè)置,在Red Hat中可以使用以下命令:
# service service_name start # service service_name stop # service service_name restart # service service_name status |
上述命令中的service_name和chkconfig --list命令中所列的名字一致。
在禁止了所有不需要的服務(wù)后,可以運(yùn)行netstat --l來(lái)查看是否已經(jīng)達(dá)到效果。對(duì)于仍然需要運(yùn)行的服務(wù)而言,一定要確保有正確配置的防火墻。更改不需要的SUID/SGID
SUID(Set User ID)或SGID(Set Group ID)程序可以讓普通用戶(hù)以超過(guò)自己權(quán)限的形式執(zhí)行它。一個(gè)常見(jiàn)的例子是passwd,它的訪問(wèn)權(quán)限如下:
-r-s--x--x 1 root root 18992 Jun 6 2003 /usr/bin/passwd |
#find / \( -perm -4000 -o -perm -2000 \) |
#rpm -q --whatprovides /usr/sbin/kppp |
#rpm -e package-name |
關(guān)注日志
雖然使用者會(huì)盡最大努力保證自己系統(tǒng)的安全,但是,現(xiàn)實(shí)情況是不管如何努力,都無(wú)法使系統(tǒng)處于絕對(duì)安全的狀態(tài)。下面是其它一些需要注意的事情,它可以讓使用者知道是否或什么時(shí)候系統(tǒng)被攻破。
一個(gè)非常常用、且很容易被低估的入侵檢測(cè)程序是Tripwire(http://www.tripwire.org)。該程序會(huì)定期地檢測(cè)系統(tǒng)文件,來(lái)確定它們是否被更改。
如果有任何不應(yīng)該發(fā)生的更改出現(xiàn),Tripwire就會(huì)為用戶(hù)生成一個(gè)報(bào)表。要讓Tripwire正常工作,需要花費(fèi)一定的時(shí)間來(lái)對(duì)其進(jìn)行配置,但它的確值得花時(shí)間。
了解系統(tǒng)情況的一個(gè)非常重要的途徑是查看日志文件。Linux中的系統(tǒng)日志由syslogd監(jiān)控程序處理,其配置文件是/etc/syslog.conf。在配置文件中,可以指明什么工具或程序需要記錄信息(比如cron、daemon或電子郵件等),什么級(jí)別的信息需要寫(xiě)入日志(比如debug、info或警告等),以及如何處理這些信息(添加到日志文件或發(fā)送到打印機(jī)等)。
系統(tǒng)日志也可以遠(yuǎn)程進(jìn)行,也就是說(shuō)把日志文件放置在網(wǎng)絡(luò)的另外一個(gè)系統(tǒng)上。這樣做的好處是如果系統(tǒng)被攻破,那么入侵者將無(wú)法刪除在其它系統(tǒng)上留下的痕跡,從而可以比較容易地對(duì)其進(jìn)行跟蹤。
但是,對(duì)于普通用戶(hù)而言,每天處理大量的來(lái)自各日志文件的信息絕非易事,所以轉(zhuǎn)而使用Logwatch(http://www.logwatch.org)工具。該工具可以定期對(duì)系統(tǒng)的日志文件進(jìn)行分析,然后根據(jù)分析結(jié)果創(chuàng)建一個(gè)分析報(bào)告,通過(guò)電子郵件發(fā)給root用戶(hù)。
因?yàn)檫@些報(bào)告一般都比較短,所以適合用戶(hù)每天閱讀。根據(jù)配置,它會(huì)對(duì)一些信息加亮顯示(比如非法登錄嘗試或端口掃描等)。其配置文件一般位于/etc/log.d/conf/logwatch.conf,配置文件中的注釋可以讓用戶(hù)方便地對(duì)其進(jìn)行設(shè)置。
除Logwatch以外,還有很多入侵檢測(cè)系統(tǒng)可供選擇,比如Snort(http://www.snort.org),可以在搜索引擎中很方便地找到這些工具。
安全仍需努力
系統(tǒng)安全并不是一勞永逸的事情,事實(shí)上在做每一件事情的時(shí)候都要考慮到系統(tǒng)的安全性。管理員需要保證系統(tǒng)時(shí)刻處于最新?tīng)顟B(tài)、確保使用了合適的密碼、設(shè)置了合適的訪問(wèn)級(jí)別、每天閱讀日志、檢查T(mén)ripwire報(bào)告、閱讀所使用發(fā)行版的郵件列表等。
本文介紹了一些每個(gè)用戶(hù)都要做的、基本的、重要的步驟。當(dāng)然,除了本文所述之外,用戶(hù)還有很多事情可做。下面給出幾個(gè)忠告。
1.永遠(yuǎn)不要使用Telnet、FTP或任何其它純文本的遠(yuǎn)程會(huì)話來(lái)傳送用戶(hù)名和密碼,只能使用SSH、SFTP或與之類(lèi)似的程序來(lái)傳送這些內(nèi)容。
2.確保使用嚴(yán)格的防火墻策略,缺省情況下關(guān)閉所有連接,只打開(kāi)需要的連接,并且要有嚴(yán)格的限制。比如,需要從工作的地方SSH到系統(tǒng)中,那么只允許其基于IP通過(guò)。
看了“讓Linux操作系統(tǒng)更加安全的辦法”還想看: