學(xué)習(xí)啦>學(xué)習(xí)電腦>操作系統(tǒng)>Linux教程>

讓Linux操作系統(tǒng)更加安全的辦法

時(shí)間: 志藝942 分享

  眾所周知,就安全性而言,Linux相對于Windows具有更多的優(yōu)勢。但是,不管選擇哪一種Linux發(fā)行版本,在安裝完成以后都應(yīng)該進(jìn)行一些必要的配置,來增強(qiáng)它的安全性。接下來是小編為大家收集的讓Linux操作系統(tǒng)更加安全的辦法,希望能幫到大家。

  讓Linux操作系統(tǒng)更加安全的辦法

  安裝和配置一個(gè)防火墻

  一個(gè)配置適當(dāng)?shù)姆阑饓Σ粌H是系統(tǒng)有效應(yīng)對外部攻擊的第一道防線,也是最重要的一道防線。在新系統(tǒng)第一次連接上Internet之前,防火墻就應(yīng)該被安裝并且配置好。

  把防火墻配置成拒絕接收所有數(shù)據(jù)包,然后再打開允許接收的數(shù)據(jù)包,將有利于系統(tǒng)的安全。防火墻的具體設(shè)置方法請參見iptables使用方法。

  升級所有已經(jīng)安裝的軟件包

  一個(gè)標(biāo)準(zhǔn)的Linux發(fā)行版通常會帶有超過1000個(gè)以上的軟件包。時(shí)刻保持所安裝的所有軟件處于最新狀態(tài)是非常重要的。很顯然,這是一個(gè)耗費(fèi)時(shí)間的工作,幸運(yùn)的是現(xiàn)在已經(jīng)有很多工具可以自動完成這一工作。其中兩個(gè)最常用的工具是APT(Advanced Package Tool)和Yum(Yellowdog Updater,Modified)。

  有些發(fā)行版可能會提供自己的升級工具,可以充分利用它們來實(shí)現(xiàn)軟件的更新。比如,缺省情況下Red Hat和Fedora使用的是up2date;Debian使用的則是APT。

  如果想安裝一個(gè)自己的軟件升級工具,那么筆者推薦使用APT。在任何一個(gè)搜索引擎中輸入所使用發(fā)行版的名字和APT,都可以快速找到APT的RPM安裝包和所需要的軟件倉庫位置。

  一旦安裝好APT,并且設(shè)置好軟件倉庫以后(一般在/etc/apt/sources.list或與之類似的文件中設(shè)置),就可以使用以下兩個(gè)命令來進(jìn)行軟件的更新。以root用戶運(yùn)行:

#apt-get update
            #apt-get upgrade
            

  第一個(gè)命令將從指定的軟件倉庫下載最新的軟件包信息,第二個(gè)命令將使用這些信息下載和安裝系統(tǒng)中已經(jīng)存在的軟件的更新版本(如果有可用更新的話)。管理員應(yīng)該定期執(zhí)行命令以確保系統(tǒng)總是處于最新狀態(tài)。

  此外,從Internet下載單個(gè)文件或軟件包的時(shí)候,總是使用MD5SUM來進(jìn)行檢查。MD5SUM可以對從網(wǎng)上下載的軟件進(jìn)行檢查,以確保下載的不是被植入木馬的版本。

  最后,使用者還應(yīng)該訂閱發(fā)行版的安全郵件列表。這些郵件列表可以在出現(xiàn)更新軟件包,或者對某些軟件漏洞進(jìn)行修正時(shí)及時(shí)通知使用者。

  禁止所有不需要的服務(wù)

  一個(gè)新安裝的Linux系統(tǒng)在默認(rèn)配置情況下,啟動時(shí)會同時(shí)啟動很多服務(wù)和后臺程序。比如有的發(fā)行版會啟動HTTP(Web服務(wù)器)、POP3/IMAP(電子郵件)監(jiān)控程序、數(shù)據(jù)庫服務(wù)器等。而對于大多數(shù)用戶來說,這些服務(wù)實(shí)際上是不需要的,并且這些服務(wù)會成為攻擊者潛在的攻擊目標(biāo)。所以,為了安全起見,應(yīng)該查看這些服務(wù)列表,然后禁止所有不需要的服務(wù)。

  在Red Hat系統(tǒng)中,用于配置服務(wù)器的命令行工具名為chkconfig。要列出所有已經(jīng)安裝的服務(wù),可以執(zhí)行以下命令:

  #chkconfig -list

  這時(shí)將會顯示類似以下形式的內(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)行級別。

  例如,為了讓squid服務(wù)可以在2、3、4、5運(yùn)行級別下運(yùn)行,應(yīng)該執(zhí)行以下命令:

#chkconfig --level 2345 squid on
            

  如果要在3和5運(yùn)行級別上關(guān)閉sshd服務(wù),則應(yīng)該執(zhí)行以下命令:

#chkconfig --level 35 sshd off
            

  使用chkconfig命令設(shè)置的服務(wù)會在下次啟動時(shí)生效,而不會對當(dāng)前運(yùn)行的服務(wù)有任何影響。如果要對當(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來查看是否已經(jīng)達(dá)到效果。對于仍然需要運(yùn)行的服務(wù)而言,一定要確保有正確配置的防火墻。更改不需要的SUID/SGID

  SUID(Set User ID)或SGID(Set Group ID)程序可以讓普通用戶以超過自己權(quán)限的形式執(zhí)行它。一個(gè)常見的例子是passwd,它的訪問權(quán)限如下:

-r-s--x--x 1 root root 18992 Jun 6 2003 /usr/bin/passwd
            
可以看到,這里的owner執(zhí)行權(quán)限被設(shè)置成“s”而不是“x”,這就是一個(gè)SUID程序。比如,當(dāng)一個(gè)普通用戶執(zhí)行passwd時(shí),它就會以文件所有者(本例中是root用戶)的權(quán)限來運(yùn)行程序。很多SUID/SGID可執(zhí)行程序是必須的,比如上面提到的passwd。但是,很多是不需要的。SUID/SGID程序會被一些惡意的本地用戶利用,獲取本不應(yīng)有的權(quán)限。運(yùn)行以下命令可以找到所有具有這一屬性的程序:
#find / \( -perm -4000 -o -perm -2000 \)
            
使用者必須查看這一列表,盡量減少那些所有者是root或是在root組中卻擁有SUID/SGID屬性的文件,刪除或?qū)ζ鋵傩赃M(jìn)行更改。要刪除具有SUID/SGID屬性的文件要先運(yùn)行:
#rpm -q --whatprovides /usr/sbin/kppp
            
然后可以使用以下命令來刪除它:
#rpm -e package-name
            
SUID/SGID屬性位則可以使用chmod命令來刪除,比如,chmod -s /usr/sbin/kppp。

  關(guān)注日志

  雖然使用者會盡最大努力保證自己系統(tǒng)的安全,但是,現(xiàn)實(shí)情況是不管如何努力,都無法使系統(tǒng)處于絕對安全的狀態(tài)。下面是其它一些需要注意的事情,它可以讓使用者知道是否或什么時(shí)候系統(tǒng)被攻破。

  一個(gè)非常常用、且很容易被低估的入侵檢測程序是Tripwire(http://www.tripwire.org)。該程序會定期地檢測系統(tǒng)文件,來確定它們是否被更改。

  如果有任何不應(yīng)該發(fā)生的更改出現(xiàn),Tripwire就會為用戶生成一個(gè)報(bào)表。要讓Tripwire正常工作,需要花費(fèi)一定的時(shí)間來對其進(jìn)行配置,但它的確值得花時(shí)間。

  了解系統(tǒng)情況的一個(gè)非常重要的途徑是查看日志文件。Linux中的系統(tǒng)日志由syslogd監(jiān)控程序處理,其配置文件是/etc/syslog.conf。在配置文件中,可以指明什么工具或程序需要記錄信息(比如cron、daemon或電子郵件等),什么級別的信息需要寫入日志(比如debug、info或警告等),以及如何處理這些信息(添加到日志文件或發(fā)送到打印機(jī)等)。

  系統(tǒng)日志也可以遠(yuǎn)程進(jìn)行,也就是說把日志文件放置在網(wǎng)絡(luò)的另外一個(gè)系統(tǒng)上。這樣做的好處是如果系統(tǒng)被攻破,那么入侵者將無法刪除在其它系統(tǒng)上留下的痕跡,從而可以比較容易地對其進(jìn)行跟蹤。

  但是,對于普通用戶而言,每天處理大量的來自各日志文件的信息絕非易事,所以轉(zhuǎn)而使用Logwatch(http://www.logwatch.org)工具。該工具可以定期對系統(tǒng)的日志文件進(jìn)行分析,然后根據(jù)分析結(jié)果創(chuàng)建一個(gè)分析報(bào)告,通過電子郵件發(fā)給root用戶。

  因?yàn)檫@些報(bào)告一般都比較短,所以適合用戶每天閱讀。根據(jù)配置,它會對一些信息加亮顯示(比如非法登錄嘗試或端口掃描等)。其配置文件一般位于/etc/log.d/conf/logwatch.conf,配置文件中的注釋可以讓用戶方便地對其進(jìn)行設(shè)置。

  除Logwatch以外,還有很多入侵檢測系統(tǒng)可供選擇,比如Snort(http://www.snort.org),可以在搜索引擎中很方便地找到這些工具。

  安全仍需努力

  系統(tǒng)安全并不是一勞永逸的事情,事實(shí)上在做每一件事情的時(shí)候都要考慮到系統(tǒng)的安全性。管理員需要保證系統(tǒng)時(shí)刻處于最新狀態(tài)、確保使用了合適的密碼、設(shè)置了合適的訪問級別、每天閱讀日志、檢查Tripwire報(bào)告、閱讀所使用發(fā)行版的郵件列表等。

  本文介紹了一些每個(gè)用戶都要做的、基本的、重要的步驟。當(dāng)然,除了本文所述之外,用戶還有很多事情可做。下面給出幾個(gè)忠告。

  1.永遠(yuǎn)不要使用Telnet、FTP或任何其它純文本的遠(yuǎn)程會話來傳送用戶名和密碼,只能使用SSH、SFTP或與之類似的程序來傳送這些內(nèi)容。

  2.確保使用嚴(yán)格的防火墻策略,缺省情況下關(guān)閉所有連接,只打開需要的連接,并且要有嚴(yán)格的限制。比如,需要從工作的地方SSH到系統(tǒng)中,那么只允許其基于IP通過。

看了“讓Linux操作系統(tǒng)更加安全的辦法”還想看:

1.linux操作系統(tǒng)安全加固

2.怎么保護(hù)Linux操作系統(tǒng)安全

3.linux操作系統(tǒng)安全設(shè)置

4.強(qiáng)化Linux系統(tǒng)安全的方法有哪些

5.Linux是最安全的操作系統(tǒng)嗎

6.如何提高Linux系統(tǒng)的安全性

7.linux操作系統(tǒng)安全性

2772255