歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

如何讓您的Linux操作系統更加安全

 

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




 



Copyright © Linux教程網 All Rights Reserved