歡迎您光臨本站 註冊首頁

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

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
  4. 配置LIDS系統

  4.1 LIDS配置目錄 -- 「/etc/lids/」

  安裝 lidsadm以後,在/etc/lids/下會產生一個 lids配置目錄,當內核啟動時,配置信息將被讀入內核中來初始化 LIDS系統。

lids.conf 這是用來儲存 LIDS ACLs信息的文件。它包括定義事件進入類型的ACLs.其項目可以用lidsadm來添加或刪除。
lids.cap 這個文件包括了系統中所有的許可權,可以通過編輯它來配置系統中啟動或禁止的許可權。在想要啟動的名稱前設置 "+"或設置 "-"來禁止。安裝系統時, lids.cap 以預設值存在,應該按照自己的需要改變它。
lids.net 這個文件是用來配置通過網路傳送警告信件的。可以定義 SMTP伺服器、埠、信息題目等等。
   這一文件需要在配置內核時選擇:

  [*] Send security alerts through network (NEW)

lids.pw 這是用來儲存由"lidsadm -P"產生的密碼的文件,需要在配置內核時選擇:
   [*] Allow switching LIDS protections (NEW)

  注意: 如果要改變lids保護等級,你必須在重新啟動內核前運行"lidsadm -P"l.

  4.2 保護文件和目錄

  首先,要決定哪些文件需要受保護。建議你應該保護系統二進位文件和系統配置文件,例如/usr/,/sbin/,/etc/,/var/log/。

  其次,要決定保護文件的方式. LIDS提供四種保護類型:

  DENY access to any body(禁止任何人進入)。

  這種方式意味著沒有人能夠看見或修改文件或目錄. 最敏感的文件應該配置為DENY。 例如,可以將 /etc/shadow設置為 DENY access to anybody,

-------------------------------------------------------
Usage
lidsadm -A -o file_to_protected -j DENY

# lidsadm -A -o /etc/shadow -j DENY
After reboot or RELOAD the configurate files. you can see,
# ls /etc/shadow
ls: /etc/shadow: No such file or directory
-------------------------------------------------------

  然後, 你要設置一些可以進入文件的程序,例如,登陸系統時,/bin/login文件需要從受保護的文件/etc/shadow里讀取密碼 ,但/etc/shadow不允許任何人進入,所以你應該:

-------------------------------------------------------
Usage
lidsadm -A -s SUBJECT_PROGRAM -o OBJECT_PROGRAM -j READ/WRITE/APPEND
# lidsadm -A -s /bin/login -o /etc/shadow -j READ
-------------------------------------------------------

  配置生效后,你可以登陸到系統上但無法進入/etc/shadow。這是MAC (mandatory access control命令進入控制)的一個實例。

Read Only Files(只讀文件)

  這種方式意味著沒有人可以改變文件,建議/etc/passwd,/bin/passwd等類似文件可以採取這種方式。

-------------------------------------------------------
lidsadm -A -o file_to_protect -j READ

example,

1. to protect the whole /sbin/ as read-only.

# /sbin/lidsadm -A -o /sbin/ -j READ

2. to protect /etc/passwd as read-only

# /sbin/lidsadm -A -o /etc/passwd -j READ
-------------------------------------------------------

  Append Only Files(只能添加文件)

  大多此類文件是指系統的log文件,例如 /var/log/message ,/var/log/secure。 文件只能添加而不能刪除或修改以前的內容。

------------------------------------------------------
USAGE:
lidsadm -A -o filename_to_protect -j APPEND

example,

1. to protect the system log files

# /sbin/lidsadm -A -o /var/log/message -j APPEND
# /sbin/lidsadm -A -o /var/log/secure -j APPEND

2. to protect the apache httpd log files

# /sbin/lidsadm -A -o /etc/httpd/logs/ -j APPEND
-----------------------------------------------------
WRITE(可寫)

  此類型用於定義可以改寫的文件。

  Mandatory Access Control in file protection(文件保護中的命令進入控制)

  定義哪個項目(程序)可以以哪種方式(READ,APPEND,WRITE)進入哪個目標(文件)。

  例如,定義/home/httpd/為DENY to anybody然後讓/usr/sbin/httpd能從目錄中READ。 這樣一來, Web伺服器可以正常地作為公用WEB伺服器,但在/home/httpd/下的內容和程序是不可見的,也不能被修改。如果入侵者通過httpd的bug獲得了root shell,他即使在root shell下也不能看到文件,即使他可以通過改寫堆棧在httpd伺服器中插入危險的代碼,他也只能讀到/home/httpd下的文件,而不能修改。

----------------------------------------------------
# lidsadm -A -o /home/httpd -j DENY
# lidsadm -A -s /usr/sbin/httpd -o /home/httpd -j READ
---------------------------------------------------

實例

  下面是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 overrides 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 defined. 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。

  控制台的掛起

  當用戶違反規則,控制台將關閉用戶的控制台。


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

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