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

📄 5.html

📁 介绍linux下文件和设备编程
💻 HTML
📖 第 1 页 / 共 5 页
字号:
  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文件的方法是在权限名字的前面设置&quot;+&quot;使它有效,或设置&quot;-&quot;取消它。<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去代替&quot;chown&quot;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 &quot;Shutting down http: &quot;<br>kill -15 `cat /var/run/httpd.pid`<br>sleep 5<br>#killproc httpd<br>RETVAL=$?<br>echo<br>[ $RETVAL = 0 ] &amp;&amp; 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 + -