《操作系统安全》第十章Linux系统安全增强课件_第1页
《操作系统安全》第十章Linux系统安全增强课件_第2页
《操作系统安全》第十章Linux系统安全增强课件_第3页
《操作系统安全》第十章Linux系统安全增强课件_第4页
《操作系统安全》第十章Linux系统安全增强课件_第5页
已阅读5页,还剩219页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第10章Linux系统安全增强

第10章Linux系统安全增强1第一部分教学组织一、目的要求1.掌握Linux操作系统安全设置基本技巧。2.了解Linux日志系统、掌握常用审计工具的使用。3.理解入侵检测基本过程并且掌握常用的入侵检测方法和工具。二、工具器材1.RedHatEnterpriseLinux7.0或以上操作系统。2.syslog_ng工具或其他日志工具。3.入侵检测工具Snort第一部分教学组织一、目的要求2第二部分教学内容本章主要介绍Linux系统安全设置技巧、日志和审计工具的使用和入侵检测工具及使用,从而更有效增强了Linux系统安全。第二部分教学内容本章主要介绍Linux系统安全设置技巧、310.1系统安全设置技巧10.1.1启动和登录安全性设置1.BIOS安全,设定引导口令2.系统帐号的增加、删除和移走3.口令设置及加密文件的保护4.禁止Ctrl+Alt+Delete三键重启系统5.限制使用su命令6.删减登录信息10.1系统安全设置技巧10.1.1启动和登录安全性设41.BIOS安全,设定引导口令禁止从软盘启动,并且给BIOS加上密码。每次启动的时候都手工检查一下BIOS,这样可以提高系统的安全性。禁止从软盘启动,可以阻止别人用特殊的软盘启动你的计计算机;给BIOS加上密码,可以防止有人改变BIOS的参数,比如:允许从软盘启动或不用输入口令就可以引导计算机。1.BIOS安全,设定引导口令禁止从软盘启动,并且给BIO52.系统帐号的增加、删除和移走(1)增加用户增加用户有三个过程:在/etc/passwd文件中写入新用户的入口项;为新登录用户建立一个HOME目录;在/etc/group中为新用户增加一个入口项。2.系统帐号的增加、删除和移走(1)增加用户6在/etc/passwd文件中写入新的入口项时,口令部分可先设置为NOLOGIN,以免有人做为此新用户登录。在修改文件前,应mkdir/etc/ptmp,以免他人同时修改此文件。新用户一般独立为一个新组,GID号与UID号相同(除非他要加入目前已存在的一个新组),UID号必须和其他人不同,HOME目录一般设置在/usr或/home目录下建立一个以用户登录名为名称的目录做为其主目录.

在/etc/passwd文件中写入新的入口项时,口令部分可先7(2)删除用户删除用户与加用户的工作正好相反,首先在/etc/passwd和/etc/group文件中删除用户的入口项,然后删除用户的HOME目录和所有文件.rm-r/usr/loginname删除整个目录树。如果用户在/usr/spool/cron/crontabs中有crontab文件,也应当删除。(2)删除用户删除用户与加用户的工作正好相反,首先在/e8(3)将用户移到另一个系统这是一个复杂的问题,不只是拷贝用户的文件和用户在/etc/passwd文件中的入口项。首先一个问题是用户的UID和GID可能已经用于另一个系统,若是出现这种情况,必须给要移的用户分配另外的UID和GID,如果改变了用户的UID和GID,则必须搜索该用户的全部文件,将文件的原UID和GID改成新的UID和GID。用find命令可以完成这一修改:find.-userolduid-execchownnewuid{};find.-groupoldgid-execchgrpnewgid{};也许还要为用户移走其它一些文件:/usr/mail/user和/usr/spool/cron/crontabs/user。(3)将用户移到另一个系统93.口令设置及加密文件的保护口令的安全是Linux安全的一个基本安全设置。许多人都把所有的东西保存在计算机上,防止别人查看这些信息的方法就是用口令把计算机保护起来。没有什么东西是绝对安全的。与常识相反的是:无法破解的口令是不存在的。只要给足时间和资源,所有的口令都能用社会工程(socialengineering)或强行计算的方法猜出来。通过社会工程或其它方法获得服务器的口令是最简单和最流行的入侵服务器的方法。3.口令设置及加密文件的保护口令的安全是Linux安全的一10建议用下面的规则选择有效的口令:(1)口令至少要有6个字符,最好包含一个以上的数字或特殊字符;(2)口令不能太简单,所谓的简单就是很容易猜出来,也就是用自己的名字,电话号码、生日、职业或者其它个人信息作为口令;(3)口令必须是有有效期的,在一段时间之后就要更换口令;(4)口令在这种情况下必须作废或者重新设定:如果发现有人试图猜测你的口令,而且已经试过很多次了。建议用下面的规则选择有效的口令:11安装完Linux系统之后默认的最小口令长度为5。这就是说一个新的用户可以访问服务器,那么他的口令必须多于5字符。但是这样是不够安全的,最好口令的长度能够大于8。可以强制用户使用8个字符以上的口令。编辑“/etc/login.defs”文件,把最小口令长度由5改成8。找到PASS_MIN_LEN5这一行,改为:PASS_MIN_LEN8。“login.defs”是很重要的配置文件。可以在这个文件中设定一些其它的安全策略,比如:口令的有效期。安装完Linux系统之后默认的最小口令长度为5。这就是说一个12口令文件保护是系统安全设置的一个非常重要内容,系统管理员应更改其属性,防止非授权用户获取口令文件。对于UNIX系统,口令文件主要有用户和组账号口令文件,用于保持所有用户的口令。对于LINUX系统,通过chattr命令可以改变口令文件的属性。如:#chattr+i/etc/passwd#chattr+i/etc/shadow#chattr+i/etc/group#chattr+i/etc/gshadow执行上述命令后,passwd、shadow、group和gshadow四个文件将不能修改,不能被删除和重新命名,不能创建指向该文件的链接,不能向该文件添加数据,仅仅超级用户能够设置和清除这个属性。口令文件保护是系统安全设置的一个非常重要内容,系统管理员应更134.禁止Ctrl+Alt+Delete三键重启系统我们平时用习惯了windows机器,可能在linux下也习惯的按下Ctrl+Alt+Delete三键,导致linux系统重新启动.以下是屏蔽这三键的方法,防止误操作导致重启:(1)修改/etc/inittab文件,将“ca::ctrlaltdel:/sbin/shutdown-t3-rnow”一行注释掉。(2)执行“initq”这命令使上面修改后文件生效,然后重新设置/etc/rc.d/init.d/目录下所有文件的许可权限,运行如下命令:#chmod-R700/etc/rc.d/init.d/*4.禁止Ctrl+Alt+Delete三键重启系统我们平时用145.限制使用su命令禁止任何人使用su命令su命令(SubstituteUser,替代用户)可以使你成为系统的现有用户。如果不希望别人使用su进入根帐户,或者对某些用户限制使用“su”命令,则在“/etc/pam.d/”目录的“su”配置文件顶部增加如下两行代码:authsufficient/lib/security/pam_rootok.sodebugauthrequired/lib/security/Pam_wheel.sogroup=wheel意思是,只有“wheel”组的成员可以用su命令;其中还包括了日志。你可以在wheel组中添加允许使用该命令的用户,例如,希望用户admin能够使用su命令,可以运行如下命令:#usermod–G10admin将用户加入到wheel组,即可使用su命令。5.限制使用su命令禁止任何人使用su命令su命令(Sub156.删减登录信息默认情况下,登录提示信息包括Linux发行版、内核版本名和服务器主机名等。对于一台安全性要求较高的机器来说这样泄漏了过多的信息。可以编辑/etc/rc.d/rc.local将输出系统信息的如下行注释掉。6.删减登录信息默认情况下,登录提示信息包括Linux发行16#Thiswilloverwrite/etc/issueateveryboot.So,makeanychangesyou#wanttomaketo/etc/issuehereoryouwilllosethemwhenyoureboot#echo"">/etc/issue#echo"#R">>/etc/issue#echo"Kernel#(uname-r)on#a#(uname-m)">>/etc/issue#cp-f/etc/issue/etc/#echo>>/etc/issue然后,进行如下操作:#rm-f/etc/issue#rm-f/etc/#touch/etc/issue#touch/etc/#Thiswilloverwrite/etc/iss1710.1.2网络访问安全性设置1.限制网络访问(1)NFS访问如果你使用NFS网络文件系统服务,应该确保你的/etc/exports具有最严格的访问权限设置,也就是意味着不要使用任何通配符、不允许root写权限并且只能安装为只读文件系统。编辑文件/etc/exports并加入如下两行。/dir/to/export(ro,root_squash)/dir/to/export(ro,root_squash)/dir/to/export是你想输出的目录,是登录这个目录的机器名,ro意味着mount成只读系统,root_squash禁止root写入该目录。为了使改动生效,运行如下命令:#/usr/sbin/exportfs-a10.1.2网络访问安全性设置1.限制网络访问18(2)Inetd设置

首先要确认/etc/inetd.conf的所有者是root,且文件权限设置为600。设置完成后,可以使用"stat"命令进行检查。#chmod600/etc/inetd.conf然后,编辑/etc/inetd.conf禁止以下服务:ftptelnetshellloginexectalkntalkimappop-2pop-3fingerauth如果安装了ssh/scp,也可以禁止掉Telnet/FTP。为了使改变生效,运行如下命令:#killall-HUPinetd

(2)Inetd设置首先要确认/etc/inetd.con19默认情况下,多数Linux系统允许所有的请求,而用TCP_WRAPPERS增强系统安全性是举手之劳,可以修改/etc/hosts.deny和/etc/hosts.allow来增加访问限制。例如,将/etc/hosts.deny设为"ALL:ALL"可以默认拒绝所有访问。然后在/etc/hosts.allow文件中添加允许的访问。例如,"sshd:0/"表示允许IP地址0和主机名允许通过SSH连接。配置完成后,可以用tcpdchk检查:#tcpdchktcpchk是TCP_Wrapper配置检查工具,它检查tcpwrapper配置并报告所有发现的潜在/存在的问题。默认情况下,多数Linux系统允许所有的请求,而用TCP_W20(3)登录终端设置/etc/securetty文件指定了允许root登录的tty设备,由/bin/login程序读取,其格式是一个被允许的名字列表,你可以编辑/etc/securetty且注释掉如下的行:#tty2#tty3#tty4#tty5#tty6这时,root仅可在tty1终端登录。限制远程登录时使用root帐号。(3)登录终端设置/etc/securetty文件指定了允许21(4)避免显示系统和版本信息如果希望远程登录用户看不到系统和版本信息,可以通过以下操作改变/etc/inetd.conf文件:telnetstreamtcpnowaitroot/usr/sbin/tcpdin.telnetd-h加-h表示telnet不显示系统信息,而仅仅显示“login:”。(4)避免显示系统和版本信息如果希望远程登录用户看不到系统222.防止攻击(1)阻止ping如果没人能ping通你的系统,安全性自然增加了。为此,可以在/etc/rc.d/rc.local文件中增加如下一行:echo1>/proc/sys/net/ipv4/icmp_echo_ignore_all(2)防止IP欺骗编辑host.conf文件并增加如下几行来防止IP欺骗攻击:orderbind,hostsmultioffnospoofon2.防止攻击(1)阻止ping23(3)防止DoS攻击对系统所有的用户设置资源限制可以防止DoS类型攻击。如最大进程数和内存使用数量等。例如,可以在/etc/security/limits.conf中添加如下几行:*hardcore0*hardrss5000*hardnproc20然后必须编辑/etc/pam.d/login文件检查下面一行是否存在。sessionrequired/lib/security/pam_limits.so上面的命令禁止调试文件,限制进程数为20,并且限制内存使用为5MB。(3)防止DoS攻击2410.1.3安装系统安全补丁包1.安装RedHatLinux系统补丁2.安装Solaris系统补丁10.1.3安装系统安全补丁包2510.2日志和审计工具的使用记录重要的系统事件是系统安全的一个重要因素。多数Linux系统能够运行三个不同的日志子系统:使用wtmp/utmp

文件的连接时间日志;使用acct或pacct文件的进程统计;经过syslog

实施的错误日志。本节介绍这些日志子系统以及允许系统或安全管理员监测、审计和维护日志的命令和程序,另外重点讲述了syslog-ng工具及其使用。

10.2日志和审计工具的使用记录重要的系统事件是系统安全2610.2.1UNIX的日志系统

在多数UNIX

系统中,有三个主要的日志子系统:

1.连接时间日志由多个程序执行,把记录写入到/var/log/wtmp(或/var/adm/wtmp)和/var/run/utmp(可以是/etc/utmp

或/var/adm/utmp)。login等程序更新wtmp和utmp文件,使系统管理员能跟踪用户在何时登录进入系统。

2.进程统计由系统内核执行。当一个进程终止时,为每个进程往进程统计文件(pacct或acct

)中写一个记录。进程统计的主要目的是为系统中的基本服务提供命令使用统计。

10.2.1UNIX的日志系统

在多数UNIX

系统中,273.错误日志由syslogd

执行。各种系统守护程序、用户程序和内核通过syslog

向文件/var/adm/messages

和/var/log/syslog

报告值得注意的事件。另外有许多UNIX

程序创建日志。像HTTP

或FTP

这样提供网络服务的服务器也保持详细的日志。

根据不同的UNIX版本,日志文件通常写到/var/log、/var/adm、/usr/adm

或有时/etc

目录中,如表10-1所示。

3.错误日志28表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、/usr/adm/lastlog表10-1常用UNIX系统的日志存放目录操作系统日志所存放2910.2.2syslog_ng工具及使用1.syslog-ng简介在UNIX系统的维护中,经常会忽略系统事件的处理。经常检查系统日志对于保持系统的安全和正常运行是至关重要的。但是,系统日志中有太多的噪音,一些不是很重要的信息会掩盖重要的信息。目前的工具很难识别出系统管理者感兴趣的信息。在UNIX系统中,系统管理员可以通过指定facility/priority,把消息发到不同的地方。系统预先定义了10个(mail、news、auth等)facility,8个不同的优先级(alert、debug等)。10.2.2syslog_ng工具及使用1.syslog-30这其中存在一个问题,大量的程序使用同样的facildaemonity(),把日志都保存到一个文件中(messages),即使它们毫无关联,这样也会造成用户很难筛选出自己感兴趣的东西。第二个问题是,大多数的程序无法改变日志配置,只能修改软件的源代码。因此,使用facility作为过滤不是一个好办法。最好能够有一些runtime选项,使用这些选项指定日志facility,建立新的facility。这其中存在一个问题,大量的程序使用同样的facildaemo31syslog-ng的一个设计原则就是建立更好的消息过滤粒度。syslog-ng能够进行基于内容和优先权/facility的过滤。另一个设计原则是更容易进行不同防火墙网段的信息转发,它支持主机链,即使日志消息经过了许多计算机的转发,也可以找出原发主机地址和整个转发链。最后的一个设计原则就是尽量使配置文件强大和简洁。syslog-ng的一个设计原则就是建立更好的消息过滤粒度。322.消息路径一个消息路径是由一个或者多个日志消息源、一个或者多个过滤规则以及一个或者多个日志消息目的组成的。来自某个日志消息源的消息进入syslog-ng,如果消息命中某条规则,syslog-ng就把它发送到对应的日志消息目的。2.消息路径一个消息路径是由一个或者多个日志消息源、一个或33(1)消息源一些日志消息源驱动器(sourcedriver)组成一个消息源,这些驱动器使用给定的方法收集日志消息。譬如,有的syslog()系统调用使用的AF_UNIX、SOCK_STREAM风格的套接字源驱动器。在配置文件中,你可以使用下面的语法声明一个日志消息源:source<identifier>{source-driver(params);source-driver(params);...};identifier是给定消息源的唯一标志,但是这个标志符不能和系统保留字有冲突。用户可以控制使用哪个驱动器来收集日志消息,因而你需要知道你的系统和syslogd是如何通讯的。(1)消息源34不同平台下syslogd的工作稍有不同,下面介绍一下某些平台中,syslogd是如何工作的:①Linux:使用/dev/log的SOCK_STREAMunix套接字②BSD:使用/var/run/log的SOCK_STREAMunix套接字③Solaris(2.5或以下):使用/dev/log的SVR4风格的STREAMS设备④solaris(2.6或以上):除了2.6之前版本使用的STREAMS设备之外,使用了一种新的多线程IPC方法调用门。默认情况下,这个调用门是/etc/syslog_door,由syslogd使用。在syslog-ng中,每个可能的通讯机制都有对应的日志消息源驱动器。例如:如果要打开一个SOCK_DGRAM风格的UNIX套接字进行通信,你就会用到unix-dgram驱动器,同样SOCK_STREAM式的通信需要unix-stream驱动器。不同平台下syslogd的工作稍有不同,下面介绍一下某些平台35例10.1:Linux中的一个源指令。sourcesrc{unix-stream("/dev/log");internal();udp(ip()port(514));};驱动器可以使用参数,参数有些是必需的,有些是可选的。必需的参数一般在前面。上面的指令中,/dev/log就是必需参数。可用的源驱动器如表10-3所示。例10.1:Linux中的一个源指令。36表10-3日志消息源驱动器列表表10-3日志消息源驱动器列表37下面,将详细介绍配置文件中使用的消息源驱动器和选项。①internal()所有syslog-ng内部产生的日志消息都来自这个日志消息源。如果你需要syslog-ng自己定义的警告、错误和提醒信息,就需要在配置文件中加入以下声明:Declaration:internal()如果这个消息源驱动器没有被引用,syslog-ng会向你输出报警信息。例10.2:使用inernal()日志消息源驱动器。sources_local{internal();};下面,将详细介绍配置文件中使用的消息源驱动器和选项。38②unix-stream()和unix-dgram()这两个日志消息源驱动器比较相似,都打开AF_UNIX类型的套接字,在套接字上监听日志消息。unix-stream()主要用在Linux,使用SOCK_STREAM参数,是面向连接的,不会造成日志消息的丢失;unix-dgram()用在FreeBSD系统上,使用SOCK_DGRAM参数,是无连接的,如果系统过载,会造成日志消息丢失。在使用面向连接的协议时,为了避免造成拒绝服务攻击,需要对同时接受的连接数量进行闲置,这由max-connections()参数实现。其声明语法如下:Declaration:unix-stream(filename[options]);unix-dgram(filename[options]);②unix-stream()和unix-dgram()39③tcp()和udp()使用这两个日志消息源驱动器,你可以使用TCP或者UDP协议从网络上接受日志消息。UDP是一种简单的用户数据报协议,使用这种协议可能会发生日志消息的丢失,而且这种协议没有重传机制;TCP是一种面向连接的传输层协议,不会造成日志消息的丢失。这两种消息源驱动器都不需要位置参数。默认情况下,syslog-ng会绑定到:514,在所有有效的端口上监听。可以使用localip()参数来限制其接受连接的端口。③tcp()和udp()40注意:514端口是rshell使用的端口,因此如果syslog-log和rshell同时使用,你需要为syslog-ng选择另外的端口。其声明语法如下:Declaration:tcp([options]);udp([options]);注意:514端口是rshell使用的端口,因此如果syslo41

④file()通常,内核会把自己的消息送到一个特殊的文件(FreeBSD系统是/dev/kmsg,Linux系统是/proc/kmsg),因此用户需要使用file()日志消息源驱动器来指定这个文件。在Linux中,klogd会读取内核信息,并转发到syslogd进程,klogd在转发之前会对内核消息进行处理,使用/boot/System.map文件中的符号名代替原来的地址。如果你不需要这种功能,可以使用-x参数运行klogd。其声明语法如下:Declaration:file(filename);④file()42⑤pipe()pipe日志消息源驱动器打开一个命名管道,在这个命名管道监听日志消息。在HP-UX系统中,它用于内部日志消息的获得。其声明语法如下:Declaration:pipe(filename);注意:使用pipe()需要使用mkfifo建立命名管道。例10.6:使用pipe()日志消息源驱动器示例。sources_pipe{pipe("/dev/log");};⑤pipe()43⑥sun-streams()2.51版之前的solaris使用STREAMSAPI把日志消息发送到syslogd进程,且必须在编译syslog-ng时加入这个特征。新版solaris(2.51版本之后)中,STREAMS使用一个新的IPC调用门来投递日志消息。syslog-ng支持这种IPC机制。⑥sun-streams()44(2)过滤器在syslog-ng中,过滤器执行日志路由过滤功能。用户可以使用syslog-ng的内部函数编写布尔表达式,来决定日志信息是否通过。过滤器也都有唯一的标志符,语法如下:fileter<identifier>{expression;};表达式中可以包含逻辑操作符(and、or、not)和函数。例10.7:一个搜索来自blurp主机,包含deny的日志消息的过滤指令可表示为:filterf_blurp_deny{host("blurp")andmatch("deny");};(2)过滤器在syslog-ng中,过滤器执行日志路由过滤功45syslog-ng的过滤函数如表10-6所示表10-6syslog-ng的过滤函数及功能说明

syslog-ng的过滤函数如表10-6所示46(3)日志消息目的地日志消息目的地驱动器把日志消息从syslog-ng输出到另一个地方:一个文件或者一个网络套接字。Destination用于指定与过滤规则的日志消息的去处。和日志消息源类似,日志消息目的地可以包括一些目的驱动器,指定日志的派发方向。用户需要使用如下语法来声明日志消息目的:destination<identifier>{destination-driver(params);destination-driver(params);...};(3)日志消息目的地日志消息目的地驱动器把日志消息从sysl47syslog-ng支持的日志消息目的地驱动器如表10-7所示:表10-7日志消息目的地驱动器及功能syslog-ng支持的日志消息目的地驱动器如表10-7所示48下面详细介绍以上日志消息目的驱动器:①file()file()是syslog-ng最重要的日志消息目的驱动器之一。使用它,你可以把日志消息定向到一些文件中。在设置日志目的文件时,可以使用宏,从而使用一个简单的file日志消息目的驱动器就可以设置很多目的文件。和PHP/PERL大多数语言使用宏变量一样,宏file()也是以#开头。如果文件所在的目录不存在,则由create_dirs()来决定是否创建这个目录。下面详细介绍以上日志消息目的驱动器:49②file()日志消息目的地驱动器的选项③pipe()syslog-ng通过pipe()日志消息目的地驱动器把日志消息发送到/dev/xconsole之类的命名管道。④unix-stream()和unix0dgram()syslog-ng通过这两个日志消息目的驱动器把日志消息发送到一个SOCK_STREAM或者SOCK_DGRAM模式的UNIX套接字。②file()日志消息目的地驱动器的选项50⑤udp()和tcp()使用TCP或者UDP协议把日志消息送到本地网络上或者internet上的另外的主机。⑥usertty()syslog-ng使用这个日志消息目的驱动器把日志消息送到一个登录用户使用的终端。⑦program()program()驱动器派生(fork)出一个进程,使用给定的参数执行一个特定的程序,然后把日志消息送到这个进程的标准输入设备。⑤udp()和tcp()51(4)组成日志消息路径前面我们学习了如何定义消息源、过滤器和消息目的。现在我们要把这些结合起来形成一条完整的指令。凡是来源于指定的消息源,匹配所有指定的过滤器,并送到指定的地址。其语法如下:log{source(s1);source(s2);...filter(f1);filter(f2);...destination(d1);destination(d2);...};其中,日志路径中的成员是顺序执行的。(4)组成日志消息路径前面我们学习了如何定义消息源、过滤器和52(5)设置选项用户可以通过设置一些选项来改变syslog-ng的行为。设置选项的语法一般是:options{option1(params);option2(params);...};(5)设置选项53(6)优化syslog-ngsyslog-ng的默认设置是针对单服务器或者工作站的,而对于一个网络的中央日志主机来说,却远远不够。因此,需要对其进行一些调整和优化。(6)优化syslog-ng54①设置垃圾收集参数syslog-ng有自己的垃圾收集器,而且一旦进入垃圾收集状态就不再接受日志消息,从而造成非连接的传输协议(UDP)的信息丢失。因此,需要对syslog-ng的垃圾收集状态进行控制,用户可以通过以下两个选项来控制其垃圾收集状态。①设置垃圾收集参数55gc_idle_threshold()这个选项能够设置垃圾收集器在syslog-ng处于空闲状态时的阀值。如果分配的的对象达到这个数字,而且系统处于空闲状态(100msec内没有日志消息到达),syslog-ng就启动垃圾收集器。此时,系统处于空闲状态,因此基本不会造成日志信息的丢失。这个值应该比较小,不过要大于已分配对象的最小值。已分配对象的最小值取决于用户的配置,也可以通过-v命令行参数指定。gc_idle_threshold()56gc_busy_threshold()如果syslog-ng正忙于接受日志消息(日志消息的间隔小于100msec),为了防止其占有所有内存,也应该运行垃圾收集器。这个值应该比较高,以便在正常情况下不打断日志消息的接收。gc_busy_threshold()57②设置输出队列的大小为了防止发送日志的daemon程序阻塞,syslog-ng一直在读取其向内的日志通道。如果输出队列已满,就可能造成日志消息的丢失。因此,设置输出队列的大小非常重要,你可以设置全局输出队列的大小,也可以为每个日志消息驱动器设置输出队列的大小。其语法为:options{log_fifo_size(1000);};或者:destinationd_dmessages{file("/var/log/messages"log_fifo_size(1000);};②设置输出队列的大小58输出队列的大小应该合理,这对于大量的日志消息涌来特别重要。如果蜂拥而至的日志信息占据了目标通道的所有带宽,syslog-ng能够把日志消息消息保存到输出队列中,等高峰过去再发出。当然,syslog-ng不能测试你的网络带宽,因此如果目的主机在一个噪音很大的网络上,而且日志流量超过网络带宽,syslog-ng也无能为力。输出队列的大小应该合理,这对于大量的日志消息涌来特别重要。如59③设置同步(sync)参数syslog-ng一般先对日志消息进行缓存,当达到一定的数量,就写入磁盘。注意,syslog-ng是对每条日志消息分别使用write()系统调用,而不是把所有日志消息一次写入磁盘。③设置同步(sync)参数6010.2.3其他日志工具Linux系统除了常用的日志工具syslog-n外,还有一些专门用于分析日志的工具,如Logcheck、Logwatch和Swatch等。LogcheckLogwatchSwatch10.2.3其他日志工具Linux系统除了常用的日志工具611.LogcheckLogcheck用来分析庞大的日志文件,过滤出有潜在安全风险或其他不正常情况的日志项目,然后以电子邮件的形式通知指定的用户。logchek可以自动地检查日志文件,先把正常的日志信息剔除掉,把一些有问题的日志保留下来,然后把这些信息email给系统管理员。Logcheck被设计成自动运行,定期检查日志文件以发现违反安全规则以及异常的活动。logcheck用logtail程序记住上次已经读过的日志文件的位置,然后从这个位置开始处理新的日志信息。1.Logcheck622.logwatch如果要想迅速的得到

Linux环境中的日志报告信息,

Logwatch

是一个很好的工具。一般的

Linux

系统中可能都默认安装了这个工具,几乎不需要额外的配置就可以简单的用起来。

新版本的

LogWatch

默认有

70

多种

Log

的配置信息,

如果要对自己的特殊

Log

做监控,

定制也是比较容易的。这里简要介绍基本的做法:

(1)创建一个日志文件组。指定自己的

Log

文件,可以是一个,可以是多个;(2)创建一个新的服务。指明这个服务的名字,

指明

Log

文件来源(来自上一步的定义);

(3)创建一个过滤脚本。

2.logwatch633.SwatchSWATCH是ToddAtkins开发的用于实时监视日志的PERL程序。Swatch利用指定的触发器监视日志记录,当日志记录符合触发器条件时,swatch会按预先定义好的方式通知系统管理员。Swatch有两种运行方式:一种可以在检查日志完毕退出,另一种可以连续监视日志中的新信息。3.Swatch6410.3入侵检测工具及使用10.3.1入侵检测概述CIDF早期由美国国防部高级研究计划局赞助研究,现在由CIDF工作组负责,是一个开放组织。CIDF阐述了一个入侵检测系统(IDS)的通用模型。它将一个入侵检测系统分为以下组件:事件产生器(Eventgenerators),用E盒表示;事件分析器(Eventanalyzers),用A盒表示;响应单元(Responseunits),用R盒表示;事件数据库(Eventdatabases),用D盒表示。

10.3入侵检测工具及使用10.3.1入侵检测概述6510.3.2入侵检测系统的分类从技术上进行分类,分为基于网络的入侵检测和基于主机入侵检测。基于网络的入侵检测基于主机的入侵检测基于检测方法的分类,分为特征检测与异常检测特征检测异常检测统计检测专家系统10.3.2入侵检测系统的分类从技术上进行分类,分为基于网络661.基于网络的入侵检测和基于主机入侵检测。(1)基于网络的入侵检测基于网络的入侵检测产品(NIDS)放置在比较重要的网段内,不停地监视网段中的各种数据包。网络入侵检测系统的优点:①网络入侵检测系统能够检测那些来自网络的攻击,它能够检测到超过授权的非法访问。②一个网络入侵检测系统不需要改变服务器等主机的配置。由于它不会在业务系统的主机中安装额外的软件,从而不会影响这些机器的CPU、I/O与磁盘等资源的使用,不会影响业务系统的性能。1.基于网络的入侵检测和基于主机入侵检测。(1)基于网络的入67③由于网络入侵检测系统不像路由器、防火墙等关键设备方式工作,它不会成为系统中的关键路径。网络入侵检测系统发生故障不会影响正常业务的运行。布署一个网络入侵检测系统的风险比主机入侵检测系统的风险少得多。④网络入侵检测系统近年内有向专门的设备发展的趋势,安装这样的一个网络入侵检测系统非常方便,只需将定制的设备接上电源,做很少一些配置,将其连到网络上即可。③由于网络入侵检测系统不像路由器、防火墙等关键设备方式工作68网络入侵检测系统的弱点:①网络入侵检测系统只检查它直接连接网段的通信,不能检测在不同网段的网络包。②网络入侵检测系统为了性能目标通常采用特征检测的方法,它可以检测出普通的一些攻击,而很难实现一些复杂的需要大量计算与分析时间的攻击检测。网络入侵检测系统的弱点:69③网络入侵检测系统可能会将大量的数据传回分析系统中。④网络入侵检测系统处理加密的会话过程较困难,目前通过加密通道的攻击尚不多,但随着IPv6的普及,这个问题会越来越突出。③网络入侵检测系统可能会将大量的数据传回分析系统中。70(2)基于主机的入侵检测基于主机的入侵检测产品(HIDS)通常是安装在被重点检测的主机之上,主要是对该主机的网络实时连接以及系统审计日志进行智能分析和判断。如果其中主体活动十分可疑(特征或违反统计规律),入侵检测系统就会采取相应措施。(2)基于主机的入侵检测71主机入侵检测系统的优点:①主机入侵检测系统对分析“可能的攻击行为”非常有用。②主机入侵检测系统通常情况下比网络入侵检测系统误报率要低。③主机入侵检测系统可布署在那些不需要广泛的入侵检测、传感器与控制台之间的通信带宽不足的情况下。主机入侵检测系统的优点:72主机入侵检测系统的弱点:①主机入侵检测系统安装在我们需要保护的设备上。②主机入侵检测系统的另一个问题是它依赖于服务器固有的日志与监视能力。全面布署主机入侵检测系统代价较大,企业中很难将所有主机用主机入侵检测系统保护,只能选择部分主机保护。那些未安装主机入侵检测系统的机器将成为保护的盲点,入侵者可利用这些机器达到攻击目标。③主机入侵检测系统除了监测自身的主机以外,根本不监测网络上的情况。主机入侵检测系统的弱点:732.特征检测与异常检测(1)特征检测特征检测又称Misusedetection,这一检测假设入侵者活动可以用一种模式来表示,系统的目标是检测主体活动是否符合这些模式。它可以将已有的入侵方法检查出来,但对新的入侵方法无能为力。其难点在于如何设计模式既能够表达“入侵”现象又不会将正常的活动包含进来。特征检测对已知的攻击或入侵的方式作出确定性的描述,形成相应的事件模式。当被审计的事件与已知的入侵事件模式相匹配时,即报警。原理上与专家系统相仿。其检测方法上与计算机病毒的检测方式类似。目前基于对包特征描述的模式匹配应用较为广泛。该方法预报检测的准确率较高,但对于无经验知识的入侵与攻击行为无能为力。2.特征检测与异常检测(1)特征检测74(2)异常检测异常检测的假设是入侵者活动异常于正常主体的活动。根据这一理念建立主体正常活动的“活动简档”,将当前主体的活动状况与“活动简档”相比较,当违反其统计规律时,认为该活动可能是“入侵”行为。异常检测的难题在于如何建立“活动简档”以及如何设计统计算法,从而不把正常的操作作为“入侵”或忽略真正的“入侵”行为。(2)异常检测75(3)统计检测统计模型常用异常检测,在统计模型中常用的测量参数包括:审计事件的数量、间隔时间、资源消耗情况等。常用的入侵检测5种统计模型为:操作模型,该模型假设异常可通过测量结果与一些固定指标相比较得到,固定指标可以根据经验值或一段时间内的统计平均得到,举例来说,在短时间内的多次失败的登录很有可能是口令尝试攻击;(3)统计检测76方差,计算参数的方差,设定其置信区间,当测量值超过置信区间的范围时表明有可能是异常;多元模型,操作模型的扩展,通过同时分析多个参数实现检测;马尔柯夫过程模型,将每种类型的事件定义为系统状态,用状态转移矩阵来表示状态的变化,当一个事件发生时,或状态矩阵该转移的概率较小则可能是异常事件;方差,计算参数的方差,设定其置信区间,当测量值超过置信区间的77时间序列分析,将事件计数与资源耗用根据时间排成序列,如果一个新事件在该时间发生的概率较低,则该事件可能是入侵。统计方法的最大优点是它可以“学习”用户的使用习惯,从而具有较高检出率与可用性。但是它的“学习”能力也给入侵者以机会通过逐步“训练”使入侵事件符合正常操作的统计规律,从而透过入侵检测系统。时间序列分析,将事件计数与资源耗用根据时间排成序列,如果一个78(4)专家系统用专家系统对入侵进行检测,经常是针对有特征入侵行为。所谓的规则,即是知识,不同的系统与设置具有不同的规则,且规则之间往往无通用性。专家系统的建立依赖于知识库的完备性,知识库的完备性又取决于审计记录的完备性与实时性。入侵的特征抽取与表达,是入侵检测专家系统的关键。在系统实现中,将有关入侵的知识转化为if-then结构(也可以是复合结构),条件部分为入侵特征,then部分是系统防范措施。运用专家系统防范有特征入侵行为的有效性完全取决于专家系统知识库的完备性。(4)专家系统7910.3.3常用手工入侵检测方法与命令在Linux下常用手工入侵检测方法与命令有:1.检查/etc/passwd文件中是否有可疑用户2.检查/etc/inet.conf和crontab文件是否被修改3.检查.rhosts、/etc/hosts.equiv、.forward文件是否被修改4.检查是否有危险的RootSuid程序5.检查系统日志6.检查是否有可疑进程7.检查网络连接和开放端口10.3.3常用手工入侵检测方法与命令在Linux下常用手8010.3.4入侵检测工具Snort及使用技巧1.snort简介Snort有三种工作模式:嗅探器、数据包记录器、网络入侵检测系统。嗅探器模式仅仅是从网络上读取数据包并作为连续不断的流显示在终端上。数据包记录器模式把数据包记录到硬盘上。网路入侵检测模式是最复杂的,而且是可配置的。我们可以让snort分析网络数据流以匹配用户定义的一些规则,并根据检测结果采取一定的动作。10.3.4入侵检测工具Snort及使用技巧1.snort8110.3.4入侵检测工具Snort及使用技巧(1)嗅探器所谓的嗅探器模式就是snort从网络上读出数据包然后显示在你的控制台上。首先,我们从最基本的用法入手。如果你只要把TCP/IP包头信息打印在屏幕上,只需要输入下面的命令:./snort–v使用这个命令将使snort只输出IP和TCP/UDP/ICMP的包头信息。如果要看到应用层的数据,可以使用:./snort–vd10.3.4入侵检测工具Snort及使用技巧(1)嗅探器82这条命令使snort在输出包头信息的同时显示包的数据信息。如果你还要显示数据链路层的信息,就使用下面的命令:./snort–vde注意这些选项开关还可以分开写或者任意结合在一块。例如,下面的命令就和./snort–vde这一条命令等价:./snort-d-v–e这条命令使snort在输出包头信息的同时显示包的数据信息。如83(2)数据包记录器

如果要把所有的包记录到硬盘上,需要指定一个日志目录,snort就会自动记录数据包:./snort-dev-l./log当然,./log目录必须存在,否则snort就会报告错误信息并退出。当snort在这种模式下运行,它会记录所有看到的包将其放到一个目录中,这个目录以数据包目的主机的IP地址命名,例如:(2)数据包记录器

如果要把所有的包记录到硬盘上,需84如果只指定了-l命令开关,而没有设置目录名,snort有时会使用远程主机的IP地址作为目录,有时会使用本地主机IP地址作为目录名。为了只对本地网络进行日志,需要给出本地网络:./snort-dev-l./log-h/24这个命令告诉我们,snort把进入C类网络192.168.1的所有包的数据链路、TCP/IP以及应用层的数据记录到目录./log中。如果只指定了-l命令开关,而没有设置目录名,snort有时会85(3)网络入侵检测系统snort最重要的用途还是作为网络入侵检测系统(NIDS),使用下面命令行可以启动这种模式:./snort-dev-l./log-h/24-csnort.conf这里的snort.conf是规则集文件。snort会对每个包和规则集进行匹配,发现这样的包就采取相应的行动。如果不指定输出目录,snort就输出到/var/log/snort目录。注意:如果长期使用snort作为自己的入侵检测系统,最好不要使用-v选项,因为使用这个选项,使snort向屏幕上输出一些信息,会大大降低snort的处理速度,从而在向显示器输出的过程中丢弃一些包。(3)网络入侵检测系统8610.3.4入侵检测工具Snort及使用技巧2.编写snort规则基础snort使用一种简单的,轻量级的规则描述语言,这种语言灵活而强大。在开发snort规则时要记住几个简单的原则。大多数snort规则都写在一个单行上,或者在多行之间的行尾用”\”分隔。Snort规则分成两个逻辑部分:规则头和规则选项。规则头包含规则的动作,协议,源和目标ip地址与网络掩码以及源和目标端口信息;规则选项部分包含报警消息内容和要检查的包的具体部分。10.3.4入侵检测工具Snort及使用技巧2.编写sno87下面是一个规则范例:alerttcpanyany->/24111(content:"|000186a5|";msg:"mountdaccess";)第一个括号前的部分是规则头(ruleheader),包含的括号内的部分是规则选项(ruleoptions)。规则选项部分中冒号前的单词称为选项关键字(optionkeywords)。注意,不是所有规则都必须包含规则选项部分,选项部分只是为了使对要收集或报警,或丢弃的包的定义更加严格。组成一个规则的所有元素对于指定的要采取的行动都必须为真。当多个元素放在一起时,可以认为它们组成了一个逻辑与(AND)语句。同时,snort规则库文件中的不同规则可以认为组成了一个大的逻辑或(OR)语句。下面是一个规则范例:88(1)规则头规则的头包含了定义一个包的who,where和what信息,以及当满足规则定义的所有属性的包出现时要采取的行动。规则动作规则的第一项是"规则动作"(ruleaction),"规则动作"告诉snort在发现匹配规则的包时要干什么。在snort中有五种动作:alert、log、pass、activate和dynamic.①Alert:使用选择的报警方法生成一个警报,然后记录(log)数据包。(1)规则头89②Log:记录数据包。③Pass:丢弃(忽略)数据包。④activate:报警并且激活另一条动态(dynamic)规则。⑤dynamic:保持空闲直到被一条activate规则激活,被激活后就作为一条log规则执行。用户可以定义自己的规则类型并且附加一条或者更多的输出模块给它,然后就可以使用这些规则类型作为snort规则的一个动作。②Log:记录数据包。90下面这个例子创建一条规则,记录到tcpdump:ruletypesuspicious{typelogoutputlog_tcpdump:suspicious.log}下面这个例子创建一条规则,记录到系统日志和MySQL数据库ruletyperedalert{typealertoutputalert_syslog:LOG_AUTHLOG_ALERToutputdatabase:log,mysql,user=snortdbname=snorthost=localhost}下面这个例子创建一条规则,记录到tcpdump:91协议规则的第二部分是协议。Snort当前分析可疑包的ip协议有四种:tcp、udp、icmp和ip。将来可能会更多,例如ARP、IGRP、GRE、OSPF、RIP、IPX等。Ip地址规则头的第三部分处理一个给定规则的ip地址和端口号信息。关键字"any"可以被用来定义任何地址。Snort没有提供根据ip地址查询域名的机制。地址就是由直接的数字型ip地址和一个cidr块组成的。Cidr块指示作用在规则地址和需要检查的进入的任何包的网络掩码,其中/24表示c类网络,/16表示b类网络,/32表示一个特定的机器的地址。例如,/24代表从到55的地址块。协议92端口号可以用几种方法表示端口号,包括"any"端口、静态端口定义、范围、以及通过否定操作符。"any"端口是一个通配符,表示任何端口。静态端口定义表示一个单个端口号,例如111表示portmapper,23表示telnet,80表示http等等。端口范围用范围操作符":"表示。范围操作符可以有数种使用方法,例如:端口号93logudpanyany->/241:1024记录来自任何端口的,目标端口范围在1到1024的udp流。logtcpanyany->/24:6000记录来自任何端口,目标端口小于等于6000的tcp流。logtcpany:1024->/24500:记录来自任何小于等于1024的特权端口,目标端口大于等于500的tcp流。logudpanyany->94方向操作符方向操作符"->"表示规则所施加的流的方向。方向操作符左边的ip地址和端口号被认为是流来自的源主机,方向操作符右边的ip地址和端口信息是目标主机。另外,还有一个双向操作符"<>"。双向操作符告诉snort把地址/端口号对既作为源,又作为目标来考虑。这对于记录/分析双向对话很方便,例如telnet或者pop3会话。用来记录一个telnet会话的两侧的流的范例如下:log!/24any

<>

/2423方向操作符95激活和动态规则激活和动态(Activateanddynamic)规则对给了snort更强大的能力。现在当这条规则适用于一些数据包时,可以用一条规则来激活另一条规则。Activate规则除了包含一个选择域:activates外,其他和alert规则一样。Dynamic规则除了包含一个不同的选择域:activated_by外,其他和log规则一样。dynamic规则还包含一个count域。值得注意的是,Activate规则除了类似一条alert规则外,当一个特定的网络事件发生时还能告诉snort加载一条规则;Dynamic规则和log规则类似,但它是当一个activate规则发生后被动态加载的。激活和动态规则96例如:Activatetcp!$HOME_NETany->$HOME_NET143(flags:PA;\content:"|E8C0FFFFFF|\bin"|;activates:1;msg:"IMAPbufferoverflow!";)dynamictcp!$HOME_NETany->$HOME_NET143(activated_by:1;count:50;)例如:97(2)规则选项规则选项组成了snort入侵检测引擎的核心,既容易使用,还很强大、灵活。所有的snort规则选项用分号";"隔开。规则选项关键字(OptionKeyword)和它们的参数(OptionArgument)用冒号":"分开。(2)规则选项9810.3.4入侵检测工具Snort及使用技巧3.规则高级概念(1)Includesinclude允许由命令行指定的规则文件包含其他的规则文件。格式:include:<includefilepath/name>注意在该行结尾处没有分号。被包含的文件会把任何预先定义的变量值替换为自己的变量引用。参见以下变量(Variables)介绍关于在SNORT规则文件中定义和使用变量。10.3.4入侵检测工具Snort及使用技巧3.规则高级概9910.3.4入侵检测工具Snort及使用技巧(2)Variables在snort.conf配置文件中,可以使用var来定义变量。其指令格式为:var:<name><value>例如:varMY_NET/24alerttcpanyany-> $MY_NETany(flags:S;msg:"SYNpacket";)规则变量名可以用多种方法修改。可以在" $"操作符之后定义变量。"?"和"-"可用于变量修改操作符。10.3.4入侵检测工具Snort及使用技巧(2)Varia10010.3.4入侵检测工具Snort及使用技巧(3)ConfigSnort的配置文件是/etc/snort/snort.conf,保护进程是/etc/rc.d/init.d/snortd。Snort的很多配置和命令行选项都可以在配置文件中设置和使用。其格式为:config<Directives>[:<value>]10.3.4入侵检测工具Snort及使用技巧(3)Confi101本章小结本章系统介绍了Linux系统平台的安全增强技术,包括系统启动何登录安全性设置、网络访问安全设置、安装系统安全补丁等技术。然后阐述了Linux系统平台的安全增强方法日志和审计工具的使用方法,并以syslog_ng工具为例,说明安全增强工具的实际应用。最后,介绍了入侵检测基本理论和方法,并以手工检测和工具检测为例说明了Linux系统安全增强技术。本章小结102实验:Linux系统安全增强综合实验

【实验目的】通过本实验,掌握Linux系统安全增强的一些基本操作,并掌握如何通过重要安全设置来进行防范系统安全。【实验准备】安装有Linux7.0以上服务器。【实验步骤】1.禁止访问重要文件对于系统中的某些关键性文件,如inetd.conf、services和lilo.conf等可修改其属性,防止意外修改和普通用户查看。首先改变文件属性为600:#chmod600/etc/inetd.conf实验:Linux系统安全增强综合实验【实验目的】通过本实验103实验:Linux系统安全增强综合实验保证文件的属主为root,然后还可以将其设置为不能改变:#chattr+i/etc/inetd.conf这样,对该文件的任何改变都将被禁止。只有root重新设置复位标志后才能进行修改:#chattr–i/etc/inetd.conf2.禁止不必要的SUID程序SUID可以使普通用户以root权限执行某个程序,因此应严格控制系统中的此类程序。找出root所属的带s位的程序:#find/-typef\(-perm-0400–o–perm-02000\)–print|less禁止其中不必要的程序:#chmoda-sprogram_name实验:Linux系统安全增强综合实验保证文件的属主为ro104实验:Linux系统安全增强综合实验3.为LILO增加开机口令在/etc/lilo.conf文件中增加选项,从而使LILO启动时要求输入口令,以加强系统的安全性。具体设置如下:boot=/dev/hadmap=/boot/mapinstall=/boot/boot.btime-out=60#等等一分钟prompdefault=linuxpassword=<password>

实验:Linux系统安全增强综合实验3.为LILO增加开机105实验:Linux系统安全增强综合实验#口令设置image=/boot/vmlinuz-2.2.14-12label=linuxinitrd=/boot/initrd-2.2.14-12.imgroot=/dev/hda6read-only此时需要注意,由于在LILO中口令是以明码方式存放的,因此还需要将lilo.conf的文件属性设置为只有root可以读写:#chmod600/etc/lilo.conf当然,还需要进行如下设置,使lilo.conf的修改生效:#/sbin/lilo–v实验:Linux系统安全增强综合实验#口令设置106实验:Linux系统安全增强综合实验4.设置口令最小长度和最短使用时间口令是系统中认证用户的主要手段,系统安装时默认的口令最小长度通常为5,但为保证口令不易被猜测攻击,可增加口令的最小长度至少为8。为此,需修改文件/etc/login.defs中的参数PASS_MIN_LEN。同时应限制口令的使用时间,保证定期更换口令,建议修改参数PASS_MIN_DAYS。5.限制远程访问实验:Linux系统安全增强综合实验4.设置口令最小长度和107在Linux中可通过/etc/hosts.allow和/etc/hosts.deny这两个文件允许和禁止远程主机本地服务的访问。通常的做法是:(1)编辑hosts.deny文件,加入下列命令行:#DenyaccestoeveryoneALL:ALL@ALL则所有服务对所有外部主机禁止,除非由hosts.allow文件指明允许。(2)编辑hosts.allow文件,可加入下列行:#Justanexampleftp:1则将允许IP地址为1和主机名为的机器作为Client访问FTP服务。(3)设置完成后,可用tcpdchk检查设置是否正确。在Linux中可通过/etc/hosts.allow和/et108实验:Linux系统安全增强综合实验6.用户超时注销如果用户离开时忘记注销帐户,则可能给系统安全带来隐患。可修改/etc/profile文件,保证帐户在一段时间没有操作后,自动进行系统注销。编辑文件/etc/profile,在“HISTFILESIZE”行的下一行增加如下一行:TMOUT=600则所有用户将在10分钟无操作后自动注销。实验:Linux系统安全增强综合实验6.用户超时注销1097.注销时删除命令记录编辑/etc/skel/.bash_logout文件,增加如下行:rm–f$HOME/.bash_history这样,系统中的用户在主修时都会删除其命令记录。如果只需要针对某个特定用户,如root用户进行设置,则可只在该用户的主目录下修改$HOME/.bash_history文件,增加相同的一行即可。7.注销时删除命令记录110【实验总结】通过本实验,使我们掌握了在Linux系统平台的安全增强方法以及基本操作流程,以此说明了Linux系统安全增强技术方法在我们实际应用中设置的基本技巧。【实验总结】通过本实验,使我们掌握了在Linux系统平台的111课后习题1.如何对Linux系统进行安全增强?有哪些增强安全技术?2.Linux操作系统安全设置基本技巧有哪些?3.Linux日志系统包括哪些?有哪些常用的审计工具,及其使用方法?4.简述目前入侵检测方法有哪些?手工检测和工具检测各自优缺点有哪些?课后习题112第10章Linux系统安全增强

第10章Linux系统安全增强113第一部分教学组织一、目的要求1.掌握Linux操作系统安全设置基本技巧。2.了解Linux日志系统、掌握常用审计工具的使用。3.理解入侵检测基本过程并且掌握常用的入侵检测方法和工具。二、工具器材1.RedHatEnterpriseLinux7.0或以上操作系统。2.syslog_ng工具或其他日志工具。3.入侵检测工具Snort第一部分教学组织一、目的要求114第二部分教学内容本章主要介绍Linux系统安全设置技巧、日志和审计工具的使用和入侵检测工具及使用,从而更有效增强了Linux系统安全。第二部分教学内容本章主要介绍Linux系统安全设置技巧、11510.1系统安全设置技巧10.1.1启动和登录安全性设置1.BIOS安全,设定引导口令2.系统帐号的增加、删除和移走3.口令设置及加密文件的保护4.禁止Ctrl+Alt+Delete三键重启系统5.限制使用su命令6.删减登录信息10.1系统安全设置技巧10.1.1启动和登录安全性设1161.BIOS安全,设定引导口令禁止从软盘启动,并且给BIOS加上密码。每次启动的时候都手工检查一下BIOS,这样可以提高系统的安全性。禁止从软盘启动,可以阻止别人用特殊的软盘启动你的计计算机;给BIOS加上密码,可以防止有人改变BIOS的参数,比如:允许从软盘启动或不用输入口令就可以引导计算机。1.BIOS安全,设定引导口令禁止从软盘启动,并且给BIO1172.系统帐号的增加、删除和移走(1)增加用户增加用户有三个过程:在/etc/passwd文件中写入新用户的入口项;为新登录用户建立一个HOME目录;在/etc/group中为新用户增加一个入口项。2.系统帐号的增加、删除和移走(1)增加用户118在/etc/passwd文件中写入新的入口项时,口令部分可先设置为NOLOGIN,以免有人做为此新用户登录。在修改文件前,应mkdir/etc/ptmp,以免他人同时修改此文件。新用户一般独立为一个新组,GID号与UID号相同(除非他要加入目前已存在的一个新组),UID号必须和其他人不同,HOME目录一般设置在/usr或/home目录下建立一个以用户登录名为名称的目录做为其主目录.

在/etc/passwd文件中写入新的入口项时,口令部分可先119(2)删除用户删除用户与加用户的工作正好相反,首先在/etc/passwd和/etc/group文件中删除用户的入口项,然后删除用户的HOME目录和所有文件.rm-r/usr/loginname删除整个目录树。如果用户在/usr/spool/cron/crontabs中有crontab文件,也应当删除。(2)删除用户删除用户与加用户的工作正好相反,首先在/e120(3)将用户移到另一个系统这是一个复杂的问题,不只是拷贝用户的文件和用户在/etc/passwd文件中的入口项。首先一个问题是用户的UID和GID可能已经用于另一个系统,若是出现这种情况,必须给要移的用户分配另外的UID和GID,如果改变了用户的UID和GID,则必须搜索该用户的全部文件,将文件的原UID和GID改成新的UID和GID。用find命令可以完成这一修改:find.-userolduid-execchownnewuid{};find.-groupoldgid-execchgrpnewgid{};也许还要为用户移走其它一些文件:/usr/mail/user和/usr/spool/cron/crontabs/user。(3)将用户移到另一个系统1213.口令设置及加密文件的保护口令的安全是Linux安全的一个基本安全设置。许多人都把所有的东西保存在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论