Linux下安裝配置LIDS系統
雖然,網絡防火墻能夠阻止大部份的網絡攻擊,但這種攻擊穿透了防火墻,系統上的重要數據就會有完全控制的危險。因此,在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
本節涉及到內核編譯的知識,請初學者參考:
本次試驗以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精通與進階》的文檔,文中寫的非常詳細。
參考文獻:
- LIDS精通與進階 http://www.yesky.com/346/191346_1.shtml
Linux下安裝配置LIDS系統