分享
 
 
 

LIDS入侵检测和防御系统安装与研究

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

我的测试环境为redhat7.2 kernel-2.4.7-10

首先下载软件包

http://www.mirrors.wiretapped.net/security/network-intrusion-detection/lids/download/

下可找到相应kernel的lids包

由于我的kernel是2.4.7所以先下相应的lids包lids-1.0.12-2.4.20.tar.gz 也要对应2.4.20

1.下载lids包

http://www.mirrors.wiretapped.net/security/network-intrusion-detection/lids/download/v2.4/2.4.7/lids-1.0.12-2.4.20.tar.gz

2.下载lidstools

最新的lidstools

http://www.mirrors.wiretapped.net/security/network-intrusion-detection/lids/download/lidstools/lidstools-0.5.6.tar.gz

(由于较新需要perl更高版本和其他包。所以偶没用这个。而是用lids里自带的)

3.下载kernel源代码

http://www.kernel.org/pub/linux/kernel/v2.4/linux-2.4.20.tar.gz

把所有文件传到/usr/src/下

cd /usr/src/

tar zxf linux-2.4.20.tar.gz

tar zxf lids-1.0.12-2.4.20.tar.gz

当然我只是测试,你可先打完kernel补丁后再安lids

cd linux-2.4.20

patch -p1 <../lids-1.1.2-2.4.20/lids-1.1.2-2.4.20.patch

make menuconfig

Code maturity level options --->

[*] Prompt for development and/or incomplete code/drivers

[*] Linux Intrusion Detection System support (EXPERIMENTAL)

--- LIDS features

(1024) Maximum protected objects to manage (NEW)

(1024) Maximum ACL subjects to manage (NEW)

(1024) Maximum ACL objects to manage (NEW)

[ ] Hang up console when raising a security alert (NEW)

[*] Security alert when execing unprotected programs before sealing LIDS (NEW)

[ ] Do not execute unprotected programs before sealing LIDS (NEW)

[*] Attempt not to flood logs

(60) Authorised time between two identic logs (seconds) (NEW)

[*] Allow switching LIDS protections

[ ] Restrict mode switching to specified terminals (NEW)

(3) Number of attempts to submit password (NEW)

(3) Time to wait after a fail (seconds) (NEW)

[ ] Allow any program to switch LIDS protections (NEW)

[*] Allow reloading config. file

[*] Port Scanner Detector in kernel

[ ] Send security alerts through network (NEW)

[ ] LIDS Debug (NEW)

当然如果用vmware测试最好先看好你的scsi类型必须选上。我的是BusLogic BT-958

还要支持其他设备哦。哈哈

退出保存

make dep

make clean

make bzImage

make modules

make modules_install

cp arch/i386/boot/bzImage /boot/vmlinuz-2.4.20-lids

vi /boot/grub/menu.lst

在末尾加上

title Red Hat Linux (2.4.20-lids)

root (hd0,0)

kernel /vmlinuz-2.4.20-lids ro root=/dev/sda2

cd ../lids-1.1.2-2.4.20

tar zxf lidstools-0.4.3.tar.gz

cd lidstools

./configure KERNEL_DIR=../../linux-2.4.20

make

make install

提示你输入密码

enter new password: 123456

reenter new password: 123456

配置好的系统重新启动后,不要忘记用lidsadm封装内核,在最后/etc/rc.local加入以下命令

/sbin/lidsadm -I

重新启动,如果要关闭lids系统启动,你可以在lilo里用security=0来启动内核。

运行命令/sbin/lidsadm -S -- -LIDS切换到不受lids保护的状态,然后执行配置脚本,运行命令/sbin/lidsadm -S -- +RELOAD_CONF,更新

lids配置,最后lidsadm -S -- +LIDS切换到lids保护状态

重起计算机选带lids的就基本搞定了

还有什么不明白研究下面的东东吧。偶是参考别人写的。不过也改了改因为里面有很多错误

和版本过老问题等。具体出自哪里忘记了。

有什么问题大家一起研究吧。哈哈

偶不擅长写技术文章还请多多批评。时间匆忙。请见谅。

偶没用于实际目前只在研究阶段。不过觉得非常好用。希望大家一起来研究

###########################

通过命令如ls /etc/shadow、ls /etc/lids、touch /sbin/x、ps axgrep http等命令测试lids保护的文件、目录和进程等;通过扫描器扫描

测试lids的检测功能以及lids的响应功能等。最好的办法是模仿黑客成功入侵后所做的活动,如装rootkit等来检验lids的主要功能。

缺省情况下,lidtools将把缺省配置文件安装到 /etc/lids/。你必须根据自己的需要重新配置。

lids.conf: 这个文件用来存储LIDS ACLs信息。它包括定义对象访问类型的ACLs。

lids.cap:这个文件包括系统的所有性能,可以编辑这个文件来配置这些性能。

lids.net:这个文件用来配置发给管理员信箱的警告信息。你可以定义SMTP服务器、端口、消息头等。仅在配置内核时,选择了[*] Send

security alerts through network (NEW)才有该文件。

lids.pw:这个文件存储由'lidsadm -P'命令生成的密码文件。配置内核时选择[*] Allow switching LIDS protections , 就必须有该文件。

1.配置LIDS保护的文件和目录

首先,确定要保护哪些文件。一般情况下,保护系统二进制文件和系统配置文件,

比如:/bin,/sbin/,/usr/,/etc/,/var/log/。

其次,决定以什么方式来保护文件。LIDS提供四种保护类型。

a.拒绝任何人访问

带有DENY标志的文件和目录没有人能够看见,也不能修改。那些非常敏感的文件应该加上DENY标志。例如,/etc/shadow文件。

---------------------------------------------------------------------------

用法:

lidsconf -A -o file_to_protected -j DENY

# lidsconf -A -o /etc/shadow -j DENY

重启或重新加载配置文件后,你会看到:

# ls /etc/shadow

ls: /etc/shadow: No such file or directory

---------------------------------------------------------------------------

接下来,还需要一些设置使一些特有的程序能够访问这些文件,比如,登录到系统的时候,/bin/login文件需要从有DENY标记的

/etc/shadow文件中读密码。

---------------------------------------------------------------------------

用法:

lidsconf -A -s SUBJECT_PROGRAM -o OBJECT_PROGRAM -j READONLY/WRITE/APPEND

# lidsconf -A -s /bin/login -o /etc/shadow -j READONLY

---------------------------------------------------------------------------

当你配置好而且重启系统或重新加载配置文件后,你可以登录进系统,但不能看到/etc/shadow。这就是强制访问控制的一个例子。

b.只读文件

任何用户不能改变带有只读标记的文件。比如/etc/passwd,/bin/passwd文件一般属于此类。

---------------------------------------------------------------------------

用法:

lidsconf -A -o file_to_protect -j READONLY

例子:

1.保护整个/sbin/目录,使之只读。

# /sbin/lidsconf -A -o /sbin/ -j READONLY

2.保护/etc/passwd文件为只读

# /sbin/lidsconf -A -o /etc/passwd -j READONLY

---------------------------------------------------------------------------

c.只能追加的文件

一般来说,系统日志文件应定义成此类。比如,/var/log/message,/var/log/secure。这些文件只能以追加的模式打开,用户不能修改前面

的部分。

---------------------------------------------------------------------------

用法:

lidsconf -A -o filename_to_protect -j APPEND

例子:

1.保护系统日志文件

# /sbin/lidsconf -A -o /var/log/message -j APPEND

# /sbin/lidsconf -A -o /var/log/secure -j APPEND

2.保护apache httpd日志文件

# /sbin/lidsconf -A -o /var/log/httpd -j APPEND

---------------------------------------------------------------------------

d.可写文件

以上READONLY,APPEND,WRITE属于LIDS对文件采取的强制访问控制(MAC)。

通过LIDS的这个功能,就可以定义哪个程序可以对哪个文件采取什么样的访问模式。比如,定义/home/httpd/对任何人DENY,并且定义

/usr/sbin/httpd能够从所在目录READONLY。在这种情况下,Web服务器像一般的Web服务器一样,只是在/home/httpd/目录下的内容和程序不能

被看到和修改。即使入侵者利用httpd的漏洞获得了ROOT权限,他也看不到在root shell里面的文件。即使他重写缓冲区,在httpd 服务器中加

入一些病毒代码,他也只能读出/home/httpd下面的文件而实质上无法修改它们。

---------------------------------------------------------------------------

# lidsconf -A -o /home/httpd -j DENY

# lidsconf -A -s /usr/sbin/httpd -o /home/httpd -j READONLY

---------------------------------------------------------------------------

一个简单配置的例子:

---------------------------------------------------------------------------

lidsconf -Z

lidsconf -A -o /boot -j READONLY

lidsconf -A -o /lib -j READONLY

lidsconf -A -o /root -j READONLY

lidsconf -A -o /etc -j READONLY

lidsconf -A -o /sbin -j READONLY

lidsconf -A -o /usr/sbin -j READONLY

lidsconf -A -o /bin -j READONLY

lidsconf -A -o /usr/bin -j READONLY

lidsconf -A -o /usr/lib -j READONLY

---------------------------------------------------------------------------

LIDS配置:

必须配置lids系统,使其符合你的安全需要.你可以定义受保护的文件,受保护的进程等等。

首先,更新缺省lids.conf的inode/dev值。

# /sbin/lidsconf -U

然后,获得一个RipeMD-160加密口令:

# /sbin/lidsconf -P

缺省情况下,lidsadm将把缺省配置文件安装到 /etc/lids/。你必须根据自己的需要重新配置。

当内核启动时,配置信息就把相关信息读入内核来初始化LIDS系统。

lids.conf: 这个文件用来存储LIDS ACLs信息。它包括定义对象访问类型的ACLs。

lids.cap:这个文件包括系统的所有性能,可以编辑这个文件来配置这些性能。

lids.net:这个文件用来配置发给管理员信箱的警告信息。你可以定义SMTP服务器、端口、消息头等。仅在配置内核时,选择了[*] Send

security alerts through network (NEW)才有该文件。

lids.pw:这个文件存储由'lidsadm -P'命令生成的密码文件。配置内核时选择[*] Allow switching LIDS protections , 就必须有该文

件。

1.配置LIDS保护的文件和目录

首先,确定要保护哪些文件。一般情况下,保护系统二进制文件和系统配置文件,

比如:/bin,/sbin/,/usr/,/etc/,/var/log/。

其次,决定以什么方式来保护文件。LIDS提供四种保护类型。

a.拒绝任何人访问

带有DENY标志的文件和目录没有人能够看见,也不能修改。那些非常敏感的文件应该加上DENY标志。例如,/etc/shadow文件。

---------------------------------------------------------------------------

用法:

lidsconf -A -o file_to_protected -j DENY

# lidsconf -A -o /etc/shadow -j DENY

重启或重新加载配置文件后,你会看到:

# ls /etc/shadow

ls: /etc/shadow: No such file or directory

---------------------------------------------------------------------------

接下来,还需要一些设置使一些特有的程序能够访问这些文件,比如,登录到系统的时候,/bin/login文件需要从有DENY标记的

/etc/shadow文件中读密码。

---------------------------------------------------------------------------

用法:

lidsconf -A -s SUBJECT_PROGRAM -o OBJECT_PROGRAM -j READONLY/WRITE/APPEND

# lidsconf -A -s /bin/login -o /etc/shadow -j READONLY

---------------------------------------------------------------------------

当你配置好而且重启系统或重新加载配置文件后,你可以登录进系统,但不能看到/etc/shadow。这就是强制访问控制的一个例子。

b.只读文件

任何用户不能改变带有只读标记的文件。比如/etc/passwd,/bin/passwd文件一般属于此类。

---------------------------------------------------------------------------

用法:

lidsconf -A -o file_to_protect -j READONLY

例子:

1.保护整个/sbin/目录,使之只读。

# /sbin/lidsconf -A -o /sbin/ -j READONLY

2.保护/etc/passwd文件为只读

# /sbin/lidsconf -A -o /etc/passwd -j READONLY

---------------------------------------------------------------------------

c.只能追加的文件

一般来说,系统日志文件应定义成此类。比如,/var/log/message,/var/log/secure。这些文件只能以追加的模式打开,用户不能修改前面

的部分。

---------------------------------------------------------------------------

用法:

lidsconf -A -o filename_to_protect -j APPEND

例子:

1.保护系统日志文件

# /sbin/lidsconf -A -o /var/log/message -j APPEND

# /sbin/lidsconf -A -o /var/log/secure -j APPEND

2.保护apache httpd日志文件

# /sbin/lidsconf -A -o /var/log/httpd -j APPEND

---------------------------------------------------------------------------

d.可写文件

以上READONLY,APPEND,WRITE属于LIDS对文件采取的强制访问控制(MAC)。

通过LIDS的这个功能,就可以定义哪个程序可以对哪个文件采取什么样的访问模式。比如,定义/home/httpd/对任何人DENY,并且定义

/usr/sbin/httpd能够从所在目录READONLY。在这种情况下,Web服务器像一般的Web服务器一样,只是在/home/httpd/目录下的内容和程序不能

被看到和修改。即使入侵者利用httpd的漏洞获得了ROOT权限,他也看不到在root shell里面的文件。即使他重写缓冲区,在httpd 服务器中加

入一些病毒代码,他也只能读出/home/httpd下面的文件而实质上无法修改它们。

---------------------------------------------------------------------------

# lidsconf -A -o /home/httpd -j DENY

# lidsconf -A -s /usr/sbin/httpd -o /home/httpd -j READONLY

---------------------------------------------------------------------------

一个简单配置的例子:

---------------------------------------------------------------------------

lidsconf -Z

lidsconf -A -o /boot -j READONLY

lidsconf -A -o /lib -j READONLY

lidsconf -A -o /root -j READONLY

lidsconf -A -o /etc -j READONLY

lidsconf -A -o /sbin -j READONLY

lidsconf -A -o /usr/sbin -j READONLY

lidsconf -A -o /bin -j READONLY

lidsconf -A -o /usr/bin -j READONLY

lidsconf -A -o /usr/lib -j READONLY

---------------------------------------------------------------------------

2.配置LIDS保护进程

a.不可杀死的进程

LIDS能够保护父进程是init(pid=1)的进程,按照下面的命令配置/etc/lids/lids.cap里面的性能:

-29:CAP_INIT_KILL

b.隐藏的进程

这些进程看不到,用ps命令或者在/proc里面也看不到。

---------------------------------------------------------------------------

例子:

lidsconf -A -s /usr/sbin/httpd -o CAP_HIDDEN -j GRANT

---------------------------------------------------------------------------

3.通过设置权限来保护

这里的权限就是你给一个进程的权限。一个root进程拥有所有的性能,还存在绑定的权限问题。在一般的内核中,当从绑定集中去掉一种

权限时,除非重启任何人都不能启用该权限。LIDS修改权限使用户可以在这些权限中间任意切换。对/proc/sys/kernel/cap_bset的访问被俘获

,引发安全告警。

系统的权限值存储在/etc/lids/lids.cap中。编辑它可以满足你的需求。

例如:

CAP_SYS_RAWIO项若打开,我们就可以允许访问/dev/port,/dev/mem,/dev/kmem,以及对原始块设备(/dev/[sh]d??)的访问。

当我们取消这个权限时,就可以使运行在系统上的所有进程不能访问原始块设备,比如运行lilo。但是,一些进程的运行需要这些权限,

比如XF86_SVGA。

再比如,CAP_NET_ADMIN,这项权限可以得到以下的能力:接口配置,IP防火墙、伪装和计费的管理,设置sockets调试选项,修改路由表

,设置任意进程或进程组对sockets的所有权,为透明proxy代理捆绑地址,设置服务类型,设置混合模式,多播,对设备的指定寄存器进行读

写等。出于安全考虑,我们应当取消这项权限,不允许变化网络设置,也就禁止了防火墙规则的改变。

配置lids.cap文件的方法是在权限名字的前面设置"+"使它有效,或设置"-"取消它。

具体的功能说明:

CAP_CHOWN功能:

在一个_POSIX_CHOWN_RESTRICTED功能定义的系统。这会越过改变系统文件所有者和组所有的权限

CAP_DAC_OVERRIED功能:

如果_POSIX_ACL定义,就会越过所有的DAC访问,包括ACL执行访问,用CAP_LINUX_IMMUTABLE功能来排除DAC的访问

CAP_DAC_READ_SEARCH功能:

如果_POSIX_ACL定义,就会越过所有的DAC的读限制,并在所有的文件和目录里搜索,包括ACL限制。用CAP_LINUX_IMMUTABLE来限制DAC访问

CAP_FOWNER功能:

越过文件说有的允许限制,如文件的所有者ID必须和用户ID一样,除了CAP_FSETID可用。它不会越过MAC和DAC限制

CAP_FSETID功能:

越过当设置文件的S_ISUID和S_ISGID位的时候,用户的ID必须和所有者ID匹配的限制,设置S-ISGID位的时候,组ID必须和所有者ID匹配的限制

,用chown来设置S_ISUID和S_ISGID为的功能限制

CAP_FS_MASK功能:

用来回应suser()或是fsuser()。

CAP_KILL功能:

一个有有效用户ID的进程发送信号时必须匹配有效用户ID的功能会越过

CAP_SETGID功能:

允许setgid() 功能, 允许setgroups() 允许在socket里伪造gid

CAP_SETUID功能:

允许set*uid()功能 允许伪造pid在socket

CAP_SETPCAP功能:

把所有的许可给所有的pid。或是把所有的许可删除

CAP_LINUX_IMMUTABLE功能:

允许更改S_IMMUTABLE和S_APPEND文件属性

CAP_NET_BIND_SERVICE功能:

允许绑定1024下的TCP/UDP套接字

CAP_NET_BROADCAST功能:

允许广播,监听多点传送

CAP_NET_ADMIN功能:

允许配置接口

允许管理IP防火墙IP伪装和帐户

允许配置socket调试选项

允许修改路由表

允许配置socket上的进程的组属性

允许绑定所有地址的透明代理

允许配置TOS(服务类型)

允许配置混杂模式

允许清除驱动状态

允许多点传送

允许读或写系统记录

CAP_NET_RAW功能:

允许用RAW套接字

允许用PACKET套接字

CAP_IPC_LOCK功能:

允许琐定共享内存段

允许mlock和mlockall

CAP_IPC_OWNER功能:

越过IPC所有权检查

CAP_SYS_MODULE功能:

插入或删除内核模块

CAP_SYS_RAWIO功能:

允许ioperm/iopl和/dev/prot的访问

允许/dev/mem和/dev/kmem访问

允许块设备访问(/dev/[sh]d??)

CAP_SYS_CHROOT功能:

允许chroot()

CAP_SYS_PTRACE功能:

允许ptrace()任何进程

CAP_SYS_PACCT功能:

允许配置进程帐号

CAP_SYS_ADMIN功能:

允许配置安全钥匙

允许管理随机设备

允许设备管理

允许检查和配置磁盘限额

允许配置内核日志

允许配置域名

允许配置主机名

允许调用bdflush()命令

允许mount()和umount()命令

允许配置smb连接

允许root的ioctls

允许nfsservctl

允许VM86_REQUEST_IRQ

允许在alpha上读写pci配置

允许在mips上的irix_prctl

允许刷新所有的m68k缓存

允许删除semaphores

用CAP_CHOWN去代替"chown"IPC消息队列,标志和共享内存

允许锁定或是解锁共享内存段

允许开关swap

允许在socket伪装pids

允许设置块设备的缓存刷新

允许设置软盘驱动器

允许开关DMA开关

允许管理md设备

允许管理ide驱动

允许访问nvram设备

允许管理apm_bios,串口或是bttv电视设备

允许在isdn CAPI的驱动下生成命令

允许读取pci的非标准配置

允许DDI调试ioctl

允许发送qic-117命令

允许启动或禁止SCSI的控制和发送SCSI命令 允许配置加密口令在回路文件系统上

CAP_SYS_BOOT功能:

允许用reboot() 命令

CAP_SYS_NICE功能:

允许提高或设置其他进程的优先权

允许在自己的进程用FISO和实时的安排和配置

CAP_SYS_RESOURCE功能:

越过资源限制,设置资源限制

越过配额限制

越过保留的ext2文件系统

允许大于64hz的实时时钟中断

越过最大数目的控制终端

越过最大数目的键

CAP_SYS_TIME功能:

允许处理系统时钟

允许_stime

允许设置实时时钟

CAP_SYS_TTY_CONFIG功能:

允许配置终端设备

允许vhangup()终端

另外,还可以用权限标记专用进程。标记进程的权限使进程具备系统禁止的性能。

例如,在文件lids.cap中取消CAP_SYS_RAWIO权限,但是你需要在启动X Server的时候具备这个权限。所以,可以这样设置:

# lidsconf -A -s /usr/X11R6/bin/XF86_SVGA -o CAP_SYS_RAWIO -j GRANT

使XF86_SVGA具备CAP_SYS_RAWIO,而其它的程序不能得到CAP_SYS_RAWIO。

所以要选择需要删除的功能:

必须删除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

LIDS通过权限设置来提高网络安全性,比如反sniferring,禁止捆绑1024以下的端口,禁止改变防火墙和路由规则。

4.内核扫描检测

LIDS在内核中提供扫描监测器,检测谁正在扫描你的系统。它能够检测出half-open扫描,SYN秘密扫描,秘密FIN,Xmas或NULL扫描等,像

nmap,satan这样的流行扫描工具可以被检测到。

即使原始套接口不能工作时它仍能起作用,因为它不用任何套接口。在这种情况下,一些基于sniffering的用户检测器不能工作了。若想

要利用LIDS的这项功能,在编译内核时选上就可以了。

5.入侵响应系统

当LIDS检测到违背定义的规则的活动时,可以做出下列响应:

a.记录相关信息。

当某人破坏这些规则时,lids_security_log记录相关信息,记录工作同样具有anti_logging_flood的能力。编译内核时你可以设置这个选

项。

b.通过mail服务器记录信息。

LIDS可以把日志送到你的信箱里面去。你可以在/etc/lids/lids.net中定义邮件服务器的IP,出口邮件的地址等。

如下:

---------------------------------------------------------------------------

MAIL_SWITCH=1

# MAIL_RELAY=hex IP:port

# IP11.1 of the machine that will be directly connected by LIDS

# for relaying its mails. Port is usually 25, but who knows...

MAIL_RELAY=192.168.100.171:25

# MAIL_SOURCE=source machine :

# Name of the source machine, used for the ehlo identification.

# Note that a bad name here could make the mail relay refuse your

# mails.

MAIL_SOURCE=lids.xfocus.net

---------------------------------------------------------------------------

配置中要注意的几点:

*. 启动

在启动的时候更新文件:

一些文件需要在系统启动的时候写,但是会被LIDS保护,这些文件一般保存在/var目录下,但是也有一些例外: modules.dep:除了增加

或是删除模块外,不需要在启动的时候更改,可以禁止它在启动的时候更新。

mtab:用-n的选项在每次启动的时候生成一个从/etc/mtab到/proc/mounts的一个连接。如果对/etc/目录进行保护,那么在启动中可能因

为mtab不可写而导致启动失败,因此需要将启动脚本中的mount加-n选项,或者单独对/etc下的几个重要目录或文件进行保护。

*. 关机或重起

可能会因为lids.conf配置引起关机是无法umount文件系统,导致重起后检查硬盘文件系统。

所以在lids.conf必须对halt进行配置:

/sbin/lidsconf -A -s /etc/rc.d/init.d/halt -o CAP_INIT_KILL -i 1 -j GRANT

/sbin/lidsconf -A -s /etc/rc.d/init.d/halt -o CAP_KILL -i 1 -j GRANT

/sbin/lidsconf -A -s /etc/rc.d/init.d/halt -o CAP_NET_ADMIN -i 1 -j GRANT

/sbin/lidsconf -A -s /etc/rc.d/init.d/halt -o CAP_SYS_ADMIN -i 1 -j GRANT

*.针对隐藏的进程,因为进程隐藏所以关机的时候无法停止隐藏进程,导致不能正确的umount文件系统,重起的时候会对硬盘进行检查,使启

动时间加长,所以在隐藏进程后,要对隐藏的进程的停止脚本加以修改。

例如隐藏了httpd进程后,需要修改/etc/rc.d/init.d/httpd杀死隐藏进程

...

stop() {

echo -n "Shutting down http: "

kill -15 `cat /var/run/httpd.pid`

sleep 5

#killproc httpd

RETVAL=$?

echo

[ $RETVAL = 0 ] && rm -f /var/lock/subsys/httpd /var/run/httpd.pid

}

...

LIDS测试:

1.功能测试:

配置脚本:

---------------------------------------------------------------------------------

#!/bin/sh

# Flush old rules

/sbin/lidsconf -Z

# Protect/etc/lids

/sbin/lidsconf -A -o /etc/lids -j DENY

# Protect System Binaries

/sbin/lidsconf -A -o /sbin -j READONLY

/sbin/lidsconf -A -o /bin -j READONLY

# Protect all of /usr and /usr/local

/sbin/lidsconf -A -o /usr -j READONLY

/sbin/lidsconf -A -o /usr/local -j READONLY

# Protect the System Libraries

/sbin/lidsconf -A -o /lib -j READONLY

# Protect System Configuration files

/sbin/lidsconf -A -o /etc/rc.d -j READONLY

/sbin/lidsconf -A -o /etc/rc0.d -j READONLY

/sbin/lidsconf -A -o /etc/rc1.d -j READONLY

/sbin/lidsconf -A -o /etc/rc2.d -j READONLY

/sbin/lidsconf -A -o /etc/rc3.d -j READONLY

/sbin/lidsconf -A -o /etc/rc4.d -j READONLY

/sbin/lidsconf -A -o /etc/rc5.d -j READONLY

/sbin/lidsconf -A -o /etc/rc6.d -j READONLY

/sbin/lidsconf -A -o /etc/init.d -j READONLY

/sbin/lidsconf -A -o /etc/rc.local -j READONLY

/sbin/lidsconf -A -o /etc/rc.sysinit -j READONLY

/sbin/lidsconf -A -o /etc/sysconfig -j READONLY

/sbin/lidsconf -A -o /etc/hosts -j READONLY

/sbin/lidsconf -A -o /etc/hosts.allow -j READONLY

/sbin/lidsconf -A -o /etc/hosts.deny -j READONLY

/sbin/lidsconf -A -o /etc/passwd -j READONLY

/sbin/lidsconf -A -o /etc/shadow -j DENY

/sbin/lidsconf -A -o /etc/lilo.conf -j DENY

# Enable system authentication

/sbin/lidsconf -A -s /bin/login -o /etc/shadow -j READONLY

/sbin/lidsconf -A -s /bin/su -o /etc/shadow -j READONLY

/sbin/lidsconf -A -s /bin/su -o CAP_SETUID -j GRANT

/sbin/lidsconf -A -s /bin/su -o CAP_SETGID -j GRANT

/sbin/lidsconf -A -s /bin/login -o CAP_SETUID -j GRANT

/sbin/lidsconf -A -s /bin/login -o CAP_SETGID -j GRANT

/sbin/lidsconf -A -s /bin/login -o CAP_CHOWN -j GRANT

/sbin/lidsconf -A -s /bin/login -o CAP_FSETID -j GRANT

# Protect the boot partition

/sbin/lidsconf -A -o /boot -j READONLY

# Protect root's home dir, but allow bash history

/sbin/lidsconf -A -o /root -j READONLY

/sbin/lidsconf -A -s /bin/bash -o /root/.bash_history -j WRITE

# Protect system logs

/sbin/lidsconf -A -o /var/log -j APPEND

/sbin/lidsconf -A -o /var/log/dmesg -j WRITE

/sbin/lidsconf -A -s /bin/login -o /var/log/wtmp -j WRITE

/sbin/lidsconf -A -s /bin/login -o /var/log/lastlog -j WRITE

/sbin/lidsconf -A -s /sbin/init -o /var/log/wtmp -j WRITE

/sbin/lidsconf -A -s /sbin/init -o /var/log/lastlog -j WRITE

/sbin/lidsconf -A -s /sbin/halt -o /var/log/wtmp -j WRITE

/sbin/lidsconf -A -s /sbin/halt -o /var/log/lastlog -j WRITE

/sbin/lidsconf -A -s /etc/rc.d/rc.sysinit -o /var/log/wtmp -i 1 -j WRITE

/sbin/lidsconf -A -s /etc/rc.d/rc.sysinit -o /var/log/lastlog -i 1 -j WRITE

# Shutdown

/sbin/lidsconf -A -s /sbin/init -o CAP_INIT_KILL -j GRANT

/sbin/lidsconf -A -s /sbin/init -o CAP_KILL -j GRANT

# Give the following init script the proper privileges to kill processes and

# unmount the file systems. However, anyone who can execute these scripts

# by themselves can effectively kill your processes. It's better than

# the alternative, however.

/sbin/lidsconf -A -s /etc/rc.d/init.d/halt -o CAP_INIT_KILL -i 1 -j GRANT

/sbin/lidsconf -A -s /etc/rc.d/init.d/halt -o CAP_KILL -i 1 -j GRANT

/sbin/lidsconf -A -s /etc/rc.d/init.d/halt -o CAP_NET_ADMIN -i 1 -j GRANT

/sbin/lidsconf -A -s /etc/rc.d/init.d/halt -o CAP_SYS_ADMIN -i 1 -j GRANT

/sbin/lidsconf -A -s /etc/rc.d/init.d/halt -o CAP_SYS_RAWIO -i 1 -j GRANT

# Other

/sbin/lidsconf -A -s /sbin/update -o CAP_SYS_ADMIN -j GRANT

/sbin/lidsconf -A -s /sbin/consoletype -o CAP_SYS_ADMIN -j GRANT

#Protect and hide Httpd

/sbin/lidsconf -A -o /etc/httpd -j DENY

/sbin/lidsconf -A -s /usr/sbin/httpd -o /etc/httpd -j READONLY

/sbin/lidsconf -A -s /usr/sbin/httpd -o CAP_HIDDEN -j GRANT

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有