歡迎您光臨本站 註冊首頁

用LIDS建立安全的系統(上)

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
  LIDS( Linux入侵偵察系統)是Linux內核補丁和系統管理員工具(lidsadm),它加強了Linus內核。 它在內核中實現了一種安全模式 -- 參考模式以及內核中的Mandatory Access Control(命令進入控制)模式。本文將闡述LIDS的功能和如何使用它來建立一個安全的Linux系統。

1. 為什麼選擇LIDS

  隨著互連網上Linux越來越受歡迎 ,越來越多現有GNU/LINUX系統上的應用軟體中的安全漏洞被發現。很多程序利用了程序員的粗心,例如緩存溢出、格式化代碼攻擊。當系統安全受到程序的危及,黑客獲得ROOT許可權以後,整個系統將被入侵者控制。

  由於代碼的開放性,我們可以獲得很多所希望Linux應用程序的原代碼,並且根據我們的需要來修改。所以bug能很容易地被找到,並很快修補。但是當漏洞被揭示后,而系統管理員疏於給漏洞打補丁,從而造成很容易地就被入侵,更糟的是黑客能獲得ROOT SHELL。利用現有的GNU/Linux系統,他為所欲為。這正是LIDS想要解決的問題。

  首先看看現有的GNU/Linux系統存在哪些問題。

  文件系統未受到保護

  系統中的很多重要的文件,例如 /bin/login,一旦黑客入侵后,他可以上傳修改過的login文件來代替/bin/login ,然後他就可以不需要任何登陸名和密碼就登陸系統。這常被稱為Trojan house。

  進程未受到保護

  系統上運行的進程是為某些系統功能所服務的,例如HTTPD是一個web伺服器來滿足遠程客戶端對於web的需求。作為web伺服器系統,保護其進程不被非法終止是很重要的。但是當入侵者獲得了ROOT許可權后,我們卻無能為力。

  系統管理未受保護

  很多系統管理,例如,模塊的裝載/卸載,路由的設置,防火牆的規則,能很容易就被修改,如果用戶的ID是0。所以當入侵者獲得ROOT許可權后,就變得很不安全。

  超級用戶(root)作為ROOT可能濫用許可權

  他可以為所欲為。作為ROOT他甚至可以對現有的許可權進行修改。

  綜上所述,我們發現在現有的Linux系統中的進入控制模式是不足以建立一個安全的Linux系統。我們必須在系統中添加新的模式來解決這些問題。這就是LIDS所要做的。

2. LIDS的特色

  Linux入侵偵察系統是Linux內核補丁和系統管理員工具,它加強了內核的安全性。它在內核中實現了參考監聽模式以及Mandatory Access Control(命令進入控制)模式。當它起作用后,選擇文件進入,每一個系統/網路的管理操作,任何使用許可權, raw device, mem 和 I/O 進入將可以禁止甚至對於ROOT也一樣。它使用和擴展了系統的功能,在整個系統上綁定控制設置,在內核中添加網路和文件系統的安全特性,從而加強了安全性。你可以在線調整安全保護,隱藏敏感進程,通過網路接受安全警告等等。

  簡而言之,LIDS提供了保護、偵察、響應的功能,從而是LINUX系統內核中的安全模式得以實現。

  2.1 保護

  LIDS提供以下的保護 :

保護硬碟上任何類型的重要文件和目錄,任何人包括ROOT都無法改變。
能保護重要進程不被終止
能防止非法程序的RAW IO 操作。保護硬碟,包括MBR保護,等等。
能保護系統中的敏感文件,防止未被授權者(包括ROOT)和未被授權的程序進入。
  2.2 偵察

  當有人掃描你的主機, LIDS能偵察到並報告系統管理員。 LIDS也可以檢測到系統上任何違法規則的進程。

  2.3 響應

  當有人違反規則, LIDS會將非法的運作細節記錄到受LIDS保護的系統log文件中。 LIDS還可以將log信息傳到你的信箱中。LIDS也可以馬上關閉與用戶的對話。

3. 建立安全的Linux系統

  看完了LIDS特性,讓我們來看看怎麼樣一步步地用LIDS建立安全的系統。

  3.1 下載LIDS補丁和相關正式的Linux內核

  可以從LIDS Home,LIDS Ftp Home或最近的LIDS Mirror獲得LIDS補丁和系統管理工具。

  補丁名稱是lids-x.xx-y.y.y.tar.gz, x.xx代表lids的版本, y.y.y代表Linux內核版本.例如, lids-0.9.9-2.2.17.tar.gz代表lids 版本是0.9.9 以及相關的內核版本是2.2.17.。

  必須下載相關的內核版本。例如,你下載了lids-0.9.9-2.2.17.tar.gz,那你就應該下載Linux內核2.2.17的原代碼。可以從Kernel FTP Site或其他鏡象獲得內核原碼。

  然後,將內核原碼和LIDS tar解壓.例如,從 www.lids.org得到lids-0.9.9-2.2.17.tar.gz,從ftp.us.kernel.org得到linux-2.2.17.tar.bz2后:

-----------------------------------------------------------

1. uncompress the Linux kernel source code tree.
# cd linux_install_path/
# bzip2 -cd linux-2.2.17.tar.bz2 | tar -xvf -


2. uncompress the lids source code and install the lidsadm tool.
# cd lids_install_path
# tar -zxvf lids-0.9.8-2.2.17.tar.gz

-----------------------------------------------------------

  3.2 在正式的linux內核上打LIDS補丁

  Linux內核原碼打LIDS補丁

-----------------------------------------------------------

# cd linux_install_path/linux
# patch -p1

/* link the default source path to lids patched version
# rm -rf /usr/src/linux
# ln -s linux_install_patch/linux /usr/src/linux



  3.3 配置Linux內核

-----------------------------------------------------------

configure the Linux kernel
# cd linux
# make menuconfig or make xconfig

-----------------------------------------------------------

  現在,配置Linux內核,按照以下步驟實施:

[*] Prompt for development and/or incomplete code/drivers
[*] Sysctl support

After that, you will find that a new item appear in the bottom of the configuration menu name "Linux Intrusion Detection System". Entering this menu, turn the

[*] Linux Intrusion Detection System support (EXPERIMENTAL) (NEW).

  配置LIDS內核以後.退出配置界面,編譯內核。

# make dep
# make clean
# make bzImage
# make modules
# make modules_install

  3.4 在Linux系統上安裝LIDS和系統管理工具

  複製 bzImage 到 /boot/ ,編輯 /etc/lilo.conf


-----------------------------------------------------------

# cp arch/i386/boot/bzImage /boot/bzImage-lids-0.9.9-2.2.17

/* build admin tools */
# cd lids-0.9.8-2.2.17/lidsadm-0.9.8/
# make
# make install

# less /etc/lilo.conf
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
default=linux

image=/boot/vmlinuz-2.2.16-3
label=linux
read-only
root=/dev/hda2

image=/boot/bzImage-lids-0.9.9-2.2.17
label=dev
read-only
root=/dev/hda2

-----------------------------------------------------------

  運行/sbin/lilo 來安裝新內核

# /sbin/lilo



  3.5 配置LIDS系統

  在重新啟動以前,必須配置lids系統,使其符合你的安全需要.你可以定義受保護的文件,受保護的進程等等。

  預設情況下,lidsadm將把預設配置文件安裝到 /etc/lids/。你必須根據自己的需要重新配置。首先,可以更新預設lids.conf的inode/dev值。

# /sbin/lidsadm -U

  3.6 重新啟動系統

  配置完Linux系統后,重新啟動.當lilo出現時,選擇裝載the lids enable kernel。然後,你就將進入美妙的LIDS世界。

  3.7 封裝內核

  系統啟動后,不要忘記用lidsadm封裝內核,在最後/etc/rc.local加入以下命令

# /sbin/lidsadm -I

  3.8 在線管理

  封裝完內核后,你的系統就處於LIDS的保護下。可以做一些測試來驗證,如果想改變某些配置,例如修改許可權,可以通過輸入密碼方式在線改變lids的安全等級。


# /sbin/lidsadm -S -- -LIDS

  改變lids配置屬性后,例如lids.conf,lids.cap,你可以通過以下命令在內核中重新裝載配置文件

# /sbin/lidsadm -S -- +RELOAD_CONF


[火星人 ] 用LIDS建立安全的系統(上)已經有435次圍觀

http://coctec.com/docs/security/show-post-72769.html