?? 5.html
字號:
實例<p> 下面是LIDS HOWTO中的一個實例<p>---------------------------------------------------<br>lidsadm -Z<br>lidsadm -A -o /boot -j READ<br>lidsadm -A -o /vmlinuz -j READ<br>lidsadm -A -o /lib -j READ<br>lidsadm -A -o /root -j READ<br>lidsadm -A -o /etc -j READ<br>lidsadm -A -o /sbin -j READ<br>lidsadm -A -o /usr/sbin -j READ<br>lidsadm -A -o /bin -j READ<br>lidsadm -A -o /usr/bin -j READ<br>lidsadm -A -o /usr/lib -j READ<br>lidsadm -A -o /var/log -j APPEND<br>---------------------------------------------------<p> 安裝lidsadm后,在lidsadm包中會有一個樣例lids.conf 存放于/etc/lids/下,你必須運行 "lidsadm -U"更新 inode/dev值,根據需要重新配置它。<p>4.3 保護進程<p> UN-killable process(不可殺進程)<p> LIDS 可以保護進程當其父程序初始化時(pid=1)[ the process whose parent is init(pid=1)]必須配置權限 (/etc/lids/lids.cap),如下:<p>-29:CAP_INIT_KILL<p> hidden process(隱藏進程)<p> 由于進程被隱藏, 所以當進程啟動時,任何人用 "ps"命令或在"/proc"下都無法找到<br>.<p>--------------------------------------------------<br>example,<br>lidsadm -A -s /usr/sbin/httpd -t -o CAP_HIDDEN -j INHERIT<p>--------------------------------------------------<p> 4.4 權限保護<p> Capabilities類似于賦予進程的權限, root方式擁有所有權限,但存在權限綁定設置。在普通的內核中,當你從綁定設置中刪除一個權限,再也沒有人可以使用它了,直到下次重新啟動。 (關于普通使用可以參考http://www.netcom.com/ spoon/lcap)。<p> LIDS修改這一屬性,使你可以任意轉換。進入/proc/sys/kernel/cap_bset被捕獲后引發安全警報,lidsadm承擔所有這些工作。<p> 可以通過運行lidsadm列出所有的LIDS權限,和每一權限確切的含義。<p> 系統權限配置<p> 系統權限屬性存放于/etc/lids/lids.cap,必須編輯此文件來適應你的需要。<p> 這里,我們討論其中的兩個屬性:<p> CAP_SYS_RAWIO 啟用這一權限,我們可以<p> allow ioperm/iopl and /dev/port access,<br> allow /dev/mem and /dev/kmem access and<br> allow raw block devices (/dev/[sh]d??) access<p> 當禁止了這項功能以后,可以使得系統上所有進程失去對于raw device的權限,例如運行lilo。<p> 但是一些進程需要此權限來打開,例如XF86_SVGA, 所以在編譯內核的時候, 使一些程序處于例外狀態。<p> CAP_NET_ADMIN 這個項目可以得到以下權限<p>interface configuration<br>administration of IP firewall, masquerading and accounting<br>setting debug option on sockets<br>modification of routing tables<br>setting arbitrary process / process group ownership on sockets<br>binding to any address for transparent proxying<br>setting TOS (type of service)<br>setting promiscuous mode<br>clearing driver statistics<br>multicasting<br>read/write of device-specific registers<p> 出于安全因素,應該禁止此項目來禁止改變網絡配置。當其被禁止后,防火墻規則將不允許被改變。<p>配置lids.cap<p> 可以在capability name前加 "+"或"-"來啟動或禁止權限。<p>--------------------------------------------------<br>### 0: In a system with the _POSIX_CHOWN_RESTRICTED option defined, this overri<br>des the restriction<br>### 0: of changing file ownership and group ownership.<br>#<br>-0:CAP_CHOWN<p>### 1: Override all DAC access, including ACL execute access if _POSIX_ACL is d<br>efined. Excluding<br>### 1: DAC access covered by CAP_LINUX_IMMUTABLE.<br>#<br>+1:CAP_DAC_OVERRIDE<br>---------------------------------------------------<p> 以上例子演示了禁止CAP_CHOWN (-),啟動CAP_DAC_OVERRIDE(+),應該仔細檢查lids.cap文件來決定哪些需要啟動哪些需要禁止。<p> 用capabilities為獨立進程分類<p> 你可以使用capability為獨立進程分類,從而使得進程可以做到一些系統所禁止的事情。<p> 例如,你可以在/etc/lids/lids.cap下禁止CAP_SYS_RAWIO(-),但你仍然需要使用X服務,所以你可以:<p># lidsadm -A -s /usr/X11R6/bin/XF86_SVGA -t -o CAP_SYS_RAWIO -j INHERIT<p> 使得XF86_SVGA擁有CA_SYS_RAWIO的權限,而其他程序不能獲得CAP_SYS_RAWIO。<p> 封裝內核<p> 啟動內核以后,系統權限要在封裝內核以后才會起作用。你必須將以下命令加入RefHat系統的/etc/rc.d/rc.local下,或其他系統的啟動初始文件中<p>#/sbin/lidsadm -I<p> 4.5 網絡安全<p> LIDS提供了加強網絡安全的功能。<p> 基于capability的網絡安全<p> 通過capability,可以加強網絡安全性。比如anti snifferring,不能綁定低于1024的端口,不能改變防火墻和路由器規則。所以,建議仔細閱讀每一項capability.<p> 內核中的掃描檢測器<p> LIDS提供了一個內核掃描檢測器,用來偵察是否有人在掃描你的系統。這個掃描器可以偵察到half-open scan, SYN stealth port scan, Stealth FIN, Xmas,或是Null scan等等, 象nmap,satan等工具都能被檢測到。<p> 當raw socket被禁止時,它會起作用。這樣一來,一些基于監聽上的user space detector不起作用。并且這一檢測器不使用任何socket,比任何user space detector要安全。<p> 如果想要啟用這項功能,可以在編譯內核的時候選擇。<p> 4.6 入侵響應系統<p> 當LIDS檢測到違反已定義規則時,它可以用以下方式回應。<p> 記錄信息<p> 當有人違反規則, lids_security_log將把信息記錄下來, 記錄也具有anti_logging_flood的能力,可以在編譯內核時設置。<p> 通過mail服務器記錄信息<p> LIDS的新功能可以把信息傳輸到你的信箱。你可以在/etc/lids/lids.net下定義郵件服務器IP,外來郵件地址等等。<p>樣例<p>-----------------------------------------------------<br>MAIL_SWITCH=1<p># MAIL_RELAY=hex IP:port<br># IP11.1 of the machine that will be directly connected by LIDS<br># for relaying its mails. Port is usually 25, but who knows...<br>MAIL_RELAY=210.73.88.149:25<p># MAIL_SOURCE=source machine :<br># Name of the source machine, used for the ehlo identification.<br># Note that a bad name here could make the mail relay refuse your<br># mails.<br>MAIL_SOURCE=lids.chinacluster.com<br>-----------------------------------------------------<p> 此例中,SMTP服務器是210.73.88.149,端口25.郵件資源用于EHLO identification。<p> 控制臺的掛起<p> 當用戶違反規則,控制臺將關閉用戶的控制臺。<center><A HREF="#Content">[目錄]</A></center><hr><br><A NAME="I722" ID="I722"></A><center><b><font size=+2>使用手冊</font></b></center><br><center><A HREF="#Content">[目錄]</A></center><hr><br><A NAME="I723" ID="I723"></A><center><b><font size=+2>介紹</font></b></center><br> LIDS是Linux下的入侵檢測和防護系統,是linux內核的補丁和安全管理工具,它增強了內核的安全性,它在內核中實現了參考監聽模式以及強制訪問控制(Mandatory Access Control)模式。<p>LIDS主要功能:<br> ·保護:保護硬盤上任何類型的重要文件和目錄,如/bin、/sbin、/usr/bin、/usr/sbin、/etc/rc.d等目錄和其下的文件,以及系統中的敏感文件,如passwd和shadow文件,防止未被授權者(包括ROOT)和未被授權的程序進入,任何人包括ROOT都無法改變,文件可以隱藏。 保護重要進程不被終止,任何人包括root也不能殺死進程,而且可以隱藏特定的進程。防止非法程序的RAW IO 操作,保護硬盤,包括MBR保護等等。<p> ·檢測:集成在內核中的端口掃描器,LIDS能檢測到掃描并報告系統管理員。 LIDS還可以檢測到系統上任何違反規則的進程。<p> ·響應:來自內核的安全警告,當有人違反規則時, LIDS會在控制臺顯示警告信息,將非法的活動細節記錄到受LIDS保護的系統log文件中。 LIDS還可以將log信息發到你的信箱中。LIDS還可以馬上關閉與用戶的會話。<br><center><A HREF="#Content">[目錄]</A></center><hr><br><A NAME="I724" ID="I724"></A><center><b><font size=+2>安裝</font></b></center><br>1.下載必須文件,linux內核源碼包和lids包,然后解壓<p># cd linux_install_path/<br># bzip2 -cd linux-2.4.16.tar.bz2 | tar -xvf -<p># cd lids_install_path<br># tar -zxvf lids-1.1.0-2.4.16.tar.gz<p>2.在linux的內核打LIDS補丁,然后配置和編譯linux內核,安裝LIDS系統<p># cd linux_install_path/linux<br># patch -p1 < lids_install_path/lids-version-linversion.patch<p># rm -rf /usr/src/linux<br># ln -s linux_install_patch/linux /usr/src/linux<p># cd /usr/src/linux<br># make menuconfig or make xconfig<p>[*] Prompt for development and/or incomplete code/drivers<br>[*] Sysctl support<p>[*] Linux Intrusion Detection System support (EXPERIMENTAL) (NEW).<p>[ ] Hang up console when raising a security alert<br>當收到一個安全警告掛起控制臺<br>[ ] Security alert when execing unprotected programs before sealing LIDS<br>當執行沒有受LIDS保護的程序時發送安全警告<br>[ ] Do not execute unprotected programs before sealing LIDS<br>在安裝LIDS前不執行沒有受保護的程序<br>[ ] Try not to flood logs<br>盡量不要讓日志溢出<br>[ ] Allow switching LIDS protections<br>允許轉換LIDS保護<br>[ ] Allow remote users to switch LIDS protections<br>允許遠程用戶來轉換LIDS保護<br>[ ] Allow any program to switch LIDS protections<br>允許任何程序來轉換LIDS保護<br>[ ] Allow reloading config. file<br>允許重新引導配置文件<br>[ ] Port Scanner Detector in kernel<br>內核的端口掃描器<br>[ ] Send security alerts through network<br>通過網絡發送安全警告<br>[ ] Hide klids kernel thread<br>隱藏內核進程<br>[ ] Use generic mailer pseudo-script<br>使用通用的郵件發送腳本<p>根據需要選擇相應的選項,配置支持LIDS的內核以后.退出配置界面,編譯內核。<p># make dep<br># make clean<br># make bzImage<br># make modules<br># make modules_install<p> 復制 bzImage 到 /boot/ ,編輯 /etc/lilo.conf<br># cp arch/i386/boot/bzImage /boot/bzImage-lids<p>安裝lids管理工具<br># cd lids-1.1.0-2.4.16/lidsadm-1.1.0/<br># make<br># make install<p># vi /etc/lilo.conf<br>boot=/dev/hda<br>map=/boot/map<br>install=/boot/boot.b<br>prompt<br>timeout=50<br>default=lids<p>image=/boot/vmlinuz-2.4.16<br>label=linux<br>read-only<br>root=/dev/hda2<p>image=/boot/bzImage-lids<br>label=lids<br>read-only<br>root=/dev/hda2<p> 運行/sbin/lilo 來安裝新內核<p># /sbin/lilo<br><center><A HREF="#Content">[目錄]</A></center><hr><br><A NAME="I725" ID="I725"></A><center><b><font size=+2>配置</font></b></center><br> 必須配置lids系統,使其符合你的安全需要.你可以定義受保護的文件,受保護的進程等等。<p> 首先,更新缺省lids.conf的inode/dev值。<br># /sbin/lidsadm -U<p> 然后,獲得一個RipeMD-160加密口令:<br> # /sbin/lidsadm -P<p> 缺省情況下,lidsadm將把缺省配置文件安裝到 /etc/lids/。你必須根據自己的需要重新配置。<br> 當內核啟動時,配置信息就把相關信息讀入內核來初始化LIDS系統。<p> lids.conf: 這個文件用來存儲LIDS ACLs信息。它包括定義對象訪問類型的ACLs。<br> lids.cap:這個文件包括系統的所有性能,可以編輯這個文件來配置這些性能。<br> lids.net:這個文件用來配置發給管理員信箱的警告信息。你可以定義SMTP服務器、端口、消頭等。僅在配置內核時,選擇了[*] Send security alerts through network (NEW)才有該文件。<br> lids.pw:這個文件存儲由'lidsadm -P'命令生成的密碼文件。配置內核時選擇[*] Allow switching LIDS protections , 就必須有該文件。<p>1.配置LIDS保護的文件和目錄<br> 首先,確定要保護哪些文件。一般情況下,保護系統二進制文件和系統配置文件,<br>比如:/bin,/sbin/,/usr/,/etc/,/var/log/。<br> 其次,決定以什么方式來保護文件。LIDS提供四種保護類型。<br>a.拒絕任何人訪問<br> 帶有DENY標志的文件和目錄沒有人能夠看見,也不能修改。那些非常敏感的文件應該加上DENY標志。例如,/etc/shadow文件。<br> ---------------------------------------------------------------------------<br> 用法:<br> lidsconf -A -o file_to_protected -j DENY<br> # lidsconf -A -o /etc/shadow -j DENY<br> 重啟或重新加載配置文件后,你會看到:<br> # ls /etc/shadow<br> ls: /etc/shadow: No such file or directory<br> ---------------------------------------------------------------------------<br> 接下來,還需要一些設置使一些特有的程序能夠訪問這些文件,比如,登錄到系統的時候,/bin/login文件需要從有DENY標記的/etc/shadow文件中讀密碼。<br> ---------------------------------------------------------------------------<br> 用法:<br> lidsconf -A -s SUBJECT_PROGRAM -o OBJECT_PROGRAM -j READONLY/WRITE/APPEND<br> # lidsconf -A -s /bin/login -o /etc/shadow -j READONLY<br> ---------------------------------------------------------------------------<br> 當你配置好而且重啟系統或重新加載配置文件后,你可以登錄進系統,但不能看到/etc/shadow。這就是強制訪問控制的一個例子。<p>b.只讀文件<br> 任何用戶不能改變帶有只讀標記的文件。比如/etc/passwd,/bin/passwd文件一般屬于此類。<br> ---------------------------------------------------------------------------<br> 用法:<br> lidsconf -A -o file_to_protect -j READONLY<br> 例子:<br> 1.保護整個/sbin/目錄,使之只讀。<br> # /sbin/lidsconf -A -o /sbin/ -j READONLY<br> 2.保護/etc/passwd文件為只讀<br> # /sbin/lidsconf -A -o /etc/passwd -j READONLY<br> ---------------------------------------------------------------------------<p>c.只能追加的文件<br> 一般來說,系統日志文件應定義成此類。比如,/var/log/message,/var/log/secure。這些文件只能以追加的模式打開,用戶不能修改前面的部分。<br> ---------------------------------------------------------------------------<br> 用法:<br> lidsconf -A -o filename_to_protect -j APPEND<br> 例子:<br> 1.保護系統日志文件<br> # /sbin/lidsconf -A -o /var/log/message -j APPEND<br> # /sbin/lidsconf -A -o /var/log/secure -j APPEND<br> 2.保護apache httpd日志文件<br> # /sbin/lidsconf -A -o /var/log/httpd -j APPEND<br> ---------------------------------------------------------------------------<p>d.可寫文件<br> 以上READONLY,APPEND,WRITE屬于LIDS對文件采取的強制訪問控制(MAC)。<br> 通過LIDS的這個功能,就可以定義哪個程序可以對哪個文件采取什么樣的訪問模式。比如,定義/home/httpd/對任何人DENY,并且定義/usr/sbin/httpd能夠從所在目錄READONLY。在這種情況下,Web服務器像一般的Web服務器一樣,只是在/home/httpd/目錄下的內容和程序不能被看到和修改。即使入侵者利用httpd的漏洞獲得了ROOT權限,他也看不到在root shell里面的文件。即使他重寫緩沖區,在httpd 服務器中加入一些病毒代碼,他也只能讀出/home/httpd下面的文件而實質上無法修改它們。<br> ---------------------------------------------------------------------------<br> # lidsconf -A -o /home/httpd -j DENY<br> # lidsconf -A -s /usr/sbin/httpd -o /home/httpd -j READONLY<br> ---------------------------------------------------------------------------<p> 一個簡單配置的例子:<br> ---------------------------------------------------------------------------<br>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -