Linux IDS攻略.docx

上传人:b****4 文档编号:12018800 上传时间:2023-04-16 格式:DOCX 页数:39 大小:30.23KB
下载 相关 举报
Linux IDS攻略.docx_第1页
第1页 / 共39页
Linux IDS攻略.docx_第2页
第2页 / 共39页
Linux IDS攻略.docx_第3页
第3页 / 共39页
Linux IDS攻略.docx_第4页
第4页 / 共39页
Linux IDS攻略.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

Linux IDS攻略.docx

《Linux IDS攻略.docx》由会员分享,可在线阅读,更多相关《Linux IDS攻略.docx(39页珍藏版)》请在冰豆网上搜索。

Linux IDS攻略.docx

LinuxIDS攻略

LinuxIDS攻略

一.LIDS介绍:

LIDS是Linux下的入侵检测和防护系统,是linux内核的补丁和安全管理工具,它增强了内核的安全性,它在内核中实现了参考监听模式以及强制访问控制(MandatoryAccessControl)模式。

LIDS主要功能:

保护:

保护硬盘上任何类型的重要文件和目录,如/bin、/sbin、/usr/bin、/usr/sbin、/etc/rc.d等目录和其下的文件,以及系统中的敏感文件,如passwd和shadow文件,防止未被授权者(包括ROOT)和未被授权的程序进入,任何人包括ROOT都无法改变,文件可以隐藏。

保护重要进程不被终止,任何人包括root也不能杀死进程,而且可以隐藏特定的进程。

防止非法程序的RAWIO操作,保护硬盘,包括MBR保护等等。

检测:

集成在内核中的端口扫描器,LIDS能检测到扫描并报告系统管理员。

LIDS还可以检测到系统上任何违反规则的进程。

响应:

来自内核的安全警告,当有人违反规则时,LIDS会在控制台显示警告信息,将非法的活动细节记录到受LIDS保护的系统log文件中。

LIDS还可以将log信息发到你的信箱中。

LIDS还可以马上关闭与用户的会话。

二.LIDS安装:

1.下载必须文件,linux内核源码包和lids包,然后解压

#cdlinux_install_path/

#bzip2-cdlinux-2.4.16.tar.bz2 tar-xvf-

#cdlids_install_path

#tar-zxvflids-1.1.0-2.4.16.tar.gz

2在linux的内核打LIDS补丁,然后配置和编译linux内核,安装LIDS系统

#cdlinux_install_path/linux

#patch-p1

#rm-rf/usr/src/linux

#ln-slinux_install_patch/linux/usr/src/linux

#cd/usr/src/linux

#makemenuconfigormakexconfig

[*]Promptfordevelopmentand/orincompletecode/drivers

[*]Sysctlsupport

[*]LinuxIntrusionDetectionSystemsupport(EXPERIMENTAL)(NEW).

[]Hangupconsolewhenraisingasecurityalert

当收到一个安全警告挂起控制台

[]SecurityalertwhenexecingunprotectedprogramsbeforesealingLIDS

当执行没有受LIDS保护的程序时发送安全警告

[]DonotexecuteunprotectedprogramsbeforesealingLIDS

在安装LIDS前不执行没有受保护的程序

[]Trynottofloodlogs

尽量不要让日志溢出

[]AllowswitchingLIDSprotections

允许转换LIDS保护

[]AllowremoteuserstoswitchLIDSprotections

允许远程用户来转换LIDS保护

[]AllowanyprogramtoswitchLIDSprotections

允许任何程序来转换LIDS保护

[]Allowreloadingconfig.file

允许重新引导配置文件

[]PortScannerDetectorinkernel

内核的端口扫描器

[]Sendsecurityalertsthroughnetwork

通过网络发送安全警告

[]Hideklidskernelthread

隐藏内核进程

[]Usegenericmailerpseudo-script

使用通用的邮件发送脚本

根据需要选择相应的选项,配置支持LIDS的内核以后.退出配置界面,编译内核。

#makedep

#makeclean

#makebzImage

#makemodules

#makemodules_install

 复制bzImage到/boot/,编辑/etc/lilo.conf

#cparch/i386/boot/bzImage/boot/bzImage-lids

安装lids管理工具

#cdlids-1.1.0-2.4.16/lidsadm-1.1.0/

#make

#makeinstall

#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:

这个文件用来存储LIDSACLs信息。

它包括定义对象访问类型的ACLs。

 lids.cap:

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

 :

这个文件用来配置发给管理员信箱的警告信息。

你可以定义SMTP服务器、端口、消息头等。

仅在配置内核时,选择了[*]Sendsecurityalertsthroughnetwork(NEW)才有该文件。

 lids.pw:

这个文件存储由'lidsadm-P'命令生成的密码文件。

配置内核时选择[*]AllowswitchingLIDSprotections,就必须有该文件。

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

  首先,确定要保护哪些文件。

一般情况下,保护系统二进制文件和系统配置文件,

比如:

/bin,/sbin/,/usr/,/etc/,/var/log/。

  其次,决定以什么方式来保护文件。

LIDS提供四种保护类型。

a.拒绝任何人访问

  带有DENY标志的文件和目录没有人能够看见,也不能修改。

那些非常敏感的文件应该加上DENY标志。

例如,/etc/shadow文件。

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

  用法:

  lidsconf-A-ofile_to_protected-jDENY

  #lidsconf-A-o/etc/shadow-jDENY

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

  #ls/etc/shadow

  ls:

/etc/shadow:

Nosuchfileordirectory

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

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

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

  用法:

  lidsconf-A-sSUBJECT_PROGRAM-oOBJECT_PROGRAM-jREADONLY/WRITE/APPEND

  #lidsconf-A-s/bin/login-o/etc/shadow-jREADONLY

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

  当你配置好而且重启系统或重新加载配置文件后,你可以登录进系统,但不能看到/etc/shadow。

这就是强制访问控制的一个例子。

b.只读文件

  任何用户不能改变带有只读标记的文件。

比如/etc/passwd,/bin/passwd文件一般属于此类。

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

  用法:

  lidsconf-A-ofile_to_protect-jREADONLY

  例子:

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

  #/sbin/lidsconf-A-o/sbin/-jREADONLY

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

  #/sbin/lidsconf-A-o/etc/passwd-jREADONLY

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

c.只能追加的文件

  一般来说,系统日志文件应定义成此类。

比如,/var/log/message,/var/log/secure。

这些文件只能以追加的模式打开,用户不能修改前面的部分。

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

  用法:

  lidsconf-A-ofilename_to_protect-jAPPEND

  例子:

  1.保护系统日志文件

  #/sbin/lidsconf-A-o/var/log/message-jAPPEND

  #/sbin/lidsconf-A-o/var/log/secure-jAPPEND

  2.保护apachehttpd日志文件

  #/sbin/lidsconf-A-o/var/log/httpd-jAPPEND

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

d.可写文件

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

  通过LIDS的这个功能,就可以定义哪个程序可以对哪个文件采取什么样的访问模式。

比如,定义/home/httpd/对任何人DENY,并且定义/usr/sbin/httpd能够从所在目录READONLY。

在这种情况下,Web服务器像一般的Web服务器一样,只是在/home/httpd/目录下的内容和程序不能被看到和修改。

即使入侵者利用httpd的漏洞获得了ROOT权限,他也看不到在rootshell里面的文件。

即使他重写缓冲区,在httpd服务器中加入一些病毒代码,他也只能读出/home/httpd下面的文件而实质上无法修改它们。

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

  #lidsconf-A-o/home/httpd-jDENY

  #lidsconf-A-s/usr/sbin/httpd-o/home/httpd-jREADONLY

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

 一个简单配置的例子:

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

  lidsconf-Z

  lidsconf-A-o/boot-jREADONLY

  lidsconf-A-o/lib-jREADONLY

  lidsconf-A-o/root-jREADONLY

  lidsconf-A-o/etc-jREADONLY

  lidsconf-A-o/sbin-jREADONLY

lidsconf-A-o/usr/sbin-jREADONLY

  lidsconf-A-o/bin-jREADONLY

  lidsconf-A-o/usr/bin-jREADONLY

  lidsconf-A-o/usr/lib-jREADONLY

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

2.配置LIDS保护进程

  a.不可杀死的进程

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

  -29:

CAP_INIT_KILL

  b.隐藏的进程

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

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

  例子:

  lidsconf-A-s/usr/sbin/httpd-oCAP_HIDDEN-jGRANT

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

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电视设备

允许在isdnCAPI的驱动下生成命令

允许读取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权限,但是你需要在启动XServer的时候具备这个权限。

所以,可以这样设置:

  #lidsconf-A-s/usr/X11R6/bin/XF86_SVGA-oCAP_SYS_RAWIO-jGRANT

  使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/中定义邮件服务器的IP,出口邮件的地址等。

  如下:

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1