前言:
前一段时间研究lids,觉得还不错,于是将网上收集到的资料以及使用的经验整理了一下,希望对研究LIDS的朋友和linux下的管理员有所帮助。
一. LIDS介绍:
LIDS是Linux下的入侵检测和防护系统,是linux内核的补丁和安全管理工具,它增强了内核的安全性,它在内核中实现了参考监听模式以及强制访问控制(Mandatory Access Control)模式。
LIDS主要功能:
保护:保护硬盘上任何类型的重要文件和目录,如/bin、/sbin、/usr/bin、/usr/sbin、/etc/rc.d等目录和其下的文件,以及系统中的敏感文件,如passwd和shadow文件,防止未被授权者(包括ROOT)和未被授权的程序进入,任何人包括ROOT都无法改变,文件可以隐藏。 保护重要进程不被终止,任何人包括root也不能杀死进程,而且可以隐藏特定的进程。防止非法程序的RAW IO 操作,保护硬盘,包括MBR保护等等。
检测:集成在内核中的端口扫描器,LIDS能检测到扫描并报告系统管理员。 LIDS还可以检测到系统上任何违反规则的进程。
响应:来自内核的安全警告,当有人违反规则时, LIDS会在控制台显示警告信息,将非法的活动细节记录到受LIDS保护的系统log文件中。 LIDS还可以将log信息发到你的信箱中。LIDS还可以马上关闭与用户的会话。
二. LIDS安装:
1.下载必须文件,linux内核源码包和lids包,然后解压
# cd linux_install_path/
# bzip2 -cd linux-2.4.16.tar.bz2 | tar -xvf -
# cd lids_install_path
# tar -zxvf lids-1.1.0-2.4.16.tar.gz
2在linux的内核打LIDS补丁,然后配置和编译linux内核,安装LIDS系统
# cd linux_install_path/linux
# patch -p1
# rm -rf /usr/src/linux
# ln -s linux_install_patch/linux /usr/src/linux
# cd /usr/src/linux
# make menuconfig or make xconfig
Prompt for development and/or incomplete code/drivers
Sysctl support
Linux Intrusion Detection System support (EXPERIMENTAL) (NEW).
[ ] Hang up console when raising a security alert
当收到一个安全警告挂起控制台
[ ] Security alert when execing unprotected programs before sealing LIDS
当执行没有受LIDS保护的程序时发送安全警告
[ ] Do not execute unprotected programs before sealing LIDS
在安装LIDS前不执行没有受保护的程序
[ ] Try not to flood logs
尽量不要让日志溢出
[ ] Allow switching LIDS protections
允许转换LIDS保护
[ ] Allow remote users to switch LIDS protections
允许远程用户来转换LIDS保护
[ ] Allow any program to switch LIDS protections
允许任何程序来转换LIDS保护
[ ] Allow reloading config. file
允许重新引导配置文件
[ ] Port Scanner Detector in kernel
内核的端口扫描器
[ ] Send security alerts through network
通过网络发送安全警告
[ ] Hide klids kernel thread
隐藏内核进程
[ ] Use generic mailer pseudo-script
使用通用的邮件发送脚本
根据需要选择相应的选项,配置支持LIDS的内核以后.退出配置界面,编译内核。
# make dep
# make clean
# make bzImage
# make modules
# make modules_install
复制 bzImage 到 /boot/ ,编辑 /etc/lilo.conf
# cp arch/i386/boot/bzImage /boot/bzImage-lids
安装lids管理工具
# cd lids-1.1.0-2.4.16/lidsadm-1.1.0/
# make
# make install
# vi /etc/lilo.conf
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
default=lids
image=/boot/vmlinuz-2.4.16
label=linux
read-only
root=/dev/hda2
image=/boot/bzImage-lids
label=lids
read-only
root=/dev/hda2
运行/sbin/lilo 来安装新内核
# /sbin/lilo
三. LIDS配置:
必须配置lids系统,使其符合你的安全需要.你可以定义受保护的文件,受保护的进程等等。
首先,更新缺省lids.conf的inode/dev值。
# /sbin/lidsadm -U
然后,获得一个RipeMD-160加密口令:
# /sbin/lidsadm -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
---------------------------------------------------------------------------