⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 5.html

📁 介绍linux下文件和设备编程
💻 HTML
📖 第 1 页 / 共 5 页
字号:
实例<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/下,你必须运行 &quot;lidsadm -U&quot;更新 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>  由于进程被隐藏, 所以当进程启动时,任何人用 &quot;ps&quot;命令或在&quot;/proc&quot;下都无法找到<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前加 &quot;+&quot;或&quot;-&quot;来启动或禁止权限。<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>&nbsp;&nbsp;&nbsp; LIDS是Linux下的入侵检测和防护系统,是linux内核的补丁和安全管理工具,它增强了内核的安全性,它在内核中实现了参考监听模式以及强制访问控制(Mandatory Access Control)模式。<p>LIDS主要功能:<br>&nbsp;&nbsp;&nbsp; &middot;保护:保护硬盘上任何类型的重要文件和目录,如/bin、/sbin、/usr/bin、/usr/sbin、/etc/rc.d等目录和其下的文件,以及系统中的敏感文件,如passwd和shadow文件,防止未被授权者(包括ROOT)和未被授权的程序进入,任何人包括ROOT都无法改变,文件可以隐藏。 保护重要进程不被终止,任何人包括root也不能杀死进程,而且可以隐藏特定的进程。防止非法程序的RAW IO 操作,保护硬盘,包括MBR保护等等。<p>&nbsp;&nbsp;&nbsp; &middot;检测:集成在内核中的端口扫描器,LIDS能检测到扫描并报告系统管理员。 LIDS还可以检测到系统上任何违反规则的进程。<p>&nbsp;&nbsp;&nbsp; &middot;响应:来自内核的安全警告,当有人违反规则时, 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 &lt; 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>&nbsp;&nbsp;&nbsp; 必须配置lids系统,使其符合你的安全需要.你可以定义受保护的文件,受保护的进程等等。<p>&nbsp;&nbsp;&nbsp; 首先,更新缺省lids.conf的inode/dev值。<br># /sbin/lidsadm -U<p>&nbsp;&nbsp;&nbsp; 然后,获得一个RipeMD-160加密口令:<br>  # /sbin/lidsadm -P<p>&nbsp;&nbsp;&nbsp; 缺省情况下,lidsadm将把缺省配置文件安装到 /etc/lids/。你必须根据自己的需要重新配置。<br>&nbsp;&nbsp;&nbsp; 当内核启动时,配置信息就把相关信息读入内核来初始化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 + -