1. 程式人生 > >Linux下安裝配置LIDS系統

Linux下安裝配置LIDS系統

LIDS

LIDS全稱為Linux Intrusion Detection System,是一種基於Linux內核補丁模式的入侵檢測系統,它也是一種基於主機的入侵檢測系統。它集成在Linux內核中,來進一步加強Linux內核的安全性,為Linux內核提供實現一種安全模式、參考模式和強制存取控制模式。
雖然,網絡防火墻能夠阻止大部份的網絡攻擊,但這種攻擊穿透了防火墻,系統上的重要數據就會有完全控制的危險。因此,在Linux系統上布置LIDS是很有必要的。它能夠保證Linux系統上的重要目錄及文件不被復制、刪除,重要的服務不被刪除或停止,不能修改系統登錄方式等等,為Linux系統數據安全提供一種全方位的保護。

1. LIDS的主要功能

1).保護硬盤上任何類型的重要文件和目錄

如/bin、/sbin、/usr/bin、/usr/sbin、/etc/rc.d等目錄和其下的文件,以及系統中的敏感文件,如passwd和shadow文件,防止未被授權者(包括ROOT)和未被授權的程序進入,任何人包括ROOT都無法改變,文件可以隱藏。保護重要進程不被終止,任何人包括root也不能殺死進程,而且可以隱藏特定的進程。

2).檢測內核中的端口掃描器,LIDS能檢測到掃描並報告系統管理員。

3).當有人違反規則時, LIDS會在控制臺顯示警告信息,將非法的活動細節記錄到受LIDS保護的系統log文件中。

2 配置LIDS

本節涉及到內核編譯的知識,請初學者參考:

http://linux.chinaunix.net/techdoc/desktop/2006/05/11/932179.shtml

本次試驗以Fedora 14為平臺:
①.首先準備內核:
http://www.kernel.org/ 在這裏下載kernel 2.6.34.14 源碼,將源碼包釋放到/usr/src
②.下載patch
http://www.lids.jp/develop/lids-2.2.3rc11-2.6.34.patch
管理工具
http://www.lids.jp/wiki/index.php?Development
③.下載lidstools-2.2.7.10
④.Linux內核打LIDS補丁
#patch -p1 ./lids-2.2.3rc11-2.6.34.patch

技術分享圖片
⑤.編譯linux內核
#make menuconfig

執行完上面的命令會打開如圖1所示界面,啟用LIDS在在內核Security Options選項中,其界面如圖2所示。

技術分享圖片

圖 1 在Linux內核中選中Security options選項

技術分享圖片

圖 2 在內核中啟用LIDS

設置完畢保存退出
#make ;make install
這樣就會將Lidsadm和Lidsconf這兩個工具安裝到/sbin/目錄中,同時會創建一個/etc/lids的目錄,並會在此目錄下生成一個默認的配置文件.

3.使用Lidsadm工具

Lidsadm是LIDS的管理工具單元,可以用它來管理系統中的LIDS。Lidsadm的作用主要就是啟用或停用LIDS,以及封存LIDS到內核中和查看LIDS狀態。
使用下列命令可以列出Lidsadm的所有可用選項:
 # lidsadm -h
此命令會返回下列信息:
......
lidsadm -[s/I] -- [+/-] [LIDS_FLAG] [...]
lidsadm -v
lidsadm -h
命令參數解釋:
-s:開關某些保護選項時指示應提交密碼
-I:開關某些保護選項時不提交密碼
LIDS_FLAG:為Lidsadm的標誌值
-v:顯示版本
-V:查看現在LIDS狀態
-h:列出所有選項   
Lidsadm常用的部分主要功能模塊:
CAP_CHOWN:                        修改目錄或文件的屬主和組
CAP_NET_BROADCAST:     監聽廣播
CAP_NET_ADMIN:                接口、防火墻、路由器改變
CAP_IPC_LOCK:                   鎖定共享內存
CAP_SYS_MODULE:            插入和移除內核模塊
CAP_HIDDEN:                         隱藏進程
CAP_SYS_RESOURCE:      設置資源限制
CAP_KILL_PROTECTED:    殺死保護進程
CAP_PROTECTED:               保護進程為單用戶方式   
Lidsadm可用的標誌值(Available flags):
LIDS:                                        禁止或激活本地LIDS;
LIDS_CLOBAL:                      完全禁止或激活LIDS
RELOAD_CONF:                    重新加載配置文件

 (2)、Lidsconf工具及其選項:

Lidsconf主要用來為LIDS配置訪問控制列表(ACLS)和設置密碼。
輸入以下命令能顯示Lidsconf所有的可用選項:

 # lidsconf -h

此命令執行返回命令參數解釋如下:
-A:增加一條指定的選項到已有的ACL中
-D:刪除一條指定的選項
-E:刪除所有選項
-U:更新dev/inode序號
-L:列出所有選項
-P:產生用Ripemd-160加密的密碼
-V:顯示版本
-h:顯示幫助
-H:顯示更多的幫助

子對像(subject):
-s [--subject]:指定一個子對像,可以為任何程序,但必須是文件。
目標(object):
-o[object]:可以是文件、目錄或功能(capabilities)和socket名稱。
動作:
-j:它有以下幾個參數:
               DENY:           禁止訪問
               READONLY: 只讀
               APPEND:      增加
               WRITE:         可寫
               GRANT:         對子對像授與能力
               Ignore:          對設置的對像忽略所有權限
               Disable:        禁止一些擴展特性

4.使用LIDS來保護系統

在使用LIDS保護的Linux的系統中,可以通過一個LIDS的自由會話終端模式來修改那些已經加入到保護中的數據,所有的LIDS設置工作也可在這個自由會話終端中進行。
使用如下命令打開一個LIDS終端會話:

#lidsadm -S -- -LIDS

在按提示輸入密碼後,就建立了一個LIDS自由會話終端,在此終端我們就可以啟用、停用LIDS和退出此終端。此時,Linux系統中的任何數據都是不受LIDS保護的。在完成對文件或數據的修改後,我們應當通過如下命令重新啟用LIDS:

#lidsadm -S -- +LIDS

另外要清楚的是,在一個增加了LIDS功能的Linux系統中,一個名為/etc/lids/lids.cap的文件中包括了所有的功能描述列表。每一個功能項前通過使用“+”號來啟用此功能,使用“-”號來禁用此功能,完成設置後我們必須重新加載它的配置文件才能使修改生效。
下面我們就通過運用這些功能項,來對系統中要保護的重要數據進行安全設置:

(1)保護某個文件為只讀

#lidsconf -A -o /sbin/ps -j READONLY
此命令保證一旦LIDS被啟用,任何人都不能修改或刪除此文件。
(2)保護一個目錄為只讀
#lidsconf -A -o /usr/bin -j READONLY
此命令用來保證一旦LIDS被啟用,任何人都不能列出或刪除此目錄及其中的內容。
 # lidsconf -A -o /etc -j READONLY
(3)隱藏任何用戶都看不到的目錄或文件
#lidsconf -A -o /home/userdir -j DENY
此設置將使任何系統用戶甚至root用戶都不能訪問它。如果設置的是一個目錄,那麽此目錄下的文件、目錄都將被隱藏。
(4)指定某些特定的程序以只讀方式訪問一些非常敏感的文件
比如在系統登錄時要訪問/etc/shadow文件,我們可以指定某些程序能在系統認證時使用它,這些程序包括login、ssh、su等。例如,我們可以只允許login以只讀方式訪問/etc/shadow文件:
#lidsconf -A -s /bin/login -o /etc/shadow -j READONLY
(5)以根用戶身份指定一個服務在指定的端口上運行
要想指定服務在1024及以下端口上運行需要LIDS的CAP_NET_BIND_SERVICE功能。如果我們在/etc/lids/lids.cap文件中沒有啟用此功能,那麽就不能以根用戶身份啟動任何一個服務運行在指定的端口上。我們可以通過下列命令來授權某個程序有此功能:
#lidsconf -A -s /usr/local/bin/apache -o CAP_NET_BIND_SERVICE 80 -J GRANT
(6)為ssh和scp的遠程連接指定端口
要為ssh和scp的遠程連接指定端口,就需要LIDS的CAP_NET_BIND_SERVICE功能。我們可以通過下列命令將CAP_NET_BIN_SERVICE功能指定的端口授權給ssh:
#lidsconf -A -s /usr/bin/ssh -o CAP_NET_BIN_SERVICE 22 -J GRANT

最後,對LIDS技術感興趣的讀者可以參考《LIDS精通與進階》的文檔,文中寫的非常詳細。

參考文獻

  1. LIDS精通與進階 http://www.yesky.com/346/191346_1.shtml

Linux下安裝配置LIDS系統