?? 5.html
字號:
lidsconf -Z<br> lidsconf -A -o /boot -j READONLY<br> lidsconf -A -o /lib -j READONLY<br> lidsconf -A -o /root -j READONLY<br> lidsconf -A -o /etc -j READONLY<br> lidsconf -A -o /sbin -j READONLY<br>lidsconf -A -o /usr/sbin -j READONLY<br> lidsconf -A -o /bin -j READONLY<br> lidsconf -A -o /usr/bin -j READONLY<br> lidsconf -A -o /usr/lib -j READONLY<br> ---------------------------------------------------------------------------<p>2.配置LIDS保護進程<p> a.不可殺死的進程<br> LIDS能夠保護父進程是init(pid=1)的進程,按照下面的命令配置/etc/lids/lids.cap里面的性能:<br> -29:CAP_INIT_KILL<p> b.隱藏的進程<br> 這些進程看不到,用ps命令或者在/proc里面也看不到。<br> ---------------------------------------------------------------------------<br> 例子:<br> lidsconf -A -s /usr/sbin/httpd -o CAP_HIDDEN -j GRANT<br> ---------------------------------------------------------------------------<p>3.通過設置權限來保護<p> 這里的權限就是你給一個進程的權限。一個root進程擁有所有的性能,還存在綁定的權限問題。在一般的內核中,當從綁定集中去掉一種權限時,除非重啟任何人都不能啟用該權限。LIDS修改權限使用戶可以在這些權限中間任意切換。對/proc/sys/kernel/cap_bset的訪問被俘獲,引發安全告警。<br> 系統的權限值存儲在/etc/lids/lids.cap中。編輯它可以滿足你的需求。<br> 例如:<br> CAP_SYS_RAWIO項若打開,我們就可以允許訪問/dev/port,/dev/mem,/dev/kmem,以及對原始塊設備(/dev/[sh]d??)的訪問。<br> 當我們取消這個權限時,就可以使運行在系統上的所有進程不能訪問原始塊設備,比如運行lilo。但是,一些進程的運行需要這些權限,比如XF86_SVGA。<br> 再比如,CAP_NET_ADMIN,這項權限可以得到以下的能力:接口配置,IP防火墻、偽裝和計費的管理,設置sockets調試選項,修改路由表,設置任意進程或進程組對sockets的所有權,為透明proxy代理捆綁地址,設置服務類型,設置混合模式,多播,對設備的指定寄存器進行讀寫等。出于安全考慮,我們應當取消這項權限,不允許變化網絡設置,也就禁止了防火墻規則的改變。<br> 配置lids.cap文件的方法是在權限名字的前面設置"+"使它有效,或設置"-"取消它。<p>具體的功能說明:<p>CAP_CHOWN功能:<br>在一個_POSIX_CHOWN_RESTRICTED功能定義的系統。這會越過改變系統文件所有者和組所有的權限<p>CAP_DAC_OVERRIED功能:<br>如果_POSIX_ACL定義,就會越過所有的DAC訪問,包括ACL執行訪問,用CAP_LINUX_IMMUTABLE功能來排除DAC的訪問<p>CAP_DAC_READ_SEARCH功能:<br>如果_POSIX_ACL定義,就會越過所有的DAC的讀限制,并在所有的文件和目錄里搜索,包括ACL限制。用CAP_LINUX_IMMUTABLE來限制DAC訪問<p>CAP_FOWNER功能:<br>越過文件說有的允許限制,如文件的所有者ID必須和用戶ID一樣,除了CAP_FSETID可用。它不會越過MAC和DAC限制<p>CAP_FSETID功能:<br>越過當設置文件的S_ISUID和S_ISGID位的時候,用戶的ID必須和所有者ID匹配的限制,設置S-ISGID位的時候,組ID必須和所有者ID匹配的限制,用chown來設置S_ISUID和S_ISGID為的功能限制<p>CAP_FS_MASK功能:<br>用來回應suser()或是fsuser()。<p>CAP_KILL功能:<br>一個有有效用戶ID的進程發送信號時必須匹配有效用戶ID的功能會越過<p>CAP_SETGID功能:<br>允許setgid() 功能, 允許setgroups() 允許在socket里偽造gid<p>CAP_SETUID功能:<br>允許set*uid()功能 允許偽造pid在socket<p>CAP_SETPCAP功能:<br>把所有的許可給所有的pid。或是把所有的許可刪除<p>CAP_LINUX_IMMUTABLE功能:<br>允許更改S_IMMUTABLE和S_APPEND文件屬性<p>CAP_NET_BIND_SERVICE功能:<br>允許綁定1024下的TCP/UDP套接字<p>CAP_NET_BROADCAST功能:<br>允許廣播,監聽多點傳送<p>CAP_NET_ADMIN功能:<br>允許配置接口<br>允許管理IP防火墻IP偽裝和帳戶<br>允許配置socket調試選項<br>允許修改路由表<br>允許配置socket上的進程的組屬性<br>允許綁定所有地址的透明代理<br>允許配置TOS(服務類型)<br>允許配置混雜模式<br>允許清除驅動狀態<br>允許多點傳送<br>允許讀或寫系統記錄<p>CAP_NET_RAW功能:<br>允許用RAW套接字<br>允許用PACKET套接字<p><br>CAP_IPC_LOCK功能:<br>允許瑣定共享內存段<br>允許mlock和mlockall<p><br>CAP_IPC_OWNER功能:<br>越過IPC所有權檢查<p><br>CAP_SYS_MODULE功能:<br>插入或刪除內核模塊<p>CAP_SYS_RAWIO功能:<br>允許ioperm/iopl和/dev/prot的訪問<br>允許/dev/mem和/dev/kmem訪問<br>允許塊設備訪問(/dev/[sh]d??)<p>CAP_SYS_CHROOT功能:<br>允許chroot()<p>CAP_SYS_PTRACE功能:<br>允許ptrace()任何進程<p>CAP_SYS_PACCT功能:<br>允許配置進程帳號<p>CAP_SYS_ADMIN功能:<br>允許配置安全鑰匙<br>允許管理隨機設備<br>允許設備管理<br>允許檢查和配置磁盤限額<br>允許配置內核日志<br>允許配置域名<br>允許配置主機名<br>允許調用bdflush()命令<br>允許mount()和umount()命令<br>允許配置smb連接<br>允許root的ioctls<br>允許nfsservctl<br>允許VM86_REQUEST_IRQ<br>允許在alpha上讀寫pci配置<br>允許在mips上的irix_prctl<br>允許刷新所有的m68k緩存<br>允許刪除semaphores<br>用CAP_CHOWN去代替"chown"IPC消息隊列,標志和共享內存<br>允許鎖定或是解鎖共享內存段<br>允許開關swap<br>允許在socket偽裝pids<br>允許設置塊設備的緩存刷新<br>允許設置軟盤驅動器<br>允許開關DMA開關<br>允許管理md設備<br>允許管理ide驅動<br>允許訪問nvram設備<br>允許管理apm_bios,串口或是bttv電視設備<br>允許在isdn CAPI的驅動下生成命令<br>允許讀取pci的非標準配置<br>允許DDI調試ioctl<br>允許發送qic-117命令<br>允許啟動或禁止SCSI的控制和發送SCSI命令 允許配置加密口令在回路文件系統上<p>CAP_SYS_BOOT功能:<br>允許用reboot() 命令<p>CAP_SYS_NICE功能:<br>允許提高或設置其他進程的優先權<br>允許在自己的進程用FISO和實時的安排和配置<p>CAP_SYS_RESOURCE功能:<br>越過資源限制,設置資源限制<br>越過配額限制<br>越過保留的ext2文件系統<br>允許大于64hz的實時時鐘中斷<br>越過最大數目的控制終端<br>越過最大數目的鍵<p>CAP_SYS_TIME功能:<br>允許處理系統時鐘<br>允許_stime<br>允許設置實時時鐘<p>CAP_SYS_TTY_CONFIG功能:<br>允許配置終端設備<br>允許vhangup()終端<p> 另外,還可以用權限標記專用進程。標記進程的權限使進程具備系統禁止的性能。<br> 例如,在文件lids.cap中取消CAP_SYS_RAWIO權限,但是你需要在啟動X Server的時候具備這個權限。所以,可以這樣設置:<br> # lidsconf -A -s /usr/X11R6/bin/XF86_SVGA -o CAP_SYS_RAWIO -j GRANT<br> 使XF86_SVGA具備CAP_SYS_RAWIO,而其它的程序不能得到CAP_SYS_RAWIO。<p>所以要選擇需要刪除的功能:<br>必須刪除CAP_SYS_MODULE, CAP_SYS_RAWIO 和 CAP_SYS_ADMIN來保護系統不受小的系統攻擊。最好也要禁止CAP_NET_ADMIN, CAP_SYS_PTRACE, CAP_LINUX_IMMUTABLE, CAP_KILL, CAP_SYS_RESOURCE, CAP_SYS_TIME 和 CAP_SYS_TTY_CONFIG<p> LIDS通過權限設置來提高網絡安全性,比如反sniferring,禁止捆綁1024以下的端口,禁止改變防火墻和路由規則。<p>4.內核掃描檢測<br> LIDS在內核中提供掃描監測器,檢測誰正在掃描你的系統。它能夠檢測出half-open掃描,SYN秘密掃描,秘密FIN,Xmas或NULL掃描等,像nmap,satan這樣的流行掃描工具可以被檢測到。<br> 即使原始套接口不能工作時它仍能起作用,因為它不用任何套接口。在這種情況下,一些基于sniffering的用戶檢測器不能工作了。若想要利用LIDS的這項功能,在編譯內核時選上就可以了。<p>5.入侵響應系統<br> 當LIDS檢測到違背定義的規則的活動時,可以做出下列響應:<br> a.記錄相關信息。<br> 當某人破壞這些規則時,lids_security_log記錄相關信息,記錄工作同樣具有anti_logging_flood的能力。編譯內核時你可以設置這個選項。<br> b.通過mail服務器記錄信息。<br> LIDS可以把日志送到你的信箱里面去。你可以在/etc/lids/lids.net中定義郵件服務器的IP,出口郵件的地址等。<br> 如下:<br> ---------------------------------------------------------------------------<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=192.168.100.171: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.xfocus.net<br> ---------------------------------------------------------------------------<p>配置好的系統重新啟動后,不要忘記用lidsadm封裝內核,在最后/etc/rc.local加入以下命令<br># /sbin/lidsadm -I<br>重新啟動,如果要關閉lids系統啟動,你可以在lilo里用security=0來啟動內核。<p>配置中要注意的幾點:<br>*. 啟動<br>在啟動的時候更新文件:<br> 一些文件需要在系統啟動的時候寫,但是會被LIDS保護,這些文件一般保存在/var目錄下,但是也有一些例外: modules.dep:除了增加或是刪除模塊外,不需要在啟動的時候更改,可以禁止它在啟動的時候更新。<br> mtab:用-n的選項在每次啟動的時候生成一個從/etc/mtab到/proc/mounts的一個連接。如果對/etc/目錄進行保護,那么在啟動中可能因為mtab不可寫而導致啟動失敗,因此需要將啟動腳本中的mount加-n選項,或者單獨對/etc下的幾個重要目錄或文件進行保護。<br>*. 關機或重起<br>可能會因為lids.conf配置引起關機是無法umount文件系統,導致重起后檢查硬盤文件系統。<br>所以在lids.conf必須對halt進行配置:<br>/sbin/lidsconf -A -s /etc/rc.d/init.d/halt -o CAP_INIT_KILL -i 1 -j GRANT<br>/sbin/lidsconf -A -s /etc/rc.d/init.d/halt -o CAP_KILL -i 1 -j GRANT<br>/sbin/lidsconf -A -s /etc/rc.d/init.d/halt -o CAP_NET_ADMIN -i 1 -j GRANT<br>/sbin/lidsconf -A -s /etc/rc.d/init.d/halt -o CAP_SYS_ADMIN -i 1 -j GRANT<br>*.針對隱藏的進程,因為進程隱藏所以關機的時候無法停止隱藏進程,導致不能正確的umount文件系統,重起的時候會對硬盤進行檢查,使啟動時間加長,所以在隱藏進程后,要對隱藏的進程的停止腳本加以修改。<br>例如隱藏了httpd進程后,需要修改/etc/rc.d/init.d/httpd殺死隱藏進程<br>...<br>stop() {<br>echo -n "Shutting down http: "<br>kill -15 `cat /var/run/httpd.pid`<br>sleep 5<br>#killproc httpd<br>RETVAL=$?<br>echo<br>[ $RETVAL = 0 ] && rm -f /var/lock/subsys/httpd /var/run/httpd.pid<br>}<br>...<br><center><A HREF="#Content">[目錄]</A></center><hr><br><A NAME="I726" ID="I726"></A><center><b><font size=+2>測試</font></b></center><br><center><A HREF="#Content">[目錄]</A></center><hr><br><A NAME="I728" ID="I728"></A><center><b><font size=+2>功能測試</font></b></center><br>1.功能測試:<p>配置腳本:<br>---------------------------------------------------------------------------------<br>#!/bin/sh<p># Flush old rules<br>/sbin/lidsconf -Z<p># Protect/etc/lids<br>/sbin/lidsconf -A -o /etc/lids -j DENY<p># Protect System Binaries<br>/sbin/lidsconf -A -o /sbin -j READONLY<br>/sbin/lidsconf -A -o /bin -j READONLY<p># Protect all of /usr and /usr/local<br>/sbin/lidsconf -A -o /usr -j READONLY<br>/sbin/lidsconf -A -o /usr/local -j READONLY<p># Protect the System Libraries<br>/sbin/lidsconf -A -o /lib -j READONLY<p># Protect System Configuration files<br>/sbin/lidsconf -A -o /etc/rc.d -j READONLY<br>/sbin/lidsconf -A -o /etc/rc0.d -j READONLY<br>/sbin/lidsconf -A -o /etc/rc1.d -j READONLY<br>/sbin/lidsconf -A -o /etc/rc2.d -j READONLY<br>/sbin/lidsconf -A -o /etc/rc3.d -j READONLY<br>/sbin/lidsconf -A -o /etc/rc4.d -j READONLY<br>/sbin/lidsconf -A -o /etc/rc5.d -j READONLY<br>/sbin/lidsconf -A -o /etc/rc6.d -j READONLY<br>/sbin/lidsconf -A -o /etc/init.d -j READONLY<br>/sbin/lidsconf -A -o /etc/rc.local -j READONLY<br>/sbin/lidsconf -A -o /etc/rc.sysinit -j READONLY<br>/sbin/lidsconf -A -o /etc/sysconfig -j READONLY<br>/sbin/lidsconf -A -o /etc/hosts -j READONLY<br>/sbin/lidsconf -A -o /etc/hosts.allow -j READONLY<br>/sbin/lidsconf -A -o /etc/hosts.deny -j READONLY<br>/sbin/lidsconf -A -o /etc/passwd -j READONLY<br>/sbin/lidsconf -A -o /etc/shadow -j DENY<br>/sbin/lidsconf -A -o /etc/lilo.conf -j DENY<p># Enable system authentication<br>/sbin/lidsconf -A -s /bin/login -o /etc/shadow -j READONLY<br>/sbin/lidsconf -A -s /bin/su -o /etc/shadow -j READONLY<br>/sbin/lidsconf -A -s /bin/su -o CAP_SETUID -j GRANT<br>/sbin/lidsconf -A -s /bin/su -o CAP_SETGID -j GRANT<br>/sbin/lidsconf -A -s /bin/login -o CAP_SETUID -j GRANT<br>/sbin/lidsconf -A -s /bin/login -o CAP_SETGID -j GRANT<br>/sbin/lidsconf -A -s /bin/login -o CAP_CHOWN -j GRANT<br>/sbin/lidsconf -A -s /bin/login -o CAP_FSETID -j GRANT<p># Protect the boot partition<br>/sbin/lidsconf -A -o /boot -j READONLY<p># Protect root's home dir, but allow bash history<br>/sbin/lidsconf -A -o /root -j READONLY<br>/sbin/lidsconf -A -s /bin/bash -o /root/.bash_history -j WRITE<p># Protect system logs<br>/sbin/lidsconf -A -o /var/log -j APPEND<br>/sbin/lidsconf -A -o /var/log/dmesg -j WRITE<br>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -