热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

我的测试环境为redhat7.2kernel-2.4.7-10首先下载软件包http:www.mirrors.wiretapped.netsecuritynetwork-intr
我的测试环境为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&#61;/dev/sda2
cd ../lids-1.1.2-2.4.20
tar zxf lidstools-0.4.3.tar.gz
cd lidstools
./configure KERNEL_DIR&#61;../../linux-2.4.20
make
make install
提示你输入密码
enter new password: 123456
reenter new password: 123456
配置好的系统重新启动后&#xff0c;不要忘记用lidsadm封装内核&#xff0c;在最后/etc/rc.local加入以下命令
/sbin/lidsadm -I
重新启动&#xff0c;如果要关闭lids系统启动&#xff0c;你可以在lilo里用security&#61;0来启动内核。
运行命令/sbin/lidsadm -S -- -LIDS切换到不受lids保护的状态&#xff0c;然后执行配置脚本&#xff0c;运行命令/sbin/lidsadm -S -- &#43;RELOAD_CONF&#xff0c;更新

lids配置&#xff0c;最后lidsadm -S -- &#43;LIDS切换到lids保护状态
重起计算机选带lids的就基本搞定了
还有什么不明白研究下面的东东吧。偶是参考别人写的。不过也改了改因为里面有很多错误
和版本过老问题等。具体出自哪里忘记了。
有什么问题大家一起研究吧。哈哈
偶不擅长写技术文章还请多多批评。时间匆忙。请见谅。
偶没用于实际目前只在研究阶段。不过觉得非常好用。希望大家一起来研究

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


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

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

缺省情况下&#xff0c;lidtools将把缺省配置文件安装到 /etc/lids/。你必须根据自己的需要重新配置。
lids.conf&#xff1a; 这个文件用来存储LIDS ACLs信息。它包括定义对象访问类型的ACLs。
lids.cap&#xff1a;这个文件包括系统的所有性能&#xff0c;可以编辑这个文件来配置这些性能。
lids.net&#xff1a;这个文件用来配置发给管理员信箱的警告信息。你可以定义SMTP服务器、端口、消息头等。仅在配置内核时&#xff0c;选择了[*] Send

security alerts through network (NEW)才有该文件。
lids.pw&#xff1a;这个文件存储由&#39;lidsadm -P&#39;命令生成的密码文件。配置内核时选择[*] Allow switching LIDS protections &#xff0c; 就必须有该文件。
1&#xff0e;配置LIDS保护的文件和目录
  首先&#xff0c;确定要保护哪些文件。一般情况下&#xff0c;保护系统二进制文件和系统配置文件&#xff0c;
比如&#xff1a;/bin,/sbin/,/usr/,/etc/,/var/log/。
  其次&#xff0c;决定以什么方式来保护文件。LIDS提供四种保护类型。
a.拒绝任何人访问
  带有DENY标志的文件和目录没有人能够看见&#xff0c;也不能修改。那些非常敏感的文件应该加上DENY标志。例如&#xff0c;/etc/shadow文件。
  ---------------------------------------------------------------------------
  用法&#xff1a;
  lidsconf -A -o file_to_protected -j DENY
  # lidsconf -A -o /etc/shadow -j DENY
  重启或重新加载配置文件后&#xff0c;你会看到&#xff1a;
  # ls /etc/shadow
  ls: /etc/shadow: No such file or directory
  ---------------------------------------------------------------------------
  接下来&#xff0c;还需要一些设置使一些特有的程序能够访问这些文件&#xff0c;比如&#xff0c;登录到系统的时候&#xff0c;/bin/login文件需要从有DENY标记的

/etc/shadow文件中读密码。
  ---------------------------------------------------------------------------
  用法&#xff1a;
  lidsconf -A -s SUBJECT_PROGRAM -o OBJECT_PROGRAM -j READONLY/WRITE/APPEND
  # lidsconf -A -s /bin/login -o /etc/shadow -j READONLY
  ---------------------------------------------------------------------------
  当你配置好而且重启系统或重新加载配置文件后&#xff0c;你可以登录进系统&#xff0c;但不能看到/etc/shadow。这就是强制访问控制的一个例子。

b.只读文件
  任何用户不能改变带有只读标记的文件。比如/etc/passwd,/bin/passwd文件一般属于此类。
  ---------------------------------------------------------------------------
  用法&#xff1a;
  lidsconf -A -o file_to_protect -j READONLY
  例子&#xff1a;
  1.保护整个/sbin/目录&#xff0c;使之只读。
  # /sbin/lidsconf -A -o /sbin/ -j READONLY
  2.保护/etc/passwd文件为只读
  # /sbin/lidsconf -A -o /etc/passwd -j READONLY
  ---------------------------------------------------------------------------

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

的部分。
  ---------------------------------------------------------------------------
  用法&#xff1a;
  lidsconf -A -o filename_to_protect -j APPEND
  例子&#xff1a;
  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的这个功能&#xff0c;就可以定义哪个程序可以对哪个文件采取什么样的访问模式。比如&#xff0c;定义/home/httpd/对任何人DENY&#xff0c;并且定义

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

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

入一些病毒代码&#xff0c;他也只能读出/home/httpd下面的文件而实质上无法修改它们。
  ---------------------------------------------------------------------------
  # lidsconf -A -o /home/httpd -j DENY
  # lidsconf -A -s /usr/sbin/httpd -o /home/httpd -j READONLY
  ---------------------------------------------------------------------------

  一个简单配置的例子&#xff1a;
  ---------------------------------------------------------------------------
  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配置&#xff1a;

必须配置lids系统&#xff0c;使其符合你的安全需要.你可以定义受保护的文件&#xff0c;受保护的进程等等。
首先&#xff0c;更新缺省lids.conf的inode/dev值。
# /sbin/lidsconf -U
然后&#xff0c;获得一个RipeMD-160加密口令&#xff1a;
  # /sbin/lidsconf -P

缺省情况下&#xff0c;lidsadm将把缺省配置文件安装到 /etc/lids/。你必须根据自己的需要重新配置。
当内核启动时&#xff0c;配置信息就把相关信息读入内核来初始化LIDS系统。

  lids.conf&#xff1a; 这个文件用来存储LIDS ACLs信息。它包括定义对象访问类型的ACLs。
  lids.cap&#xff1a;这个文件包括系统的所有性能&#xff0c;可以编辑这个文件来配置这些性能。
  lids.net&#xff1a;这个文件用来配置发给管理员信箱的警告信息。你可以定义SMTP服务器、端口、消息头等。仅在配置内核时&#xff0c;选择了[*] Send

security alerts through network (NEW)才有该文件。
  lids.pw&#xff1a;这个文件存储由&#39;lidsadm -P&#39;命令生成的密码文件。配置内核时选择[*] Allow switching LIDS protections &#xff0c; 就必须有该文

件。

1&#xff0e;配置LIDS保护的文件和目录
  首先&#xff0c;确定要保护哪些文件。一般情况下&#xff0c;保护系统二进制文件和系统配置文件&#xff0c;
比如&#xff1a;/bin,/sbin/,/usr/,/etc/,/var/log/。
  其次&#xff0c;决定以什么方式来保护文件。LIDS提供四种保护类型。
a.拒绝任何人访问
  带有DENY标志的文件和目录没有人能够看见&#xff0c;也不能修改。那些非常敏感的文件应该加上DENY标志。例如&#xff0c;/etc/shadow文件。
  ---------------------------------------------------------------------------
  用法&#xff1a;
  lidsconf -A -o file_to_protected -j DENY
  # lidsconf -A -o /etc/shadow -j DENY
  重启或重新加载配置文件后&#xff0c;你会看到&#xff1a;
  # ls /etc/shadow
  ls: /etc/shadow: No such file or directory
  ---------------------------------------------------------------------------
  接下来&#xff0c;还需要一些设置使一些特有的程序能够访问这些文件&#xff0c;比如&#xff0c;登录到系统的时候&#xff0c;/bin/login文件需要从有DENY标记的

/etc/shadow文件中读密码。
  ---------------------------------------------------------------------------
  用法&#xff1a;
  lidsconf -A -s SUBJECT_PROGRAM -o OBJECT_PROGRAM -j READONLY/WRITE/APPEND
  # lidsconf -A -s /bin/login -o /etc/shadow -j READONLY
  ---------------------------------------------------------------------------
  当你配置好而且重启系统或重新加载配置文件后&#xff0c;你可以登录进系统&#xff0c;但不能看到/etc/shadow。这就是强制访问控制的一个例子。

b.只读文件
  任何用户不能改变带有只读标记的文件。比如/etc/passwd,/bin/passwd文件一般属于此类。
  ---------------------------------------------------------------------------
  用法&#xff1a;
  lidsconf -A -o file_to_protect -j READONLY
  例子&#xff1a;
  1.保护整个/sbin/目录&#xff0c;使之只读。
  # /sbin/lidsconf -A -o /sbin/ -j READONLY
  2.保护/etc/passwd文件为只读
  # /sbin/lidsconf -A -o /etc/passwd -j READONLY
  ---------------------------------------------------------------------------

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

的部分。
  ---------------------------------------------------------------------------
  用法&#xff1a;
  lidsconf -A -o filename_to_protect -j APPEND
  例子&#xff1a;
  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的这个功能&#xff0c;就可以定义哪个程序可以对哪个文件采取什么样的访问模式。比如&#xff0c;定义/home/httpd/对任何人DENY&#xff0c;并且定义

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

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

入一些病毒代码&#xff0c;他也只能读出/home/httpd下面的文件而实质上无法修改它们。
  ---------------------------------------------------------------------------
  # lidsconf -A -o /home/httpd -j DENY
  # lidsconf -A -s /usr/sbin/httpd -o /home/httpd -j READONLY
  ---------------------------------------------------------------------------

  一个简单配置的例子&#xff1a;
  ---------------------------------------------------------------------------
  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&#61;1)的进程&#xff0c;按照下面的命令配置/etc/lids/lids.cap里面的性能&#xff1a;
  -29:CAP_INIT_KILL

  b.隐藏的进程
  这些进程看不到&#xff0c;用ps命令或者在/proc里面也看不到。
  ---------------------------------------------------------------------------
  例子&#xff1a;
  lidsconf -A -s /usr/sbin/httpd -o CAP_HIDDEN -j GRANT
  ---------------------------------------------------------------------------

3.通过设置权限来保护

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

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

&#xff0c;引发安全告警。
  系统的权限值存储在/etc/lids/lids.cap中。编辑它可以满足你的需求。
  例如&#xff1a;
  CAP_SYS_RAWIO项若打开&#xff0c;我们就可以允许访问/dev/port,/dev/mem,/dev/kmem,以及对原始块设备&#xff08;/dev/[sh]d??&#xff09;的访问。
  当我们取消这个权限时&#xff0c;就可以使运行在系统上的所有进程不能访问原始块设备&#xff0c;比如运行lilo。但是&#xff0c;一些进程的运行需要这些权限&#xff0c;

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

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

写等。出于安全考虑&#xff0c;我们应当取消这项权限&#xff0c;不允许变化网络设置&#xff0c;也就禁止了防火墙规则的改变。
  配置lids.cap文件的方法是在权限名字的前面设置"&#xff0b;"使它有效&#xff0c;或设置"&#xff0d;"取消它。

具体的功能说明&#xff1a;

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

CAP_DAC_OVERRIED功能&#xff1a;
如果_POSIX_ACL定义&#xff0c;就会越过所有的DAC访问&#xff0c;包括ACL执行访问&#xff0c;用CAP_LINUX_IMMUTABLE功能来排除DAC的访问

CAP_DAC_READ_SEARCH功能&#xff1a;
如果_POSIX_ACL定义&#xff0c;就会越过所有的DAC的读限制&#xff0c;并在所有的文件和目录里搜索&#xff0c;包括ACL限制。用CAP_LINUX_IMMUTABLE来限制DAC访问

CAP_FOWNER功能&#xff1a;
越过文件说有的允许限制&#xff0c;如文件的所有者ID必须和用户ID一样&#xff0c;除了CAP_FSETID可用。它不会越过MAC和DAC限制

CAP_FSETID功能&#xff1a;
越过当设置文件的S_ISUID和S_ISGID位的时候&#xff0c;用户的ID必须和所有者ID匹配的限制&#xff0c;设置S-ISGID位的时候&#xff0c;组ID必须和所有者ID匹配的限制

&#xff0c;用chown来设置S_ISUID和S_ISGID为的功能限制

CAP_FS_MASK功能&#xff1a;
用来回应suser&#xff08;&#xff09;或是fsuser&#xff08;&#xff09;。

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

CAP_SETGID功能&#xff1a;
允许setgid&#xff08;&#xff09; 功能&#xff0c; 允许setgroups&#xff08;&#xff09; 允许在socket里伪造gid

CAP_SETUID功能&#xff1a;
允许set*uid&#xff08;&#xff09;功能 允许伪造pid在socket

CAP_SETPCAP功能&#xff1a;
把所有的许可给所有的pid。或是把所有的许可删除

CAP_LINUX_IMMUTABLE功能&#xff1a;
允许更改S_IMMUTABLE和S_APPEND文件属性

CAP_NET_BIND_SERVICE功能&#xff1a;
允许绑定1024下的TCP/UDP套接字

CAP_NET_BROADCAST功能&#xff1a;
允许广播&#xff0c;监听多点传送

CAP_NET_ADMIN功能&#xff1a;
允许配置接口
允许管理IP防火墙IP伪装和帐户
允许配置socket调试选项
允许修改路由表
允许配置socket上的进程的组属性
允许绑定所有地址的透明代理
允许配置TOS&#xff08;服务类型&#xff09;
允许配置混杂模式
允许清除驱动状态
允许多点传送
允许读或写系统记录

CAP_NET_RAW功能&#xff1a;
允许用RAW套接字
允许用PACKET套接字


CAP_IPC_LOCK功能&#xff1a;
允许琐定共享内存段
允许mlock和mlockall


CAP_IPC_OWNER功能&#xff1a;
越过IPC所有权检查


CAP_SYS_MODULE功能&#xff1a;
插入或删除内核模块

CAP_SYS_RAWIO功能&#xff1a;
允许ioperm/iopl和/dev/prot的访问
允许/dev/mem和/dev/kmem访问
允许块设备访问&#xff08;/dev/[sh]d&#xff1f;&#xff1f;&#xff09;

CAP_SYS_CHROOT功能&#xff1a;
允许chroot&#xff08;&#xff09;

CAP_SYS_PTRACE功能&#xff1a;
允许ptrace&#xff08;&#xff09;任何进程

CAP_SYS_PACCT功能&#xff1a;
允许配置进程帐号

CAP_SYS_ADMIN功能&#xff1a;
允许配置安全钥匙
允许管理随机设备
允许设备管理
允许检查和配置磁盘限额
允许配置内核日志
允许配置域名
允许配置主机名
允许调用bdflush&#xff08;&#xff09;命令
允许mount&#xff08;&#xff09;和umount&#xff08;&#xff09;命令
允许配置smb连接
允许root的ioctls
允许nfsservctl
允许VM86_REQUEST_IRQ
允许在alpha上读写pci配置
允许在mips上的irix_prctl
允许刷新所有的m68k缓存
允许删除semaphores
用CAP_CHOWN去代替"chown"IPC消息队列&#xff0c;标志和共享内存
允许锁定或是解锁共享内存段
允许开关swap
允许在socket伪装pids
允许设置块设备的缓存刷新
允许设置软盘驱动器
允许开关DMA开关
允许管理md设备
允许管理ide驱动
允许访问nvram设备
允许管理apm_bios&#xff0c;串口或是bttv电视设备
允许在isdn CAPI的驱动下生成命令
允许读取pci的非标准配置
允许DDI调试ioctl
允许发送qic-117命令
允许启动或禁止SCSI的控制和发送SCSI命令 允许配置加密口令在回路文件系统上

CAP_SYS_BOOT功能&#xff1a;
允许用reboot&#xff08;&#xff09; 命令

CAP_SYS_NICE功能&#xff1a;
允许提高或设置其他进程的优先权
允许在自己的进程用FISO和实时的安排和配置

CAP_SYS_RESOURCE功能&#xff1a;
越过资源限制&#xff0c;设置资源限制
越过配额限制
越过保留的ext2文件系统
允许大于64hz的实时时钟中断
越过最大数目的控制终端
越过最大数目的键

CAP_SYS_TIME功能&#xff1a;
允许处理系统时钟
允许_stime
允许设置实时时钟

CAP_SYS_TTY_CONFIG功能&#xff1a;
允许配置终端设备
允许vhangup&#xff08;&#xff09;终端

  另外&#xff0c;还可以用权限标记专用进程。标记进程的权限使进程具备系统禁止的性能。
  例如&#xff0c;在文件lids.cap中取消CAP_SYS_RAWIO权限&#xff0c;但是你需要在启动X Server的时候具备这个权限。所以&#xff0c;可以这样设置&#xff1a;
  # lidsconf -A -s /usr/X11R6/bin/XF86_SVGA -o CAP_SYS_RAWIO -j GRANT
  使XF86_SVGA具备CAP_SYS_RAWIO&#xff0c;而其它的程序不能得到CAP_SYS_RAWIO。

所以要选择需要删除的功能&#xff1a;
必须删除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通过权限设置来提高网络安全性&#xff0c;比如反sniferring&#xff0c;禁止捆绑1024以下的端口&#xff0c;禁止改变防火墙和路由规则。

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

nmap,satan这样的流行扫描工具可以被检测到。
  即使原始套接口不能工作时它仍能起作用&#xff0c;因为它不用任何套接口。在这种情况下&#xff0c;一些基于sniffering的用户检测器不能工作了。若想

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

5&#xff0e;入侵响应系统
  当LIDS检测到违背定义的规则的活动时&#xff0c;可以做出下列响应&#xff1a;
  a.记录相关信息。
  当某人破坏这些规则时&#xff0c;lids_security_log记录相关信息&#xff0c;记录工作同样具有anti_logging_flood的能力。编译内核时你可以设置这个选

项。
  b.通过mail服务器记录信息。
  LIDS可以把日志送到你的信箱里面去。你可以在/etc/lids/lids.net中定义邮件服务器的IP&#xff0c;出口邮件的地址等。
  如下&#xff1a;
  ---------------------------------------------------------------------------
  MAIL_SWITCH&#61;1

  # MAIL_RELAY&#61;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&#61;192.168.100.171:25

  # MAIL_SOURCE&#61;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&#61;lids.xfocus.net
  ---------------------------------------------------------------------------



配置中要注意的几点&#xff1a;
*. 启动
在启动的时候更新文件&#xff1a;
  一些文件需要在系统启动的时候写&#xff0c;但是会被LIDS保护&#xff0c;这些文件一般保存在/var目录下&#xff0c;但是也有一些例外&#xff1a; modules.dep&#xff1a;除了增加

或是删除模块外&#xff0c;不需要在启动的时候更改&#xff0c;可以禁止它在启动的时候更新。
  mtab&#xff1a;用-n的选项在每次启动的时候生成一个从/etc/mtab到/proc/mounts的一个连接。如果对/etc/目录进行保护&#xff0c;那么在启动中可能因

为mtab不可写而导致启动失败&#xff0c;因此需要将启动脚本中的mount加-n选项&#xff0c;或者单独对/etc下的几个重要目录或文件进行保护。
*. 关机或重起
可能会因为lids.conf配置引起关机是无法umount文件系统&#xff0c;导致重起后检查硬盘文件系统。
所以在lids.conf必须对halt进行配置&#xff1a;
/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
*.针对隐藏的进程&#xff0c;因为进程隐藏所以关机的时候无法停止隐藏进程&#xff0c;导致不能正确的umount文件系统&#xff0c;重起的时候会对硬盘进行检查&#xff0c;使启

动时间加长&#xff0c;所以在隐藏进程后&#xff0c;要对隐藏的进程的停止脚本加以修改。
例如隐藏了httpd进程后&#xff0c;需要修改/etc/rc.d/init.d/httpd杀死隐藏进程
...
stop() {
echo -n "Shutting down http: "
kill -15 &#96;cat /var/run/httpd.pid&#96;
sleep 5
#killproc httpd
RETVAL&#61;$?
echo
[ $RETVAL &#61; 0 ] && rm -f /var/lock/subsys/httpd /var/run/httpd.pid
}
...

LIDS测试&#xff1a;

1.功能测试&#xff1a;

配置脚本&#xff1a;
---------------------------------------------------------------------------------
#!/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&#39;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&#39;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

推荐阅读
  • 本文详细介绍了在Linux虚拟化部署中进行VLAN配置的方法。首先要确认Linux系统内核是否已经支持VLAN功能,然后配置物理网卡、子网卡和虚拟VLAN网卡的关系。接着介绍了在Linux配置VLAN Trunk的步骤,包括将物理网卡添加到VLAN、检查添加的VLAN虚拟网卡信息以及重启网络服务等。最后,通过验证连通性来确认配置是否成功。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • MySQL5.6.40在CentOS764下安装过程 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
  • Redis API
    安装启动最简启动命令行输入验证动态参数启动配置文件启动常用配置通用命令keysbdsize计算key的总数exists判断是否存在delkeyvalue删除指定的keyvalue成 ... [详细]
  • 第四讲ApacheLAMP服务器基本配置Apache的编译安装从Apache的官方网站下载源码包:http:httpd.apache.orgdownload.cgi今 ... [详细]
  • 这个问题困扰了我两天,卸载Dr.COM客户端(我们学校上网要装这个客户端登陆服务器,以后只能在网页里输入用户名和密码了),问题解决了。问题的现象:在实验室机台式机上安装openfire和sp ... [详细]
  • Telnet的使用(Telnet远程连接Linux)
    一、环境描述:客户端:Win10操作系统 ... [详细]
author-avatar
peaxcwxzl_372248
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有