《操作系统安全》第十章Linux系统安全增强课件.ppt

上传人(卖家):三亚风情 文档编号:3365537 上传时间:2022-08-24 格式:PPT 页数:112 大小:283.51KB
下载 相关 举报
《操作系统安全》第十章Linux系统安全增强课件.ppt_第1页
第1页 / 共112页
《操作系统安全》第十章Linux系统安全增强课件.ppt_第2页
第2页 / 共112页
《操作系统安全》第十章Linux系统安全增强课件.ppt_第3页
第3页 / 共112页
《操作系统安全》第十章Linux系统安全增强课件.ppt_第4页
第4页 / 共112页
《操作系统安全》第十章Linux系统安全增强课件.ppt_第5页
第5页 / 共112页
点击查看更多>>
资源描述

1、第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 系统安全设置技巧

2、 o 10.1.1 启动和登录安全性设置 n 1.BIOS安全,设定引导口令 n 2.系统帐号的增加、删除和移走 n 3.口令设置及加密文件的保护n 4禁止Ctrl+Alt+Delete三键重启系统 n 5限制使用su命令n 6删减登录信息 1.BIOS安全,设定引导口令o 禁止从软盘启动,并且给BIOS加上密码。每次启动的时候都手工检查一下BIOS,这样可以提高系统的安全性。禁止从软盘启动,可以阻止别人用特殊的软盘启动你的计计算机;给BIOS加上密码,可以防止有人改变BIOS的参数,比如:允许从软盘启动或不用输入口令就可以引导计算机。2.系统帐号的增加、删除和移走o(1)增加用户n 增加用户

3、有三个过程:n 在/etc/passwd文件中写入新用户的入口项;n 为新登录用户建立一个HOME目录;n 在/etc/group中为新用户增加一个入口项。o 在/etc/passwd文件中写入新的入口项时,口令部分可先设置为NOLOGIN,以免有人做为此新用户登录。在修改文件前,应mkdir/etc/ptmp,以免他人同时修改此文件。新用户一般独立为一个新组,GID号与UID号相同(除非他要加入目前已存在的一个新组),UID号必须和其他人不同,HOME目录一般设置在/usr或/home目录下建立一个以用户登录名为名称的目录做为其主目录.(2)删除用户 o 删除用户与加用户的工作正好相反,首先

4、在/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用

5、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安全的一个基本安全设置。许多人都把所有的东西保存在计算机上,防止别人查看这些信息的方法就是用口令把计算机保护起来。没有什么东西是绝对安全的。与常识相反的是:无法破解的口令是不存在的。只要给足时间和资源,所有的口令都能用社会工程(soci

6、al engineering)或强行计算的方法猜出来。通过社会工程或其它方法获得服务器的口令是最简单和最流行的入侵服务器的方法。o 建议用下面的规则选择有效的口令:o(1)口令至少要有6个字符,最好包含一个以上的数字或特殊字符;o(2)口令不能太简单,所谓的简单就是很容易猜出来,也就是用自己的名字,电话号码、生日、职业或者其它个人信息作为口令;o(3)口令必须是有有效期的,在一段时间之后就要更换口令;o(4)口令在这种情况下必须作废或者重新设定:如果发现有人试图猜测你的口令,而且已经试过很多次了。o 安装完Linux系统之后默认的最小口令长度为5。这就是说一个新的用户可以访问服务器,那么他的口

7、令必须多于5字符。但是这样是不够安全的,最好口令的长度能够大于8。可以强制用户使用8个字符以上的口令。编辑“/etc/login.defs”文件,把最小口令长度由5改成8。找到PASS_MIN_LEN 5 这一行,改为:PASS_MIN_LEN 8。“login.defs”是很重要的配置文件。可以在这个文件中设定一些其它的安全策略,比如:口令的有效期。o口令文件保护是系统安全设置的一个非常重要内容,系统管理员应更改其属性,防止非授权用户获取口令文件。对于UNIX系统,口令文件主要有用户和组账号口令文件,用于保持所有用户的口令。对于LINUX系统,通过chattr命令可以改变口令文件的属性。如:

8、o#chattr +i /etc/passwdo#chattr +i /etc/shadowo#chattr +i /etc/groupo#chattr +i /etc/gshadowo执行上述命令后,passwd、shadow、group和gshadow四个文件将不能修改,不能被删除和重新命名,不能创建指向该文件的链接,不能向该文件添加数据,仅仅超级用户能够设置和清除这个属性。4禁止Ctrl+Alt+Delete三键重启系统o 我们平时用习惯了windows机器,可能在linux下也习惯的按下Ctrl+Alt+Delete三键,导致linux系统重新启动.以下是屏蔽这三键的方法,防止误操作导

9、致重启: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”配置文件顶部增加

10、如下两行代码: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 admino将用户加入到wheel组,即可使用su命令。6删减登录信息o 默认情况下,登录提示信息包括Linux发行版、内核版本名和服务器主机名等。对于一台安全性要求较高的

11、机器来说这样泄漏了过多的信息。可以编辑/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 rebooto#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/

12、o#echo /etc/issue o然后,进行如下操作:o#rm-f/etc/issue o#rm-f/etc/ o#touch/etc/issueo#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_

13、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

14、 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:192.168.1.10/255.255.255.0 表示允许IP地址192.168.

15、1.10和主机名允许通过SSH连接。o配置完成后,可以用tcpdchk检查:o#tcpdchk otcpchk是TCP_Wrapper配置检查工具,它检查tcp wrapper配置并报告所有发现的潜在/存在的问题。(3)登录终端设置o/etc/securetty文件指定了允许root登录的tty设备,由/bin/login程序读取,其格式是一个被允许的名字列表,你可以编辑/etc/securetty且注释掉如下的行:o#tty2o#tty3o#tty4o#tty5o#tty6o这时,root仅可在tty1终端登录。限制远程登录时使用root帐号。(4)避免显示系统和版本信息o 如果希望远程登录

16、用户看不到系统和版本信息,可以通过以下操作改变/etc/inetd.conf文件:o telnet 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_allo(2)防止IP欺骗 o编辑host.conf文件并增加如下几行来防止IP欺骗攻击:oo

17、rder bind,hosts omulti off onospoof ono(3)防止DoS攻击 o对系统所有的用户设置资源限制可以防止DoS类型攻击。如最大进程数和内存使用数量等。例如,可以在/etc/security/limits.conf中添加如下几行:o*hard core 0 o*hard rss 5000o*hard nproc 20 o然后必须编辑/etc/pam.d/login文件检查下面一行是否存在。osession required/lib/security/pam_limits.so o上面的命令禁止调试文件,限制进程数为20,并且限制内存使用为5MB。10.1.3 安

18、装系统安全补丁包安装系统安全补丁包o 1安装Red Hat Linux 系统补丁o 2安装Solaris系统补丁10.2 日志和审计工具的使用 o 记录重要的系统事件是系统安全的一个重要因素。多数Linux系统能够运行三个不同的日志子系统:使用wtmp/utmp 文件的连接时间日志;使用acct或pacct文件的进程统计;经过syslog 实施的错误日志。本节介绍这些日志子系统以及允许系统或安全管理员监测、审计和维护日志的命令和程序,另外重点讲述了syslog-ng工具及其使用。10.2.1 UNIX的日志系统的日志系统 o 在多数UNIX 系统中,有三个主要的日志子系统:o 1连接时间日志o

19、 由多个程序执行,把记录写入到/var/log/wtmp(或/var/adm/wtmp)和/var/run/utmp(可以是/etc/utmp 或/var/adm/utmp)。login等程序更新wtmp和utmp文件,使系统管理员能跟踪用户在何时登录进入系统。o 2进程统计o 由系统内核执行。当一个进程终止时,为每个进程往进程统计文件(pacct或acct)中写一个记录。进程统计的主要目的是为系统中的基本服务提供命令使用统计。o 3错误日志o 由syslogd 执行。各种系统守护程序、用户程序和内核通过syslog 向文件/var/adm/messages 和/var/log/syslog

20、报告值得注意的事件。另外有许多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/runSolaris/var/logFreeBSD/var/run/utmp、/var/log/wtmp、/var/log/lastlogSunOS/etc/utmp、/usr/adm/wtmp、/u

21、sr/adm/lastlog10.2.2 syslog_ng工具及使用工具及使用o 1syslog-ng简介o 在UNIX系统的维护中,经常会忽略系统事件的处理。经常检查系统日志对于保持系统的安全和正常运行是至关重要的。但是,系统日志中有太多的噪音,一些不是很重要的信息会掩盖重要的信息。目前的工具很难识别出系统管理者感兴趣的信息。o 在UNIX系统中,系统管理员可以通过指定facility/priority,把消息发到不同的地方。系统预先定义了10个(mail、news、auth等)facility,8个不同的优先级(alert、debug等)。o 这其中存在一个问题,大量的程序使用同样的fa

22、cildaemon ity(),把日志都保存到一个文件中(messages),即使它们毫无关联,这样也会造成用户很难筛选出自己感兴趣的东西。第二个问题是,大多数的程序无法改变日志配置,只能修改软件的源代码。因此,使用facility作为过滤不是一个好办法。最好能够有一些runtime选项,使用这些选项指定日志facility,建立新的facility。o syslog-ng的一个设计原则就是建立更好的消息过滤粒度。syslog-ng能够进行基于内容和优先权/facility的过滤。另一个设计原则是更容易进行不同防火墙网段的信息转发,它支持主机链,即使日志消息经过了许多计算机的转发,也可以找出原

23、发主机地址和整个转发链。最后的一个设计原则就是尽量使配置文件强大和简洁。2消息路径 o 一个消息路径是由一个或者多个日志消息源、一个或者多个过滤规则以及一个或者多个日志消息目的组成的。来自某个日志消息源的消息进入syslog-ng,如果消息命中某条规则,syslog-ng就把它发送到对应的日志消息目的。o(1)消息源o一些日志消息源驱动器(source driver)组成一个消息源,这些驱动器使用给定的方法收集日志消息。譬如,有的syslog()系统调用使用的AF_UNIX、SOCK_STREAM风格的套接字源驱动器。o在配置文件中,你可以使用下面的语法声明一个日志消息源:osource so

24、urce-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风格的STRE

25、AMS设备 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中的一个源指令。o source src unix-stream(/dev/log);internal();ud

26、p(ip(0.0.0.0)port(514);o 驱动器可以使用参数,参数有些是必需的,有些是可选的。必需的参数一般在前面。上面的指令中,/dev/log就是必需参数。可用的源驱动器如表10-3所示。表10-3 日志消息源驱动器列表o下面,将详细介绍配置文件中使用的消息源驱动器和选项。o internal()o所有syslog-ng内部产生的日志消息都来自这个日志消息源。如果你需要syslog-ng自己定义的警告、错误和提醒信息,就需要在配置文件中加入以下声明:oDeclaration:internal()o如果这个消息源驱动器没有被引用,syslog-ng会向你输出报警信息。o例10.2:使

27、用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-connectio

28、ns()参数实现。其声明语法如下:oDeclaration:o unix-stream(filename options);ounix-dgram(filename options);o tcp()和udp()o 使用这两个日志消息源驱动器,你可以使用TCP或者UDP协议从网络上接受日志消息。o UDP是一种简单的用户数据报协议,使用这种协议可能会发生日志消息的丢失,而且这种协议没有重传机制;TCP是一种面向连接的传输层协议,不会造成日志消息的丢失。这两种消息源驱动器都不需要位置参数。默认情况下,syslog-ng会绑定到0.0.0.0:514,在所有有效的端口上监听。可以使用localip(

29、)参数来限制其接受连接的端口。o 注意:514端口是rshell使用的端口,因此如果syslog-log和rshell同时使用,你需要为syslog-ng选择另外的端口。其声明语法如下:o Declaration:o tcp(options);o udp(options);o file()o通常,内核会把自己的消息送到一个特殊的文件(FreeBSD系统是/dev/kmsg,Linux系统是/proc/kmsg),因此用户需要使用file()日志消息源驱动器来指定这个文件。在Linux中,klogd会读取内核信息,并转发到syslogd进程,klogd在转发之前会对内核消息进行处理,使用/boo

30、t/System.map文件中的符号名代替原来的地址。如果你不需要这种功能,可以使用-x参数运行klogd。其声明语法如下:o Declaration:o file(filename);o pipe()o pipe日志消息源驱动器打开一个命名管道,在这个命名管道监听日志消息。在HP-UX系统中,它用于内部日志消息的获得。其声明语法如下:o Declaration:o pipe(filename);o 注意:使用pipe()需要使用mkfifo建立命名管道。o 例10.6:使用pipe()日志消息源驱动器示例。o source s_pipe pipe(/dev/log);o sun-stream

31、s()o 2.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:一个搜索来自bl

32、urp主机,包含deny的日志消息的过滤指令可表示为:ofilter f_blurp_deny host(blurp)and match(deny);o syslog-ng的过滤函数如表10-6所示表10-6 syslog-ng的过滤函数及功能说明(3)日志消息目的地o 日志消息目的地驱动器把日志消息从syslog-ng输出到另一个地方:一个文件或者一个网络套接字。o Destination用于指定与过滤规则的日志消息的去处。和日志消息源类似,日志消息目的地可以包括一些目的驱动器,指定日志的派发方向。用户需要使用如下语法来声明日志消息目的:o destination destination-d

33、river(params);destination-driver(params);.;syslog-ng支持的日志消息目的地驱动器如表10-7所示:表10-7 日志消息目的地驱动器及功能o 下面详细介绍以上日志消息目的驱动器:o file()o file()是syslog-ng最重要的日志消息目的驱动器之一。使用它,你可以把日志消息定向到一些文件中。在设置日志目的文件时,可以使用宏,从而使用一个简单的file日志消息目的驱动器就可以设置很多目的文件。和PHP/PERL大多数语言使用宏变量一样,宏file()也是以#开头。如果文件所在的目录不存在,则由create_dirs()来决定是否创建这个

34、目录。o file()日志消息目的地驱动器的选项o pipe()o syslog-ng通过pipe()日志消息目的地驱动器把日志消息发送到/dev/xconsole之类的命名管道。o unix-stream()和unix0dgram()o syslog-ng通过这两个日志消息目的驱动器把日志消息发送到一个SOCK_STREAM或者SOCK_DGRAM模式的UNIX套接字。o udp()和tcp()o 使用TCP或者UDP协议把日志消息送到本地网络上或者internet上的另外的主机。o usertty()o syslog-ng使用这个日志消息目的驱动器把日志消息送到一个登录用户使用的终端。o

35、program()o program()驱动器派生(fork)出一个进程,使用给定的参数执行一个特定的程序,然后把日志消息送到这个进程的标准输入设备。(4)组成日志消息路径o 前面我们学习了如何定义消息源、过滤器和消息目的。现在我们要把这些结合起来形成一条完整的指令。凡是来源于指定的消息源,匹配所有指定的过滤器,并送到指定的地址。其语法如下:log source(s1);source(s2);.filter(f1);filter(f2);.destination(d1);destination(d2);.;其中,日志路径中的成员是顺序执行的。(5)设置选项用户可以通过设置一些选项来改变sysl

36、og-ng的行为。设置选项的语法一般是:options option1(params);option2(params);.;(6)优化syslog-ngo syslog-ng的默认设置是针对单服务器或者工作站的,而对于一个网络的中央日志主机来说,却远远不够。因此,需要对其进行一些调整和优化。o 设置垃圾收集参数o syslog-ng有自己的垃圾收集器,而且一旦进入垃圾收集状态就不再接受日志消息,从而造成非连接的传输协议(UDP)的信息丢失。因此,需要对syslog-ng的垃圾收集状态进行控制,用户可以通过以下两个选项来控制其垃圾收集状态。o gc_idle_threshold()o 这个选项能

37、够设置垃圾收集器在syslog-ng处于空闲状态时的阀值。o 如果分配的的对象达到这个数字,而且系统处于空闲状态(100msec内没有日志消息到达),syslog-ng就启动垃圾收集器。此时,系统处于空闲状态,因此基本不会造成日志信息的丢失。这个值应该比较小,不过要大于已分配对象的最小值。已分配对象的最小值取决于用户的配置,也可以通过-v命令行参数指定。o gc_busy_threshold()o 如果syslog-ng正忙于接受日志消息(日志消息的间隔小于100msec),为了防止其占有所有内存,也应该运行垃圾收集器。这个值应该比较高,以便在正常情况下不打断日志消息的接收。o 设置输出队列的

38、大小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能够把

39、日志消息消息保存到输出队列中,等高峰过去再发出。o 当然,syslog-ng不能测试你的网络带宽,因此如果目的主机在一个噪音很大的网络上,而且日志流量超过网络带宽,syslog-ng也无能为力。o 设置同步(sync)参数o syslog-ng一般先对日志消息进行缓存,当达到一定的数量,就写入磁盘。注意,syslog-ng是对每条日志消息分别使用write()系统调用,而不是把所有日志消息一次写入磁盘。10.2.3 其他日志工具 o Linux系统除了常用的日志工具syslog-n外,还有一些专门用于分析日志的工具,如Logcheck、Logwatch和Swatch等。n Logcheckn

40、Logwatchn Swatch o 1Logchecko Logcheck用来分析庞大的日志文件,过滤出有潜在安全风险或其他不正常情况的日志项目,然后以电子邮件的形式通知指定的用户。logchek 可以自动地检查日志文件,先把正常的日志信息剔除掉,把一些有问题的日志保留下来,然后把这些信息 email 给系统管理员。Logcheck 被设计成自动运行,定期检查日志文件以发现违反安全规则以及异常的活动。logcheck 用 logtail 程序记住上次已经读过的日志文件的位置,然后从这个位置开始处理新的日志信息。o2logwatcho如果要想迅速的得到 Linux环境中的日志报告信息,Logw

41、atch 是一个很好的工具。一般的 Linux 系统中可能都默认安装了这个工具,几乎不需要额外的配置就可以简单的用起来。新版本的 LogWatch 默认有 70 多种 Log 的配置信息,如果要对自己的特殊 Log 做监控,定制也是比较容易的。这里简要介绍基本的做法:o(1)创建一个日志文件组。指定自己的 Log 文件,可以是一个,可以是多个;o(2)创建一个新的服务。指明这个服务的名字,指明 Log 文件来源(来自上一步的定义);o(3)创建一个过滤脚本。o 3Swatcho SWATCH是Todd Atkins开发的用于实时监视日志的PERL程序。Swatch利用指定的触发器监视日志记录,

42、当日志记录符合触发器条件时,swatch会按预先定义好的方式通知系统管理员。Swatch 有两种运行方式:一种可以在检查日志完毕退出,另一种可以连续监视日志中的新信息。10.3 入侵检测工具及使用o 10.3.1 入侵检测概述入侵检测概述oCIDF早期由美国国防部高级研究计划局赞助研究,现在由早期由美国国防部高级研究计划局赞助研究,现在由CIDF工工作组负责,是一个开放组织。作组负责,是一个开放组织。CIDF阐述了一个入侵检测系统(阐述了一个入侵检测系统(IDS)的通用模型。它将一个入侵检测系统分为以下组件:事件产生器的通用模型。它将一个入侵检测系统分为以下组件:事件产生器(Event gen

43、erators),用),用E盒表示;事件分析器(盒表示;事件分析器(Event analyzers),用),用A盒表示;响应单元(盒表示;响应单元(Responseunits),用),用R盒表示;事件数据库(盒表示;事件数据库(Event databases),用),用D盒表示。盒表示。10.3.2入侵检测系统的分类入侵检测系统的分类o 从技术上进行分类,分为基于网络的入侵检测和基于主机入侵检测。n基于网络的入侵检测n基于主机的入侵检测 o 基于检测方法的分类,分为特征检测与异常检测 n特征检测n异常检测n统计检测 n专家系统 1基于网络的入侵检测和基于主机基于网络的入侵检测和基于主机入侵检测

44、。入侵检测。o(1)基于网络的入侵检测o 基于网络的入侵检测产品(NIDS)放置在比较重要的网段内,不停地监视网段中的各种数据包。网络入侵检测系统的优点:o 网络入侵检测系统能够检测那些来自网络的攻击,它能够检测到超过授权的非法访问。o 一个网络入侵检测系统不需要改变服务器等主机的配置。由于它不会在业务系统的主机中安装额外的软件,从而不会影响这些机器的CPU、I/O与磁盘等资源的使用,不会影响业务系统的性能。o 由于网络入侵检测系统不像路由器、防火墙等关键设备方式工作,它不会成为系统中的关键路径。网络入侵检测系统发生故障不会影响正常业务的运行。布署一个网络入侵检测系统的风险比主机入侵检测系统的

45、风险少得多。o 网络入侵检测系统近年内有向专门的设备发展的趋势,安装这样的一个网络入侵检测系统非常方便,只需将定制的设备接上电源,做很少一些配置,将其连到网络上即可。o 网络入侵检测系统的弱点:o 网络入侵检测系统只检查它直接连接网段的通信,不能检测在不同网段的网络包。o 网络入侵检测系统为了性能目标通常采用特征检测的方法,它可以检测出普通的一些攻击,而很难实现一些复杂的需要大量计算与分析时间的攻击检测。o 网络入侵检测系统可能会将大量的数据传回分析系统中。o 网络入侵检测系统处理加密的会话过程较困难,目前通过加密通道的攻击尚不多,但随着IPv6的普及,这个问题会越来越突出。o(2)基于主机的

46、入侵检测o 基于主机的入侵检测产品(HIDS)通常是安装在被重点检测的主机之上,主要是对该主机的网络实时连接以及系统审计日志进行智能分析和判断。如果其中主体活动十分可疑(特征或违反统计规律),入侵检测系统就会采取相应措施。o 主机入侵检测系统的优点:o 主机入侵检测系统对分析“可能的攻击行为”非常有用。o 主机入侵检测系统通常情况下比网络入侵检测系统误报率要低。o 主机入侵检测系统可布署在那些不需要广泛的入侵检测、传感器与控制台之间的通信带宽不足的情况下。o 主机入侵检测系统的弱点:o 主机入侵检测系统安装在我们需要保护的设备上。o 主机入侵检测系统的另一个问题是它依赖于服务器固有的日志与监视

47、能力。o 全面布署主机入侵检测系统代价较大,企业中很难将所有主机用主机入侵检测系统保护,只能选择部分主机保护。那些未安装主机入侵检测系统的机器将成为保护的盲点,入侵者可利用这些机器达到攻击目标。o 主机入侵检测系统除了监测自身的主机以外,根本不监测网络上的情况。2.特征检测与异常检测o(1)特征检测o特征检测又称Misuse detection,这一检测假设入侵者活动可以用一种模式来表示,系统的目标是检测主体活动是否符合这些模式。它可以将已有的入侵方法检查出来,但对新的入侵方法无能为力。其难点在于如何设计模式既能够表达“入侵”现象又不会将正常的活动包含进来。o特征检测对已知的攻击或入侵的方式作

48、出确定性的描述,形成相应的事件模式。当被审计的事件与已知的入侵事件模式相匹配时,即报警。原理上与专家系统相仿。其检测方法上与计算机病毒的检测方式类似。目前基于对包特征描述的模式匹配应用较为广泛。o该方法预报检测的准确率较高,但对于无经验知识的入侵与攻击行为无能为力。o(2)异常检测o 异常检测的假设是入侵者活动异常于正常主体的活动。根据这一理念建立主体正常活动的“活动简档”,将当前主体的活动状况与“活动简档”相比较,当违反其统计规律时,认为该活动可能是“入侵”行为。异常检测的难题在于如何建立“活动简档”以及如何设计统计算法,从而不把正常的操作作为“入侵”或忽略真正的“入侵”行为。o(3)统计检

49、测o 统计模型常用异常检测,在统计模型中常用的测量参数包括:审计事件的数量、间隔时间、资源消耗情况等。常用的入侵检测5种统计模型为:o 操作模型,该模型假设异常可通过测量结果与一些固定指标相比较得到,固定指标可以根据经验值或一段时间内的统计平均得到,举例来说,在短时间内的多次失败的登录很有可能是口令尝试攻击;o 方差,计算参数的方差,设定其置信区间,当测量值超过置信区间的范围时表明有可能是异常;o 多元模型,操作模型的扩展,通过同时分析多个参数实现检测;o 马尔柯夫过程模型,将每种类型的事件定义为系统状态,用状态转移矩阵来表示状态的变化,当一个事件发生时,或状态矩阵该转移的概率较小则可能是异常

50、事件;o 时间序列分析,将事件计数与资源耗用根据时间排成序列,如果一个新事件在该时间发生的概率较低,则该事件可能是入侵。o 统计方法的最大优点是它可以“学习”用户的使用习惯,从而具有较高检出率与可用性。但是它的“学习”能力也给入侵者以机会通过逐步“训练”使入侵事件符合正常操作的统计规律,从而透过入侵检测系统。o(4)专家系统o 用专家系统对入侵进行检测,经常是针对有特征入侵行为。所谓的规则,即是知识,不同的系统与设置具有不同的规则,且规则之间往往无通用性。专家系统的建立依赖于知识库的完备性,知识库的完备性又取决于审计记录的完备性与实时性。入侵的特征抽取与表达,是入侵检测专家系统的关键。在系统实

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

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(《操作系统安全》第十章Linux系统安全增强课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|