




已阅读5页,还剩107页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第10章 Linux系统安全增强 第一部分 教学组织 o一、目的要求 o1.掌握Linux操作系统安全设置基本技巧。 o2.了解Linux日志系统、掌握常用审计工具的使用。 o3.理解入侵检测基本过程并且掌握常用的入侵检测方法和工具 。 o二、工具器材 o1.Red Hat Enterprise Linux7.0或以上操作系统。 o2.syslog_ng工具或其他日志工具。 o3.入侵检测工具Snort 第二部分 教学内容 o本章主要介绍Linux系统安全设置技巧、日 志和审计工具的使用和入侵检测工具及使用 ,从而更有效增强了Linux系统安全。 10.1 系统安全设置技巧 o10.1.1 启动和登录安全性设置 n1. BIOS安全,设定引导口令 n2. 系统帐号的增加、删除和移走 n3. 口令设置及加密文件的保护 n4禁止Ctrl+Alt+Delete三键重启系统 n5限制使用su命令 n6删减登录信息 1. BIOS安全,设定引导口令 o禁止从软盘启动,并且给BIOS加上密码。 每次启动的时候都手工检查一下BIOS,这 样可以提高系统的安全性。禁止从软盘启动 ,可以阻止别人用特殊的软盘启动你的计计 算机;给BIOS加上密码,可以防止有人改 变BIOS的参数,比如:允许从软盘启动或 不用输入口令就可以引导计算机。 2. 系统帐号的增加、删除和移走 o(1) 增加用户 n增加用户有三个过程: n在/etc/passwd文件中写入新用户的入口项; n为新登录用户建立一个HOME目录; n在/etc/group中为新用户增加一个入口项。 o在/etc/passwd文件中写入新的入口项时,口令部分可 先设置为NOLOGIN,以免有人做为此新用户登录。在 修改文件前,应mkdir /etc/ptmp,以免他人同时修 改此文件。新用户一般独立为一个新组,GID号与UID 号相同(除非他要加入目前已存在的一个新组),UID号 必须和其他人不同,HOME目录一般设置在/usr或 /home目录下建立一个以用户登录名为名称的目录做 为其主目录. (2) 删除用户 o删除用户与加用户的工作正好相反,首先在 /etc/passwd和/etc/group文件中删除用 户的入口项,然后删除用户的HOME目录和 所有文件.rm -r /usr/loginname 删除整 个目录树。如果用户在 /usr/spool/cron/crontabs中有crontab 文件,也应当删除。 (3)将用户移到另一个系统 o这是一个复杂的问题,不只是拷贝用户的文件和用户在 /etc/passwd文件中的入口项。首先一个问题是用户的UID和 GID可能已经用于另一个系统,若是出现这种情况,必须给要移 的用户分配另外的UID和GID,如果改变了用户的UID和GID,则 必须搜索该用户的全部文件,将文件的原UID和GID改成新的 UID和GID。 o用find命令可以完成这一修改: ofind . -user olduid -exec chown newuid ; ofind . -group oldgid -exec chgrp newgid ; o也许还要为用户移走其它一些文件: o/usr/mail/user和/usr/spool/cron/crontabs/user。 3. 口令设置及加密文件的保护 o口令的安全是Linux安全的一个基本安全设置。许多人 都把所有的东西保存在计算机上,防止别人查看这些信 息的方法就是用口令把计算机保护起来。没有什么东西 是绝对安全的。与常识相反的是:无法破解的口令是不 存在的。只要给足时间和资源,所有的口令都能用社会 工程(social engineering)或强行计算的方法猜出来。 通过社会工程或其它方法获得服务器的口令是最简单和 最流行的入侵服务器的方法。 o建议用下面的规则选择有效的口令: o(1)口令至少要有6个字符,最好包含一个以上 的数字或特殊字符; o(2)口令不能太简单,所谓的简单就是很容易猜 出来,也就是用自己的名字,电话号码、生日、职 业或者其它个人信息作为口令; o(3)口令必须是有有效期的,在一段时间之后就 要更换口令; o(4)口令在这种情况下必须作废或者重新设定: 如果发现有人试图猜测你的口令,而且已经试过很 多次了。 o安装完Linux系统之后默认的最小口令长度为5。 这就是说一个新的用户可以访问服务器,那么他的 口令必须多于5字符。但是这样是不够安全的,最 好口令的长度能够大于8。可以强制用户使用8个 字符以上的口令。编辑“/etc/login.defs”文件,把 最小口令长度由5改成8。找到PASS_MIN_LEN 5 这一行,改为:PASS_MIN_LEN 8 。 “login.defs”是很重要的配置文件。可以在这个文 件中设定一些其它的安全策略,比如:口令的有效 期。 o口令文件保护是系统安全设置的一个非常重要内容,系统管理 员应更改其属性,防止非授权用户获取口令文件。对于UNIX 系统,口令文件主要有用户和组账号口令文件,用于保持所有 用户的口令。对于LINUX系统,通过chattr命令可以改变口令 文件的属性。如: o# chattr +i /etc/passwd o# chattr +i /etc/shadow o# chattr +i /etc/group o# chattr +i /etc/gshadow o执行上述命令后,passwd、shadow、group和gshadow四 个文件将不能修改,不能被删除和重新命名,不能创建指向该 文件的链接,不能向该文件添加数据,仅仅超级用户能够设置 和清除这个属性。 4禁止Ctrl+Alt+Delete三键重启系统 o我们平时用习惯了windows机器,可能在linux下也 习惯的按下Ctrl+Alt+Delete三键,导致linux系统 重新启动.以下是屏蔽这三键的方法,防止误操作导 致重启: o(1)修改/etc/inittab文件,将 “ca:ctrlaltdel:/sbin/shutdown -t3 -r now”一 行注释掉。 o(2)执行“init q”这命令使上面修改后文件生效, 然后重新设置/etc/rc.d/init.d/目录下所有文件的 许可权限,运行如下命令: o# chmod -R 700 /etc/rc.d/init.d/* 5限制使用su命令 o禁止任何人使用su命令 su命令(Substitute User,替代用户 )可以使你成为系统的现有用户。如果不希望别人使用su进入 根帐户,或者对某些用户限制使用“su”命令,则在 “/etc/pam.d/”目录的“su”配置文件顶部增加如下两行代码: oauth sufficient /lib/security/pam_rootok.so debug oauth required /lib/security/Pam_wheel.so group=wheel o意思是,只有“wheel”组的成员可以用su命令;其中还包括了 日志。你可以在wheel组中添加允许使用该命令的用户,例如 ,希望用户admin能够使用su命令,可以运行如下命令: o # usermod G 10 admin o将用户加入到wheel组,即可使用su命令。 6删减登录信息 o 默认情况下,登录提示信息包括Linux发行 版、内核版本名和服务器主机名等。对于一 台安全性要求较高的机器来说这样泄漏了过 多的信息。可以编辑/etc/rc.d/rc.local将 输出系统信息的如下行注释掉。 o# This will overwrite /etc/issue at every boot. So, make any changes you o# want to make to /etc/issue here or you will lose them when you reboot o# echo “ /etc/issue o# echo “#R“ /etc/issue o# echo “Kernel #(uname -r) on #a #(uname -m)“ /etc/issue o# cp -f /etc/issue /etc/ o# echo /etc/issue o然后,进行如下操作: o # rm -f /etc/issue o # rm -f /etc/ o # touch /etc/issue o # touch /etc/ 10.1.2 网络访问安全性设置 o1限制网络访问 o(1)NFS访问 o如果你使用NFS网络文件系统服务,应该确保你的 /etc/exports具有最严格的访问权限设置,也就是意味着不要 使用任何通配符、不允许root写权限并且只能安装为只读文件 系统。编辑文件/etc/exports并加入如下两行。 o/dir/to/export (ro,root_squash) o/dir/to/export (ro,root_squash) o/dir/to/export 是你想输出的目录,是 登录这个目录的机器名,ro意味着mount成只读系统, root_squash禁止root写入该目录。为了使改动生效,运行如 下命令: o# /usr/sbin/exportfs -a (2)Inetd设置 o首先要确认/etc/inetd.conf的所有者是root,且文件权限设置为600 。设置完成后,可以使用“stat“命令进行检查。 o# chmod 600 /etc/inetd.conf o然后,编辑/etc/inetd.conf禁止以下服务: oftp telnet shell login exec talk ntalk imap pop-2 pop-3 finger auth o如果安装了ssh/scp,也可以禁止掉Telnet/FTP。为了使改变生效, 运行如下命令: o #killall -HUP inetd o默认情况下,多数Linux系统允许所有的请求,而用 TCP_WRAPPERS增强系统安全性是举手之劳,可以修改 /etc/hosts.deny和/etc/hosts.allow来增加访问限制。例如 ,将/etc/hosts.deny设为“ALL: ALL“可以默认拒绝所有访问 。然后在/etc/hosts.allow文件中添加允许的访问。例如, “sshd: 0/ “表示允许IP地址0和主机 名允许通过SSH连接。 o配置完成后,可以用tcpdchk检查: o # tcpdchk otcpchk是TCP_Wrapper配置检查工具,它检查tcp wrapper 配置并报告所有发现的潜在/存在的问题。 (3)登录终端设置 o/etc/securetty文件指定了允许root登录的tty设备,由 /bin/login程序读取,其格式是一个被允许的名字列表,你可 以编辑/etc/securetty且注释掉如下的行: o# tty2 o# tty3 o# tty4 o# tty5 o# tty6 o这时,root仅可在tty1终端登录。限制远程登录时使用root帐 号。 (4) 避免显示系统和版本信息 o如果希望远程登录用户看不到系统和版本信 息,可以通过以下操作改变 /etc/inetd.conf文件: otelnet stream tcp nowait root /usr/sbin/tcpd in.telnetd -h o加-h表示telnet不显示系统信息,而仅仅显 示“login:”。 2防止攻击 o(1) 阻止ping o如果没人能ping通你的系统,安全性自然增加了。为此,可以 在/etc/rc.d/rc.local文件中增加如下一行: oecho 1 /proc/sys/net/ipv4/ icmp_echo_ignore_all o(2) 防止IP欺骗 o编辑host.conf文件并增加如下几行来防止IP欺骗攻击: oorder bind,hosts omulti off onospoof on o(3) 防止DoS攻击 o对系统所有的用户设置资源限制可以防止DoS类型攻击。如最 大进程数和内存使用数量等。例如,可以在 /etc/security/limits.conf中添加如下几行: o* hard core 0 o* hard rss 5000 o* hard nproc 20 o然后必须编辑/etc/pam.d/login文件检查下面一行是否存在。 osession required /lib/security/pam_limits.so o上面的命令禁止调试文件,限制进程数为20,并且限制内存使 用为5MB。 10.1.3 安装系统安全补丁包 o1安装Red Hat Linux 系统补丁 o2安装Solaris系统补丁 10.2 日志和审计工具的使用 o记录重要的系统事件是系统安全的一个重要因 素。多数Linux系统能够运行三个不同的日志 子系统:使用wtmp/utmp 文件的连接时间日 志;使用acct或pacct文件的进程统计;经过 syslog 实施的错误日志。本节介绍这些日志子 系统以及允许系统或安全管理员监测、审计和 维护日志的命令和程序,另外重点讲述了 syslog-ng工具及其使用。 10.2.1 UNIX的日志系统 o在多数UNIX 系统中,有三个主要的日志子系统: o1连接时间日志 o由多个程序执行,把记录写入到/var/log/wtmp(或 /var/adm/wtmp)和/var/run/utmp(可以是 /etc/utmp 或/var/adm/utmp)。login等程序更新 wtmp和utmp文件,使系统管理员能跟踪用户在何时 登录进入系统。 o2进程统计 o由系统内核执行。当一个进程终止时,为每个进程往进 程统计文件(pacct或acct )中写一个记录。进程统计 的主要目的是为系统中的基本服务提供命令使用统计。 o3错误日志 o由syslogd 执行。各种系统守护程序、用户程序和 内核通过syslog 向文件/var/adm/messages 和 /var/log/syslog 报告值得注意的事件。另外有许 多UNIX 程序创建日志。像HTTP 或FTP 这样提供 网络服务的服务器也保持详细的日志。 o根据不同的UNIX版本,日志文件通常写到 /var/log、/var/adm、/usr/adm 或有时/etc 目 录中,如表10-1所示。 o表10-1 常用UNIX系统的日志存放目录 操作系 统 日志所存放的目录 Linux/var/log、 /etc/syslog.conf、 /var/run Solar is /var/log FreeB SD /var/run/utmp、 /var/log/wtmp、 /var/log/lastlog SunOS/etc/utmp、 /usr/adm/wtmp、 /usr/adm/lastlog 10.2.2 syslog_ng工具及使用 o1syslog-ng简介 o在UNIX系统的维护中,经常会忽略系统事件的处 理。经常检查系统日志对于保持系统的安全和正常 运行是至关重要的。但是,系统日志中有太多的噪 音,一些不是很重要的信息会掩盖重要的信息。目 前的工具很难识别出系统管理者感兴趣的信息。 o在UNIX系统中,系统管理员可以通过指定 facility/priority,把消息发到不同的地方。系统 预先定义了10个(mail、news、auth等) facility,8个不同的优先级(alert、debug等) 。 o这其中存在一个问题,大量的程序使用同样 的facildaemon ity(),把日志都保存到 一个文件中(messages),即使它们毫无 关联,这样也会造成用户很难筛选出自己感 兴趣的东西。第二个问题是,大多数的程序 无法改变日志配置,只能修改软件的源代码 。 因此,使用facility作为过滤不是一 个好办法。最好能够有一些runtime选项, 使用这些选项指定日志facility,建立新的 facility。 osyslog-ng的一个设计原则就是建立更好的 消息过滤粒度。syslog-ng能够进行基于内 容和优先权/facility的过滤。另一个设计原 则是更容易进行不同防火墙网段的信息转发 ,它支持主机链,即使日志消息经过了许多 计算机的转发,也可以找出原发主机地址和 整个转发链。最后的一个设计原则就是尽量 使配置文件强大和简洁。 2消息路径 o一个消息路径是由一个或者多个日志消息源 、一个或者多个过滤规则以及一个或者多个 日志消息目的组成的。来自某个日志消息源 的消息进入syslog-ng,如果消息命中某条 规则,syslog-ng就把它发送到对应的日志 消息目的。 o(1)消息源 o一些日志消息源驱动器(source driver)组成一个消息源, 这些驱动器使用给定的方法收集日志消息。譬如,有的syslog ()系统调用使用的AF_UNIX、SOCK_STREAM风格的套接 字源驱动器。 o在配置文件中,你可以使用下面的语法声明一个日志消息源: osource source-driver(params); source-driver(params); . ; oidentifier是给定消息源的唯一标志,但是这个标志符不能和系 统保留字有冲突。 o用户可以控制使用哪个驱动器来收集日志消息,因而你需要知 道你的系统和syslogd是如何通讯的。 o不同平台下syslogd的工作稍有不同,下面介绍一下某些平台 中,syslogd是如何工作的: o Linux: 使用/dev/log的SOCK_STREAM unix套接字 o BSD: 使用/var/run/log的SOCK_STREAM unix套接字 o Solaris(2.5或以下):使用/dev/log的SVR4风格的 STREAMS设备 o solaris(2.6或以上): 除了2.6之前版本使用的 STREAMS设备之外,使用了一种新的多线程IPC方法调用门 。默认情况下,这个调用门是/etc/syslog_door,由syslogd 使用。 o在syslog-ng中,每个可能的通讯机制都有对应的日志消息源 驱动器。例如:如果要打开一个SOCK_DGRAM风格的UNIX 套接字进行通信,你就会用到unix-dgram驱动器,同样 SOCK_STREAM式的通信需要unix-stream驱动器。 o例10.1:Linux中的一个源指令。 osource src unix-stream(“/dev/log“ ); internal(); udp(ip() port(514); ; o驱动器可以使用参数,参数有些是必需的, 有些是可选的。必需的参数一般在前面。上 面的指令中,/dev/log就是必需参数。可用 的源驱动器如表10-3所示。 表10-3 日志消息源驱动器列表 o下面,将详细介绍配置文件中使用的消息源驱动器和选项。 o internal() o所有syslog-ng内部产生的日志消息都来自这个日志消息源。 如果你需要syslog-ng自己定义的警告、错误和提醒信息,就 需要在配置文件中加入以下声明: o Declaration: internal() o如果这个消息源驱动器没有被引用,syslog-ng会向你输出报 警信息。 o例10.2:使用inernal()日志消息源驱动器。 o source s_local internal(); ; o unix-stream()和unix-dgram() o这两个日志消息源驱动器比较相似,都打开AF_UNIX类型的套 接字,在套接字上监听日志消息。unix-stream()主要用在 Linux,使用SOCK_STREAM参数,是面向连接的,不会造成 日志消息的丢失;unix-dgram()用在FreeBSD系统上,使 用SOCK_DGRAM参数,是无连接的,如果系统过载,会造成 日志消息丢失。 o在使用面向连接的协议时,为了避免造成拒绝服务攻击,需要 对同时接受的连接数量进行闲置,这由max-connections( )参数实现。其声明语法如下: oDeclaration: o unix-stream(filename options); o unix-dgram(filename options); o tcp()和udp() o使用这两个日志消息源驱动器,你可以使用TCP或者 UDP协议从网络上接受日志消息。 oUDP是一种简单的用户数据报协议,使用这种协议可 能会发生日志消息的丢失,而且这种协议没有重传机制 ;TCP是一种面向连接的传输层协议,不会造成日志消 息的丢失。 这两种消息源驱动器都不需要位置参数。 默认情况下,syslog-ng会绑定到:514,在所 有有效的端口上监听。可以使用localip()参数来限 制其接受连接的端口。 o注意:514端口是rshell使用的端口,因 此如果syslog-log和rshell同时使用,你 需要为syslog-ng选择另外的端口。 其 声明语法如下: oDeclaration: o tcp(options); o udp(options); o file() o通常,内核会把自己的消息送到一个特殊的文件(FreeBSD系统 是/dev/kmsg,Linux系统是/proc/kmsg),因此用户需要使用 file()日志消息源驱动器来指定这个文件。在Linux中,klogd会 读取内核信息,并转发到syslogd进程,klogd在转发之前会对内 核消息进行处理,使用/boot/System.map文件中的符号名代替 原来的地址。如果你不需要这种功能,可以使用-x参数运行klogd 。 其声明语法如下: o Declaration: o file(filename); o pipe() opipe日志消息源驱动器打开一个命名管道,在这个命 名管道监听日志消息。在HP-UX系统中,它用于内部 日志消息的获得。其声明语法如下: o Declaration: o pipe(filename); o注意:使用pipe() 需要使用mkfifo建立命名管道。 o例10.6:使用pipe()日志消息源驱动器示例。 o source s_pipe pipe(“/dev/log“); ; o sun-streams() o2.51版之前的solaris使用STREAMS API 把日志消息发送到syslogd进程,且必须在 编译syslog-ng时加入这个特征。 o新版solaris(2.51版本之后)中, STREAMS使用一个新的IPC调用门来投递 日志消息。syslog-ng支持这种IPC机制。 (2)过滤器 o在syslog-ng中,过滤器执行日志路由过滤功能。用户可以使用 syslog-ng的内部函数编写布尔表达式,来决定日志信息是否通过 。过滤器也都有唯一的标志符,语法如下: o fileter expression; o表达式中可以包含逻辑操作符(and、or、not)和函数。 o例10.7:一个搜索来自blurp主机,包含deny的日志消息的过滤 指令可表示为: o filter f_blurp_deny host(“blurp“) and match( “deny“); ; osyslog-ng的过滤函数如表10-6所示 表10-6 syslog-ng的过滤函数及功能说明 (3)日志消息目的地 o日志消息目的地驱动器把日志消息从syslog-ng输 出到另一个地方:一个文件或者一个网络套接字。 oDestination用于指定与过滤规则的日志消息的去 处。和日志消息源类似,日志消息目的地可以包括 一些目的驱动器,指定日志的派发方向。用户需要 使用如下语法来声明日志消息目的: odestination destination-driver (params); destination-driver(params) ; . ; syslog-ng支持的日志消息目的地驱动器如表10-7所示: 表10-7 日志消息目的地驱动器及功能 o下面详细介绍以上日志消息目的驱动器: o file() ofile()是syslog-ng最重要的日志消息目的驱动 器之一。使用它,你可以把日志消息定向到一些文 件中。在设置日志目的文件时,可以使用宏,从而 使用一个简单的file日志消息目的驱动器就可以设 置很多目的文件。和PHP/PERL大多数语言使用宏 变量一样,宏file()也是以#开头。如果文件所 在的目录不存在,则由create_dirs()来决定是 否创建这个目录。 o file()日志消息目的地驱动器的选项 o pipe() osyslog-ng通过pipe()日志消息目的地驱 动器把日志消息发送到/dev/xconsole之类 的命名管道。 o unix-stream()和unix0dgram() osyslog-ng通过这两个日志消息目的驱动器 把日志消息发送到一个SOCK_STREAM或 者SOCK_DGRAM模式的UNIX套接字。 o udp()和tcp() o使用TCP或者UDP协议把日志消息送到本地网络上 或者internet上的另外的主机。 o usertty() osyslog-ng使用这个日志消息目的驱动器把日志消 息送到一个登录用户使用的终端。 o program() oprogram()驱动器派生(fork)出一个进程, 使用给定的参数执行一个特定的程序,然后把日志 消息送到这个进程的标准输入设备。 (4)组成日志消息路径 o前面我们学习了如何定义消息源、过滤器和消息目 的。现在我们要把这些结合起来形成一条完整的指 令。凡是来源于指定的消息源,匹配所有指定的过 滤器,并送到指定的地址。其语法如下: log source(s1); source(s2); . filter(f1); filter(f2); . destination(d1); destination( d2); . ; 其中,日志路径中的成员是顺序执行的。 (5)设置选项 用户可以通过设置一些选项来改变syslog-ng 的行为。设置选项的语法一般是: options option1(params); option2(params); . ; (6)优化syslog-ng o syslog-ng的默认设置是针对单服务器或者 工作站的,而对于一个网络的中央日志主机 来说,却远远不够。因此,需要对其进行一 些调整和优化。 o 设置垃圾收集参数 osyslog-ng有自己的垃圾收集器,而且一旦 进入垃圾收集状态就不再接受日志消息,从 而造成非连接的传输协议(UDP)的信息丢 失。因此,需要对syslog-ng的垃圾收集状 态进行控制,用户可以通过以下两个选项来 控制其垃圾收集状态。 ogc_idle_threshold() o这个选项能够设置垃圾收集器在syslog-ng处于空 闲状态时的阀值。 o如果分配的的对象达到这个数字,而且系统处于空 闲状态(100msec内没有日志消息到达), syslog-ng就启动垃圾收集器。此时,系统处于空 闲状态,因此基本不会造成日志信息的丢失。这个 值应该比较小,不过要大于已分配对象的最小值。 已分配对象的最小值取决于用户的配置,也可以通 过-v命令行参数指定。 ogc_busy_threshold() o如果syslog-ng正忙于接受日志消息(日志 消息的间隔小于100msec),为了防止其 占有所有内存,也应该运行垃圾收集器。这 个值应该比较高,以便在正常情况下不打断 日志消息的接收。 o 设置输出队列的大小 o为了防止发送日志的daemon程序阻塞,syslog- ng一直在读取其向内的日志通道。如果输出队列 已满,就可能造成日志消息的丢失。因此,设置输 出队列的大小非常重要,你可以设置全局输出队列 的大小,也可以为每个日志消息驱动器设置输出队 列的大小。 其语法为: o options log_fifo_size(1000); ; o 或者: o destination d_dmessages file( “/var/log/messages“ log_fifo_size(1000) ; ; o输出队列的大小应该合理,这对于大量的日 志消息涌来特别重要。如果蜂拥而至的日志 信息占据了目标通道的所有带宽,syslog- ng能够把日志消息消息保存到输出队列中, 等高峰过去再发出。 o当然,syslog-ng不能测试你的网络带宽, 因此如果目的主机在一个噪音很大的网络上 ,而且日志流量超过网络带宽,syslog-ng 也无能为力。 o 设置同步(sync)参数 osyslog-ng一般先对日志消息进行缓存,当 达到一定的数量,就写入磁盘。注意, syslog-ng是对每条日志消息分别使用 write()系统调用,而不是把所有日志消 息一次写入磁盘。 10.2.3 其他日志工具 oLinux系统除了常用的日志工具syslog-n外 ,还有一些专门用于分析日志的工具,如 Logcheck、Logwatch和Swatch等。 nLogcheck nLogwatch nSwatch o1Logcheck oLogcheck用来分析庞大的日志文件,过滤出有潜 在安全风险或其他不正常情况的日志项目,然后以 电子邮件的形式通知指定的用户。logchek 可以自 动地检查日志文件,先把正常的日志信息剔除掉, 把一些有问题的日志保留下来,然后把这些信息 email 给系统管理员。Logcheck 被设计成自动运 行,定期检查日志文件以发现违反安全规则以及异 常的活动。logcheck 用 logtail 程序记住上次已 经读过的日志文件的位置,然后从这个位置开始处 理新的日志信息。 o2logwatch o如果要想迅速的得到 Linux环境中的日志报告信息 , Logwatch 是一个很好的工具。一般的 Linux 系统中可能都 默认安装了这个工具,几乎不需要额外的配置就可以简单的用 起来。 新版本的 LogWatch 默认有 70 多种 Log 的配置信息 , 如果要对自己的特殊 Log 做监控, 定制也是比较容易的。 这里简要介绍基本的做法: o(1)创建一个日志文件组。指定自己的 Log 文件,可以是一个 ,可以是多个; o(2)创建一个新的服务。指明这个服务的名字, 指明 Log 文 件来源(来自上一步的定义); o(3)创建一个过滤脚本。 o3Swatch oSWATCH是Todd Atkins开发的用于实时 监视日志的PERL程序。Swatch利用指定的 触发器监视日志记录,当日志记录符合触发 器条件时,swatch会按预先定义好的方式 通知系统管理员。Swatch 有两种运行方式 :一种可以在检查日志完毕退出,另一种可 以连续监视日志中的新信息。 10.3 入侵检测工具及使用 o10.3.1 入侵检测概述 oCIDF早期由美国国防部高级研究计划局赞助研究,现在由CIDF工 作组负责,是一个开放组织。 CIDF阐述了一个入侵检测系统(IDS )的通用模型。它将一个入侵检测系统分为以下组件:事件产生器( Event generators),用E盒表示;事件分析器(Event analyzers),用A盒表示;响应单元(Responseunits),用R 盒表示;事件数据库(Event databases),用D盒表示。 10.3.2入侵检测系统的分类 o从技术上进行分类,分为基于网络的入侵检测和基 于主机入侵检测。 n基于网络的入侵检测 n基于主机的入侵检测 o基于检测方法的分类,分为特征检测与异常检测 n特征检测 n异常检测 n统计检测 n专家系统 1基于网络的入侵检测和基于主机 入侵检测。 o(1)基于网络的入侵检测 o基于网络的入侵检测产品(NIDS)放置在比较重 要的网段内,不停地监视网段中的各种数据包。网 络入侵检测系统的优点: o 网络入侵检测系统能够检测那些来自网络的攻 击,它能够检测到超过授权的非法访问。 o 一个网络入侵检测系统不需要改变服务器等主 机的配置。由于它不会在业务系统的主机中安装额 外的软件,从而不会影响这些机器的CPU、I/O与 磁盘等资源的使用,不会影响业务系统的性能。 o 由于网络入侵检测系统不像路由器、防火墙等 关键设备方式工作,它不会成为系统中的关键路径 。网络入侵检测系统发生故障不会影响正常业务的 运行。布署一个网络入侵检测系统的风险比主机入 侵检测系统的风险少得多。 o 网络入侵检测系统近年内有向专门的设备发展 的趋势,安装这样的一个网络入侵检测系统非常方 便,只需将定制的设备接上电源,做很少一些配置 ,将其连到网络上即可。 o网络入侵检测系统的弱点: o 网络入侵检测系统只检查它直接连接网 段的通信,不能检测在不同网段的网络包。 o 网络入侵检测系统为了性能目标通常采 用特征检测的方法,它可以检测出普通的一 些攻击,而很难实现一些复杂的需要大量计 算与分析时间的攻击检测。 o 网络入侵检测系统可能会将大量的数据 传回分析系统中。 o 网络入侵检测系统处理加密的会话过程 较困难,目前通过加密通道的攻击尚不多, 但随着IPv6的普及,这个问题会越来越突出 。 o(2) 基于主机的入侵检测 o基于主机的入侵检测产品(HIDS)通常是 安装在被重点检测的主机之上,主要是对该 主机的网络实时连接以及系统审计日志进行 智能分析和判断。如果其中主体活动十分可 疑(特征或违反统计规律),入侵检测系统就 会采取相应措施。 o主机入侵检测系统的优点: o 主机入侵检测系统对分析“可能的攻击行 为”非常有用。 o 主机入侵检测系统通常情况下比网络入 侵检测系统误报率要低。 o 主机入侵检测系统可布署在那些不需要 广泛的入侵检测、传感器与控制台之间的通 信带宽不足的情况下。 o主机入侵检测系统的弱点: o 主机入侵检测系统安装在我们需要保护的设备 上。 o 主机入侵检测系统的另一个问题是它依赖于服 务器固有的日志与监视能力。 o全面布署主机入侵检测系统代价较大,企业中很难 将所有主机用主机入侵检测系统保护,只能选择部 分主机保护。那些未安装主机入侵检测系统的机器 将成为保护的盲点,入侵者可利用这些机器达到攻 击目标。 o 主机入侵检测系统除了监测自身的主机以外, 根本不监测网络上的情况。 2.特征检测与异常检测 o(1)特征检测 o特征检测又称Misuse detection,这一检测假设入侵者活动可 以用一种模式来表示,系统的目标是检测主体活动是否符合这 些模式。它可以将已有的入侵方法检查出来,但对新的入侵方 法无能为力。其难点在于如何设计模式既能够表达“入侵”现象 又不会将正常的活动包含进来。 o特征检测对已知的攻击或入侵的方式作出确定性的描述,形成 相应的事件模式。当被审计的事件与已知的入侵事件模式相匹 配时,即报警。原理上与专家系统相仿。其检测方法上与计算 机病毒的检测方式类似。目前基于对包特征描述的模式匹配应 用较为广泛。 o该方法预报检测的准确率较高,但对于无经验知识的入侵与攻 击行为无能为力。 o(2)异常检测 o异常检测的假设是入侵者活动异常于正常主 体的活动。根据这一理念建立主体正常活动 的“活动简档”,将当前主体的活动状况与“ 活动简档”相比较,当违反其统计规律时, 认为该活动可能是“入侵”行为。异常检测的 难题在于如何建立“活动简档”以及如何设计 统计算法,从而不把正常的操作作为“入侵” 或忽略真正的“入侵”行为。 o(3)统计检测 o统计模型常用异常检测,在统计模型中常用的测量 参数包括:审计事件的数量、间隔时间、资源消耗 情况等。常用的入侵检测5种统计模型为: o操作模型,该模型假设异常可通过测量结果与一些 固定指标相比较得到,固定指标可以根据经验值或 一段时间内的统计平均得到,举例来说,在短时间 内的多次失败的登录很有可能是口令尝试攻击; o方差,计算参数的方差,设定其置信区间, 当测量值超过置信区间的范围时表明有可能 是异常; o多元模型,操作模型的扩展,通过同时分析 多个参数实现检测; o马尔柯夫过程模型,将每种类型的事件定义 为系统状态,用状态转移矩阵来表示状态的 变化,当一个事件发生时,或状态矩阵该转 移的概率较小则可能是异常事件; o时间序列分析,将事件计数与资源耗用根据 时间排成序列,如果一个新事件在该时间发 生的概率较低,则该事件可能是入侵。 o统计方法的最大优点是它可以“学习”用户的 使用习惯,从而具有较高检出率与可用性。 但是它的“学习”能力也给入侵者以机会通过 逐步“训练”使入侵事件符合正常操作的统计 规律,从而透过入侵检测系统。 o(4)专家系统 o用专家系统对入侵进行检测,经常是针对有特征入侵行 为。所谓的规则,即是知识,不同的系统与设置具有不 同的规则,且规则之间往往无通用性。专家系统的建立 依赖于知识库的完备性,知识库的完备性又取决于审计 记录的完备性与实时性。入侵的特征抽取与表达,是入 侵检测专家系统的关键。在系统实现中,将有关入侵的 知识转化为if-then结构(也可以是复合结构),条件 部分为入侵特征,then部分是系统防范措施。运用专 家系统防范有特征入侵行为的有效性完全取决于专家系 统知识库的完备性。 10.3.3常用手工入侵检测方法与命 令 o在Linux下常用手工入侵检测方法与命令有: o1检查/etc/passwd文件中是否有可疑用户 o2检查/etc/inet.conf和crontab文件是否被修改 o3检查.rhosts、/etc/hosts.equiv、.forward 文件是否被修改 o4检查是否有危险的Root Suid程序 o5检查系统日志 o6. 检查是否有可疑进程 o7. 检查网络连接和开放端口 10.3.4入侵检测工具Snort及使用 技巧 o1. snort简介 oSnort有三种工作模式:嗅探器、数据包记录器、 网络入侵检测系统。嗅探器模式仅仅是从网络上读 取数据包并作为连续不断的流显示在终端上。数据 包记录器模式把数据包记录到硬盘上。网路入侵检 测模式是最复杂的,而且是可配置的。我们可以让 snort分析网络数据流以匹配用户定义的一些规则 ,并根据检测结果采取一定的动作。 10.3.4入侵检测工具Snort及使用 技巧 o(1)嗅探器 o所谓的嗅探器模式就是snort从网络上读出数据 包然后显示在你的控制台上。首先,我们从最基 本的用法入手。如果你只要把TCP/IP包头信息打 印在屏幕上,只需要输入下面的命令: o./snort v o使用这个命令将使snort只输出IP和 TCP/UDP/ICMP的包头信息。如果要看到应用层 的数据,可以使用: o./snort vd o这条命令使snort在输出包头信息的同时显 示包的数据信息。如果你还要显示数据链路 层的信息,就使用下面的命令: o./snort vde o注意这些选项开关还可以分开写或者任意结 合在一块。例如,下面的命令就和./snort vde这一条命令等价: o./snort -d -v e o(2)数据包记录器 如果要把所有的包记录到硬盘上,需要指定一 个日志目录,snort就会自动记录数据包: o./snort -dev -l ./log o当然,./log目录必须存在,否则snort就会报告错 误信息并退出。当snort在这种模式下运行,它会 记录所有看到的包将其放到一个目录中,这个目录 以数据包目的主机的IP地址命名,例如: o如果只指定了-l命令开关,而没有设置目录名, snort有时会使用远程主机的IP地址作为目录,有 时会使用本地主机IP地址作为目录名。为了只对本 地网络进行日志,需要给出本地网络: o./snort -dev -l ./log -h /24 o这个命令告诉我们,snort把进入C类网络 192.168.1的所有包的数据链路、TCP/IP以及应 用层的数据记录到目录./log中。 o(3)网络入侵检测系统 o snort最重要的用途还是作为网络入侵检测系统 (NIDS),使用下面命令行可以启动这种模式: o./snort -dev -l ./log -h /24 -c snort.conf o这里的snort.conf是规则集文件。snort会对每个包和 规则集进行匹配,发现这样的包就采取相应的行动。如 果不指定输出目录,snort就输出到/var/log/snort目 录。注意:如果长期使用snort作为自己的入侵检测系 统,最好不要使用-v选项,因为使用这个选项,使 snort向屏幕上输出一些信息,会大大降低snort的处 理速度,从而在向显示器输出的过程中丢弃一些包。 10.3.4入侵检测工具Snort及使用 技巧 o2. 编写snort 规则基础 osnort使用一种简单的,轻量级的规则描述语言, 这种语言灵活而强大。在开发snort规则时要记住 几个简单的原则。 o 大多数snort规则都写在一个单行上,或者在多行 之间的行尾用”分隔。Snort规则分成两个逻辑部 分:规则头和规则选项。规则头包含规则的动作, 协议,源和目标ip地址与网络掩码以及源和目标端 口信息;规则选项部分包含报警消息内容和要检查 的包的具体部分。 o下面是一个规则范例: o alert tcp any any - /24 111 (content:“|00 01 86 a5|“; msg: “mountd access“;) o第一个括号前的部分是规则头(rule header),包含的括号 内的部分是规则选项(rule options)。规则选项部分中冒号 前的单词称为选项关键字(option keywords)。注意,不是 所有规则都必须包含规则选项部分,选项部分只是为了使对要 收集或报警,或丢弃的包的定义更加严格。组成一个规则的所 有元素对于指定的要采取的行动都必须为真。当多个元素放在 一起时,可以认为它们组成了一个逻辑与(AND)语句。同时 ,snort规则库文件中的不同规则可以认为组成了一个大的逻 辑或(OR)语句。 o(1)规则头 o规
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 襄阳职业技术学院《英语:听力》2023-2024学年第二学期期末试卷
- 西安建筑科技大学《镜前表演及实践》2023-2024学年第二学期期末试卷
- 浙江省杭州下城区重点达标名校2024-2025学年初三1月份阶段模拟测试语文试题试卷含解析
- 江西航空职业技术学院《Python语言程序设计Ⅱ》2023-2024学年第二学期期末试卷
- 南充职业技术学院《中国地理(二)》2023-2024学年第二学期期末试卷
- 宁夏大学《孙冶方经济科学奖与中国经济发展》2023-2024学年第二学期期末试卷
- 昆山杜克大学《日语笔译》2023-2024学年第二学期期末试卷
- 重庆工贸职业技术学院《生物工程专业实验(一)》2023-2024学年第二学期期末试卷
- 吉林省松原市乾安县七中2025届普通高中毕业班3月质量检查英语试题含解析
- 浙江省绍兴实验学校2025年初三英语试题第三次质量检测试题试卷含答案
- 应急物资仓库管理制度(4篇)
- 2024-2030年中国高压变频器行业现状分析及前景趋势调研报告
- 2024年度中国船员心理健康报告
- 《地源热泵介绍》课件
- 5以内数的守恒-课件
- 2024年第四届全国工业设计职业技能大赛决赛包装设计师理论考试题库(含答案)
- 2023年高考真题-政治(福建卷) 含答案
- 幼儿园小班认识小动物课件
- 热敏灸课件完整版本
- 体育概论(第二版)课件第五章体育手段
- 计算机组装与维护
评论
0/150
提交评论