和其他販賣者的作業系統相比, Linux 必定可以被認為是安全的--或是更安全。公認的, 隨著Linux變得越來越普及,將會變成很有吸引力的目標而吸引怪客集中精神致力於突破它。 隨著一次一次的嘗試,某些漏洞會被發現,然而Linux開放的本質往往使得這些漏洞很快
和其他販賣者的作業系統相比,
Linux 必定可以被認為是安全的 -- 或是更安全。公認的,
隨著 Linux 變得越來越普及, 將會變成很有吸引力的目標而吸引怪客集中精神致力於突破它。
隨著一次一次的嘗試,某些漏洞會被發現,然而 Linux 開放的本質往往使得這些漏洞很快的就被
修補了,而且安全注意通告被廣泛地傳播, 包括暫時的處理方式或更新軟體的指南。
我不會假裝是有關安全內容的專家, 但至少我明白這些內容,我相信致力於使某人的系統可能
的安全是戰斗的更大一部份。雖然認知及致力於保持安全更新無法保系統的安全措施不會被突破,
但被突破的可能性大為減少。
雖然有些關於安全的外部服務被駭客利用來破解系統 (例如,IMAP daemon 的事件),我相信還有更多,
有決心的駭客可以從內部突破系統。與和外界通訊的少數服務相比,從 shell 可以有成千的指令和公用
程式,他們之中可能有一些漏洞可以被利用來突破安全防護 (我必須承認最近我負責維護的伺服器已經
在外部服務中做一些妥協)。
因為這個原因,即使您認為使用者完全可以信賴不必疑慮讓他們存取 shell,我仍建議避免給使用者
shell 帳號除非他們絕對需要。要這麽做是因為怕使用者中有人用了薄弱的密碼。一個外來的駭客,利
用這個薄弱的密碼找到突破系統的途徑,然後利用他們的內部空檔找到進一步的弱點。
幸運地,您可以做一些大幅提高 Linux 系統安全的事。管有關系統安全的進一步討論內容已經超出本
文圍,下面清單提供一些您可以加強安全的最重要事項:
升級系統工具,應用軟體,及核心 : 目前為止最常見的系統被破解的原因是未保持伺服器處於最新狀態。
進行規律的系統核心,工具及公用程式升級將會確保您的系統不會充滿已知可以被利用的項目,查看 第4章,
下載及安裝 Red Hat 更新程式 一節,以及 第10章,保持系統處於最新狀態的策略
Shadow passwords: 您確定應該使用 Shadow password ; 切換到這個密碼格式很簡單,查看 第6章,Linux
密碼及 Shadow 檔案格式有關細節
精明的密碼管理: 確定密碼,特別是您提供存取 shell 的使用者,是很強固而且常更換。同時如果您使用多
伺服器,不要在他們之中使用相同的密碼 (如果這樣做,萬一怪客使用一個發現的密碼侵入一部伺服器 ,他
就可以進入所有的)。
使用安全的 shell (ssh): 切換到使用 ``ssh' 取代 ``te
.net'。 Telnet 因為兩個原因不安全 :
第一 , session 未加密,表示所有東西,包括使用者名稱及密碼,以一般文字模式傳送。
第二,一個開放的 telnet port 是駭客第一個連接的 port 之一。
Ssh 提供了加密及壓縮的連接,並且提供實質上比 telnet 更安全的連結。您可以在 Linux下當作 ssh
伺服端 (允許進入的安全連結)以及客戶端 (送出安全的連結)。您可以找到二進位 RPM 套件,位於
ftp://ftp.replay.com/pub/replay/redhat/i386/。您會需要下面的檔案 (在您閱讀的時候可能有較新的版本):
ssh-1.2.27-5i.i386.rpm 基本套件
ssh-clients-1.2.27-5i.i386.rpm 送出連結的客戶端
ssh-extras-1.2.27-5i.i386.rpm 一些便利的 perl script
ssh-server-1.2.27-5i.i386.rpm 接收連結的伺服端
注意: 上面所列的 SSH RPM 檔是國際版本。 如果您住在美國或加拿大,您可以顯擇下載 U.S. 套件
(可能有較強的加密演算法); 這些套件在版本編號後有 ``us' 取代 ``i' 字尾。根據美國的法律,
輸出強大的加密產品到美國或加拿大以外的地方是不合法的。希望有一天美國政府及司法會移去這個
限制 (Red Hat 因為這原因在他們發行版中不包括 SSH )
您的 Windows 用戶會因為無法再連接到您的系統而拿槍對著你,他們也會因為有一些免費給 Windows
用的用戶端軟體而感到高興:
“TeraTerm Pro” 用戶端軟體
http://hp.vector.co.jp/authors/VA002416/teraterm.html
“TTSSH” 用戶端軟體
http://www.zip.com.au/~roca/download.html
“Cryptlib” 用戶端軟體
http://www.doc.ic.ac.uk/~ci2/ssh
“Putty” 用戶端軟體
http://www.chiark.greenend.org.uk/~sgtatham/putty.html
注意: 如果確定要切換到 ssh,確定您在所有的伺服器上安裝使用。五部伺服器中讓一部不安全只是浪費
時間,特別當您在所有的伺服器使用相同的密碼時。
限制存取外部主機: 下一步您應該編輯 ``/etc/hosts.allow' 以及``/etc/hosts.deny' 檔限制存取外部
主機的服務。這裡是如何限制 telnet 及 ftp 存取的例。 首先,``/etc/hosts.allow' 檔: # hosts.allow
in.telne
td: 123.12.41., 126.27.18., .mydomain.name, .another.name
in.ftpd: 123.12.41., 126.27.18., .mydomain.name, .another.name
上面會允許位於 IP class C 的 123.12.41.* 及 126.27.18.* 任何的主機,以及位於 mydomain.name 及
another.name 網域的主機進行 telnet 及 ftp 連結。
下一步, ``/etc/hosts.deny' 檔:
# hosts.deny
in.telnetd: ALL
in.ftpd: ALL
關閉及解安裝不需要的服務: 編輯您的 ``/etc/inetd.conf' 檔,而且 disable (亦即 .加上 ``#' 符號
注釋) 任何不需要的服務 (如果您依照上面的建議使用 ssh,您應該關閉 ``telnet' 服務)。當您做好後。
以 root 身分鍵入 ``/etc/rc.d/init.d/inet restart' 重新啟動 inetd daemon 進行變更。
安裝安全偵測系統: 考慮安裝安全程式,像是 ``Tripwire' (查看 http://www.tripwiresecurity.com/)
可以偵測入侵,以及 ``Abacus Sentry' (查看 http://www.psionic.com/abacus/) 可以幫助避免他們。
要勤勞: 注意您的系統, 隨時進行安全稽核 (可以只是簡單檢查可疑的密碼檔進入,查看您的行程表,檢查
log 檔中可疑的項目) 可以長久地致力於保持系統安全。此外,報告任何入侵的企圖到適當的層級 -- 這
樣做可能很麻煩,特別是當您的系統一個月中遇到好幾次這種攻擊, 但這種報告確保駭客會因為懲罰的威
脅而受到嚇阻,以及確保其他系統(他們可能已經讓步了) 保持安全。
假設您使用``RPM'公用程式安裝及升級您的系統工具及應用軟體,您可以利用下面的指令查核他們是否完
整: rpm --verify -a > /tmp/rpm-audit.txt
上面的指令會檢查系統 RPM 資料庫的相關檔案資料,並且指示哪些檔案已經被修改了,顯示 '5'。這裡是一
些審核資料的輸出例 :
S.5....T /bin/ls
S.5....T /usr/bin/du
......G. /dev/tty5
.....U.. /dev/vcs5
.....U.. /dev/vcsa5
S.5....T c /etc/lynx.cfg
S.5....T c /etc/sendmail.cf
在上面的輸出例,您可以看到七個檔案的列表,其中四個檔案被修改過了。現在,明顯地如果您已經完全
自訂過您的系統,可能有一些檔案,或很多檔案被修改過了。從 /etc/lynx.cfg 及 /etc/sendmail.cf 檔的
簡單核對,也許從是目視或從備份,可能會顯示出您在系統上所做過的正當組態變更。
然而,上面例告知,有兩個變更過的檔案是二進位的可執行檔。有可能這兩個二進位檔 ``ls' 指令以
及 ``du' 指令, 事實上是駭客所安裝具有惡毒意圖的特落伊檔 ( 將``diff' 指令用在任何從備份或 RPM
回存的檔案上可能會顯示出檔案大小或其他不同點 ; 作為特落伊程式的進一步據.)
(更多有關 ``RPM'的資料,查看 第10章,使用 Red Hat 套件管理程式 (RPM) 一節.)
更多有關安全議題的資訊,一本很棒的書名叫“Securing RedHat 5.x”,文件位於
http://redhat-security.ens.utulsa.edu/。一個有關 Linux 保密及相關軟體的很好來源,
位在 http://replay.com/redhat/.