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