實例
下面是LIDS HOWTO中的一個實例
---------------------------------------------------
lidsadm -Z
lidsadm -A -o /boot -j READ
lidsadm -A -o /vmlinuz -j READ
lidsadm -A -o /lib -j READ
lidsadm -A -o /root -j READ
lidsadm -A -o /etc -j READ
lidsadm -A -o /sbin -j READ
lidsadm -A -o /usr/sbin -j READ
lidsadm -A -o /bin -j READ
lidsadm -A -o /usr/bin -j READ
lidsadm -A -o /usr/lib -j READ
lidsadm -A -o /var/log -j APPEND
---------------------------------------------------
安裝lidsadm後,在lidsadm包中會有一個樣例lids.conf 存放於/etc/lids/下,你必須運行 "lidsadm -U"更新 inode/dev值,根據需要重新配置它。
4.3 保護進程
UN-killable process(不可殺進程)
LIDS 可以保護進程當其父程序初始化時(pid=1)[ the process whose parent is init(pid=1)]必須配置權限 (/etc/lids/lids.cap),如下:
-29:CAP_INIT_KILL
hidden process(隱藏進程)
由於進程被隱藏, 所以當進程啟動時,任何人用 "ps"命令或在"/proc"下都無法找到
.
--------------------------------------------------
example,
lidsadm -A -s /usr/sbin/httpd -t -o CAP_HIDDEN -j INHERIT
--------------------------------------------------
4.4 權限保護
Capabilities類似於賦予進程的權限, root方式擁有所有權限,但存在權限綁定設置。在普通的內核中,當你從綁定設置中刪除一個權限,再也沒有人可以使用它了,直到下次重新啟動。 (關於普通使用可以參考http://www.netcom.com/ spoon/lcap)。
LIDS修改這一屬性,使你可以任意轉換。進入/proc/sys/kernel/cap_bset被捕獲後引發安全警報,lidsadm承擔所有這些工作。
可以通過運行lidsadm列出所有的LIDS權限,和每一權限確切的含義。
系統權限配置
系統權限屬性存放於/etc/lids/lids.cap,必須編輯此文件來適應你的需要。
這裡,我們討論其中的兩個屬性:
CAP_SYS_RAWIO 啟用這一權限,我們可以
allow ioperm/iopl and /dev/port Access,
allow /dev/mem and /dev/kmem access and
allow raw block devices (/dev/[sh]d??) access
當禁止了這項功能以後,可以使得系統上所有進程失去對於raw device的權限,例如運行lilo。
但是一些進程需要此權限來打開,例如XF86_SVGA, 所以在編譯內核的時候, 使一些程序處於例外狀態。
CAP_NET_ADMIN 這個項目可以得到以下權限
interface configuration
administration of IP firewall, masquerading and accounting
setting debug option on sockets
modification of routing tables
setting arbitrary process / process group ownership on sockets
binding to any address for transparent proxying
setting TOS (type of service)
setting promiscuous mode
clearing driver statistics
multicasting
read/write of device-specific registers
出於安全因素,應該禁止此項目來禁止改變網絡配置。當其被禁止後,防火牆規則將不允許被改變。
配置lids.cap
可以在capability name前加 "+"或"-"來啟動或禁止權限。
--------------------------------------------------
### 0: In a system with the _POSIX_CHOWN_RESTRICTED option defined, this overri
des the restriction
### 0: of changing file ownership and group ownership.
#
-0:CAP_CHOWN
### 1: Override all DAC access, including ACL execute access if _POSIX_ACL is d
efined. Excluding
### 1: DAC access covered by CAP_Linux_IMMUTABLE.
#
+1:CAP_DAC_OVERRIDE
---------------------------------------------------
以上例子演示了禁止CAP_CHOWN (-),啟動CAP_DAC_OVERRIDE(+),應該仔細檢查lids.cap文件來決定哪些需要啟動哪些需要禁止。
用capabilities為獨立進程分類
你可以使用capability為獨立進程分類,從而使得進程可以做到一些系統所禁止的事情。
例如,你可以在/etc/lids/lids.cap下禁止CAP_SYS_RAWIO(-),但你仍然需要使用X服務,所以你可以:
# lidsadm -A -s /usr/X11R6/bin/XF86_SVGA -t -o CAP_SYS_RAWIO -j INHERIT
使得XF86_SVGA擁有CA_SYS_RAWIO的權限,而其他程序不能獲得CAP_SYS_RAWIO。
封裝內核
啟動內核以後,系統權限要在封裝內核以後才會起作用。你必須將以下命令加入RefHat系統的/etc/rc.d/rc.local下,或其他系統的啟動初始文件中
#/sbin/lidsadm -I
4.5 網絡安全
LIDS提供了加強網絡安全的功能。
基於capability的網絡安全
通過capability,可以加強網絡安全性。比如anti snifferring,不能綁定低於1024的端口,不能改變防火牆和路由器規則。所以,建議仔細閱讀每一項capability.
內核中的掃描檢測器
LIDS提供了一個內核掃描檢測器,用來偵察是否有人在掃描你的系統。這個掃描器可以偵察到half-open scan, SYN stealth port scan, Stealth FIN, Xmas,或是Null scan等等, 象nmap,satan等工具都能被檢測到。
當raw socket被禁止時,它會起作用。這樣一來,一些基於監聽上的user space detector不起作用。並且這一檢測器不使用任何socket,比任何user space detector要安全。
如果想要啟用這項功能,可以在編譯內核的時候選擇。
4.6 入侵響應系統
當LIDS檢測到違反已定義規則時,它可以用以下方式回應。
記錄信息
當有人違反規則, lids_security_log將把信息記錄下來, 記錄也具有anti_logging_flood的能力,可以在編譯內核時設置。
通過mail服務器記錄信息
LIDS的新功能可以把信息傳輸到你的信箱。你可以在/etc/lids/lids.net下定義郵件服務器IP,外來郵件地址等等。
樣例
-----------------------------------------------------
MAIL_SWITCH=1
# MAIL_RELAY=hex IP:port
# IP11.1 of the machine that will be directly connected by LIDS
# for relaying its mails. Port is usually 25, but who knows...
MAIL_RELAY=210.73.88.149:25
# MAIL_SOURCE=source machine :
# Name of the source machine, used for the ehlo identification.
# Note that a bad name here could make the mail relay refuse your
# mails.
MAIL_SOURCE=lids.chinacluster.com
-----------------------------------------------------
此例中,SMTP服務器是210.73.88.149,端口25.郵件資源用於EHLO identification。
控制台的掛起
當用戶違反規則,控制台將關閉用戶的控制台。