歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

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

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/WR99vE/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 ----------------------------------------------------- WR99vE(可寫)    此類型用於定義可以改寫的文件。    Mandatory Access Control in file protection(文件保護中的命令進入控制)    定義哪個項目(程序)可以以哪種方式(READ,APPEND,WR99vE)進入哪個目標(文件)。    例如,定義/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_IN99v_KILL    hidden process(隱藏進程)    由於進程被隱藏, 所以當進程啟動時,任何人用 "ps"命令或在"/proc"下都無法找到 . -------------------------------------------------- example, lidsadm -A -s /usr/sbin/httpd -t -o CAP_HIDDEN -j INHER99v --------------------------------------------------    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前加 "+"或"-"來啟動或禁止權限。 ---------------



   可以通過運行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前加 "+"或"-"來啟動或禁止權限。 ---------------



Copyright © Linux教程網 All Rights Reserved