萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Linux 系統防範緩衝區溢出攻擊的企業級安全策略

來源:IBM

緩衝區溢出攻擊是當前最常見、危害極高的安全手段之一。針對持續出現的威脅,本文探討 Linux 平台防範方法,總結適用企業內部伺服器 (Web、郵件、Samba、FTP、Proxy) 的安全策略。實踐證明,配置這些策略能有效提升系統防禦能力。

緩衝區溢出攻擊概述

在電腦系統安全研究中,緩衝區溢出是廣泛存在且極度危險的漏洞。幾乎所有作業系統平台皆受影響,基於此類漏洞開發的攻擊程式具極強隱蔽性與破壞力。技術能使看似安全、運行常規服務 (DNS、ftpd 等) 的主機在秒級失去控制權。攻擊者最終目的是擾亂特權程式運行以取得控制權;若程式權限足夠,整台主機將被完全控制。CERT/CIAC 網路安全報告中「緩衝區溢出」為高頻關鍵字。

選擇 Linux 平台的理由

  1. 開源優勢: 利於深入技術細節研究。Linux 及其應用多為開源,眾多安全專家在平台上深耕,Linux 攻擊技術代表整體網路攻擊最高水平。
  2. 代表性強: Linux 為類 Unix 系統且廣泛用於互聯網,平台上獲得的防範經驗易移植至其他 Unix/類 Unix 平台。

企業內部伺服器防範安全策略

一、隱藏系統提示資訊

不想讓遠端登入用戶看到詳細系統資訊,修改 /etc/inetd.conf 中 telnet 設定:

telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd -h

指令末尾加 -h 參數,讓 daemon 僅顯示登入提示,不洩露系統資訊 (僅在安裝 telnet 服務時必要)。

二、處理 rc.local 檔案

預設登入時顯示發行版名稱、版本、核心版本、主機名,洩露過多細節。安全起見僅顯示「Login:」。操作:

  1. 編輯 /etc/rc.d/rc.local,註解以下行:
# This will overwrite /etc/issue at every boot. So, make any changes you
# want to make to /etc/issue here or you will lose them when you reboot.
# echo "" > /etc/issue
# echo "$R" >> /etc/issue
# echo "Kernel $(uname -r) on $a $(uname -m)" >> /etc/issue
# cp -f /etc/issue /etc/issue.net
# echo >> /etc/issue
  1. 刪除 /etc/issue.net 與 /etc/issue:
[root@snow]# rm -f /etc/issue
[root@snow]# rm -f /etc/issue.net

/etc/issue.net 為網路登入 (telnet/SSH) 見到的提示,/etc/issue 為本地登入提示。兩者均為文字檔可自訂。但刪除前必須先註解 rc.local 相關行,否則重啟會自動重建。

三、禁止提供 finger 服務

finger 可顯示本地/遠端已登入用戶詳細資訊,攻擊者可利用增加入侵機會。最好禁止服務:從 /usr/bin 刪除 finger 指令。若需保留,應重命名或修改權限僅允許 root 執行。

四、強化 inetd.conf 設定

inetd 為「超級伺服器」,依網路請求載入執行網路程式。/etc/inetd.conf 告知 inetd 監聽哪些埠並啟動對應服務。部署 Linux 伺服器首要任務:明確實際需要服務,禁止不需要者,條件允許最好直接卸載,減少攻擊面。

具體步驟:

  1. 權限收斂: chmod 600 /etc/inetd.conf,唯 root 可讀寫。
  2. 確認擁有者為 root: stat /etc/inetd.conf 驗證 Uid/Gid 為 0/root。
  3. 編輯禁用服務: 使用 vi 註解 ftp、telnet、shell、login、exec、talk、ntalk、imap、pop-2、pop-3、finger、auth 等非必要服務。
  4. 重載設定: killall -HUP inetd 發送 SIGHUP 生效。
  5. 不可變更屬性: chattr +i /etc/inetd.conf 設定不可修改 (含刪除、重命名、建立連結、寫入)。唯 root 可解除:chattr -i /etc/inetd.conf。修改後再次加鎖。
copyright © 萬盛學電腦網 all rights reserved