热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Linux安全与LIDS

文章标题:Linux安全与LIDS。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

  LIDS( Linux入侵侦察系统)是Linux内核补丁和系统管理员工lidsadm),它加强了Linus内
  核。 它在内核中实现了一种安全模式 -- 参考模式以及内核中的Mandatory Access Control(命令进入控制)模式。本文将阐述LIDS的功能和如何使用它来建立一个安全的Linux系统
  。
  
  1. 为什么选择LIDS
  
    随着互连网上Linux越来越受欢迎 ,越来越多现有GNU/LINUX系统上的应用软件中的安全漏洞被发现。很多程序利用了程序员的粗心,例如缓存溢出、格式化代码攻击。当系统安全受到程序的危及,黑客获得ROOT权限以后,整个系统将被入侵者控制。
  
    由于代码的开放性,我们可以获得很多所希望Linux应用程序的原代码,并且根据我们的需要来修改。所以bug能很容易地被找到,并很快修补。但是当漏洞被揭示后,而系统管理员疏于给漏洞打补丁,从而造成很容易地就被入侵,更糟的是黑客能获得ROOT SHELL。利用现
  有的GNU/Linux系统,他为所欲为。这正是LIDS想要解决的问题。
  
    首先看看现有的GNU/Linux系统存在哪些问题。
  
    文件系统未受到保护
  
    系统中的很多重要的文件,例如 /bin/login,一旦黑客入侵后,他可以上传修改过的l
  ogin文件来代替/bin/login ,然后他就可以不需要任何登陆名和密码就登陆系统。这常被称
  为Trojan house。
  
    进程未受到保护
  
    系统上运行的进程是为某些系统功能所服务的,例如HTTPD是一个web服务器来满足远程客户端对于web的需求。作为web服务器系统,保护其进程不被非法终止是很重要的。但是当入侵者获得了ROOT权限后,我们却无能为力。
  
    系统管理未受保护
  
    很多系统管理,例如,模块的装载/卸载,路由的设置,防火墙的规则,能很容易就被修改,如果用户的ID是0。所以当入侵者获得ROOT权限后,就变得很不安全。
  
    超级用户(root)作为ROOT可能滥用权限
  
    他可以为所欲为。作为ROOT他甚至可以对现有的权限进行修改。
  
    综上所述,我们发现在现有的Linux系统中的进入控制模式是不足以建立一个安全的Linux系统。我们必须在系统中添加新的模式来解决这些问题。这就是LIDS所要做的。
  
  2. LIDS的特色
  
    Linux入侵侦察系统是Linux内核补丁和系统管理员工具,它加强了内核的安全性。它在内核中实现了参考监听模式以及Mandatory Access Control(命令进入控制)模式。当它起作用后,选择文件进入,每一个系统/网络的管理操作,任何使用权限, raw device, mem和 I/O 进入将可以禁止甚至对于ROOT也一样。它使用和扩展了系统的功能,在整个系统上绑定控制设置,在内核中添加网络和文件系统的安全特性,从而加强了安全性。你可以在线调整安全保护,隐藏敏感进程,通过网络接受安全警告等等。
  
    简而言之,LIDS提供了保护、侦察、响应的功能,从而是LINUX系统内核中的安全模式得
  以实现。
  
    2.1 保护
  
    LIDS提供以下的保护 :
  
  保护硬盘上任何类型的重要文件和目录,任何人包括ROOT都无法改变。 能保护重要进程不被终止 能防止非法程序的RAW IO 操作。保护硬盘,包括MBR保护,等等。 能保护系统中的敏感文件,防止未被授权者(包括ROOT)和未被授权的程序进入。
    2.2 侦察
  
    当有人扫描你的主机, LIDS能侦察到并报告系统管理员。 LIDS也可以检测到系统上任
  何违法规则的进程。
  
    2.3 响应
  
    当有人违反规则, LIDS会将非法的运作细节记录到受LIDS保护的系统log文件中。 LID
  S还可以将log信息传到你的信箱中。LIDS也可以马上关闭与用户的对话。
  
  3. 建立安全的Linux系统
  
    看完了LIDS特性,让我们来看看怎么样一步步地用LIDS建立安全的系统。
  
    3.1 下载LIDS补丁和相关正式的Linux内核
  
    可以从LIDS Home,LIDS Ftp Home或最近的LIDS Mirror获得LIDS补丁和系统管理工具。
  
  
    补丁名称是lids-x.xx-y.y.y.tar.gz, x.xx代表lids的版本, y.y.y代表Linux内核版本.例如, lids-0.9.9-2.2.17.tar.gz代表lids 版本是0.9.9 以及相关的内核版本是2.2.17.
  。
  
    必须下载相关的内核版本。例如,你下载了lids-0.9.9-2.2.17.tar.gz,那你就应该下载Linux内核2.2.17的原代码。可以从Kernel FTP Site或其他镜象获得内核原码。
  
    然后,将内核原码和LIDS tar解压.例如,从 www.lids.org得到lids-0.9.9-2.2.17.ta
  r.gz,从ftp.us.kernel.org得到linux-2.2.17.tar.bz2后:
  
  -----------------------------------------------------------
  
  1. uncompress the Linux kernel source code tree.
  # cd linux_install_path/
  # bzip2 -cd linux-2.2.17.tar.bz2 | tar -xvf -
  
  2. uncompress the lids source code and install the lidsadm tool.
  # cd lids_install_path
  # tar -zxvf lids-0.9.8-2.2.17.tar.gz
  
  -----------------------------------------------------------
  
    3.2 在正式的linux内核上打LIDS补丁
  
    Linux内核原码打LIDS补丁
  
  -----------------------------------------------------------
  
  # cd linux_install_path/linux
  # patch -p1
  
  /* link the default source path to lids patched version
  # rm -rf /usr/src/linux
  # ln -s linux_install_patch/linux /usr/src/linux
  
    3.3 配置Linux内核
  
  -----------------------------------------------------------
  
  configure the Linux kernel
  # cd linux
  # make menuconfig or make xconfig
  
  -----------------------------------------------------------
  
    现在,配置Linux内核,按照以下步骤实施:
  
  [*] Prompt for development and/or incomplete code/drivers
  [*] Sysctl support
  
  After that, you will find that a new item appear in the bottom of the configura
  tion menu name "Linux Intrusion Detection System". Entering this menu, turn the
  
  
  [*] Linux Intrusion Detection System support (EXPERIMENTAL) (NEW).
  
    配置LIDS内核以后.退出配置界面,编译内核。
  
  # make dep
  # make clean
  # make bzImage
  # make modules
  # make modules_install
  
    3.4 在Linux系统上安装LIDS和系统管理工具
  
    复制 bzImage 到 /boot/ ,编辑 /etc/lilo.conf
  
  -----------------------------------------------------------
  
  # cp arch/i386/boot/bzImage /boot/bzImage-lids-0.9.9-2.2.17
  
  /* build admin tools */
  # cd lids-0.9.8-2.2.17/lidsadm-0.9.8/
  # make
  # make install
  
  # less /etc/lilo.conf
  boot=/dev/hda
  map=/boot/map
  install=/boot/boot.b
  prompt
  timeout=50
  default=linux
  
  image=/boot/vmlinuz-2.2.16-3
  label=linux
  read-only
  root=/dev/hda2
  
  image=/boot/bzImage-lids-0.9.9-2.2.17
  label=dev
  read-only
  root=/dev/hda2
  
  -----------------------------------------------------------
  
    运行/sbin/lilo 来安装新内核
  
  # /sbin/lilo
  
    3.5 配置LIDS系统
  
    在重新启动以前,必须配置lids系统,使其符合你的安全需要.你可以定义受保护的文件,受保护的进程等等。
  
    缺省情况下,lidsadm将把缺省配置文件安装到 /etc/lids/。你必须根据自己的需要重
  新配置。首先,可以更新缺省lids.conf的inode/dev值。
  
  # /sbin/lidsadm -U
  
    3.6 重新启动系统
  
    配置完Linux系统后,重新启动.当lilo出现时,选择装载the lids enable kernel。然
  后,你就将进入美妙的LIDS世界。
  
    3.7 封装内核
  
    系统启动后,不要忘记用lidsadm封装内核,在最后/etc/rc.local加入以下命令
  
  # /sbin/lidsadm -I
  
    3.8 在线管理
  
    封装完内核后,你的系统就处于LIDS的保护下。可以做一些测试来验证,如果想改变某些配置,例如修改权限,可以通过输入密码方式在线改变lids的安全等级。
  
  # /sbin/lidsadm -S -- -LIDS
  
    改变lids配置属性后,例如lids.conf,lids.cap,你可以通过以下命令在内核中重新装载配置文件
  
  # /sbin/lidsadm -S -- +RELOAD_CONF
  
  4. 配置LIDS系统
  
    4.1 LIDS配置目录 -- “/etc/lids/”
  
    安装 lidsadm以后,在/etc/lids/下会产生一个 lids配置目录,当内核启动时,配置信息将被读入内核中来初
推荐阅读
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文详细介绍了云服务器API接口的概念和作用,以及如何使用API接口管理云上资源和开发应用程序。通过创建实例API、调整实例配置API、关闭实例API和退还实例API等功能,可以实现云服务器的创建、配置修改和销毁等操作。对于想要学习云服务器API接口的人来说,本文提供了详细的入门指南和使用方法。如果想进一步了解相关知识或阅读更多相关文章,请关注编程笔记行业资讯频道。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了2019年上半年内蒙古计算机软考考试的报名通知和考试时间。考试报名时间为3月1日至3月23日,考试时间为2019年5月25日。考试分为高级、中级和初级三个级别,涵盖了多个专业资格。报名采取网上报名和网上缴费的方式进行,报考人员可登录内蒙古人事考试信息网进行报名。详细内容请点击查看。 ... [详细]
  • Linux环境变量函数getenv、putenv、setenv和unsetenv详解
    本文详细解释了Linux中的环境变量函数getenv、putenv、setenv和unsetenv的用法和功能。通过使用这些函数,可以获取、设置和删除环境变量的值。同时给出了相应的函数原型、参数说明和返回值。通过示例代码演示了如何使用getenv函数获取环境变量的值,并打印出来。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 从高级程序员到CTO的4次能力跃迁!如何选择适合的技术负责人?
    本文讲解了从高级程序员到CTO的4次能力跃迁,以及如何选择适合的技术负责人。在初创期、发展期、成熟期的每个阶段,创业公司需要不同级别的技术负责人来实现复杂功能、解决技术难题、提高交付效率和质量。高级程序员的职责是实现复杂功能、编写核心代码、处理线上bug、解决技术难题。而技术经理则需要提高交付效率和质量。 ... [详细]
author-avatar
mobiledu2502923977
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有