《操作系统安全》第十章Linux系统安全增强.ppt
《《操作系统安全》第十章Linux系统安全增强.ppt》由会员分享,可在线阅读,更多相关《《操作系统安全》第十章Linux系统安全增强.ppt(112页珍藏版)》请在三一办公上搜索。
1、第10章 Linux系统安全增强,第一部分 教学组织,一、目的要求1.掌握Linux操作系统安全设置基本技巧。2.了解Linux日志系统、掌握常用审计工具的使用。3.理解入侵检测基本过程并且掌握常用的入侵检测方法和工具。二、工具器材1.Red Hat Enterprise Linux7.0或以上操作系统。2.syslog_ng工具或其他日志工具。3.入侵检测工具Snort,第二部分 教学内容,本章主要介绍Linux系统安全设置技巧、日志和审计工具的使用和入侵检测工具及使用,从而更有效增强了Linux系统安全。,10.1 系统安全设置技巧,10.1.1 启动和登录安全性设置 1.BIOS安全,设
2、定引导口令 2.系统帐号的增加、删除和移走 3.口令设置及加密文件的保护4禁止Ctrl+Alt+Delete三键重启系统 5限制使用su命令6删减登录信息,1.BIOS安全,设定引导口令,禁止从软盘启动,并且给BIOS加上密码。每次启动的时候都手工检查一下BIOS,这样可以提高系统的安全性。禁止从软盘启动,可以阻止别人用特殊的软盘启动你的计计算机;给BIOS加上密码,可以防止有人改变BIOS的参数,比如:允许从软盘启动或不用输入口令就可以引导计算机。,2.系统帐号的增加、删除和移走,(1)增加用户增加用户有三个过程:在/etc/passwd文件中写入新用户的入口项;为新登录用户建立一个HOME
3、目录;在/etc/group中为新用户增加一个入口项。,在/etc/passwd文件中写入新的入口项时,口令部分可先设置为NOLOGIN,以免有人做为此新用户登录。在修改文件前,应mkdir/etc/ptmp,以免他人同时修改此文件。新用户一般独立为一个新组,GID号与UID号相同(除非他要加入目前已存在的一个新组),UID号必须和其他人不同,HOME目录一般设置在/usr或/home目录下建立一个以用户登录名为名称的目录做为其主目录.,(2)删除用户,删除用户与加用户的工作正好相反,首先在/etc/passwd和/etc/group文件中删除用户的入口项,然后删除用户的HOME目录和所有文件
4、.rm-r/usr/loginname 删除整个目录树。如果用户在/usr/spool/cron/crontabs中有crontab文件,也应当删除。,(3)将用户移到另一个系统,这是一个复杂的问题,不只是拷贝用户的文件和用户在/etc/passwd文件中的入口项。首先一个问题是用户的UID和GID可能已经用于另一个系统,若是出现这种情况,必须给要移的用户分配另外的UID和GID,如果改变了用户的UID和GID,则必须搜索该用户的全部文件,将文件的原UID和GID改成新的UID和GID。用find命令可以完成这一修改:find.-user olduid-exec chown newuid;fi
5、nd.-group oldgid-exec chgrp newgid;也许还要为用户移走其它一些文件:/usr/mail/user和/usr/spool/cron/crontabs/user。,3.口令设置及加密文件的保护,口令的安全是Linux安全的一个基本安全设置。许多人都把所有的东西保存在计算机上,防止别人查看这些信息的方法就是用口令把计算机保护起来。没有什么东西是绝对安全的。与常识相反的是:无法破解的口令是不存在的。只要给足时间和资源,所有的口令都能用社会工程(social engineering)或强行计算的方法猜出来。通过社会工程或其它方法获得服务器的口令是最简单和最流行的入侵服务
6、器的方法。,建议用下面的规则选择有效的口令:(1)口令至少要有6个字符,最好包含一个以上的数字或特殊字符;(2)口令不能太简单,所谓的简单就是很容易猜出来,也就是用自己的名字,电话号码、生日、职业或者其它个人信息作为口令;(3)口令必须是有有效期的,在一段时间之后就要更换口令;(4)口令在这种情况下必须作废或者重新设定:如果发现有人试图猜测你的口令,而且已经试过很多次了。,安装完Linux系统之后默认的最小口令长度为5。这就是说一个新的用户可以访问服务器,那么他的口令必须多于5字符。但是这样是不够安全的,最好口令的长度能够大于8。可以强制用户使用8个字符以上的口令。编辑“/etc/login.
7、defs”文件,把最小口令长度由5改成8。找到PASS_MIN_LEN 5 这一行,改为:PASS_MIN_LEN 8。“login.defs”是很重要的配置文件。可以在这个文件中设定一些其它的安全策略,比如:口令的有效期。,口令文件保护是系统安全设置的一个非常重要内容,系统管理员应更改其属性,防止非授权用户获取口令文件。对于UNIX系统,口令文件主要有用户和组账号口令文件,用于保持所有用户的口令。对于LINUX系统,通过chattr命令可以改变口令文件的属性。如:#chattr+i/etc/passwd#chattr+i/etc/shadow#chattr+i/etc/group#chatt
8、r+i/etc/gshadow执行上述命令后,passwd、shadow、group和gshadow四个文件将不能修改,不能被删除和重新命名,不能创建指向该文件的链接,不能向该文件添加数据,仅仅超级用户能够设置和清除这个属性。,4禁止Ctrl+Alt+Delete三键重启系统,我们平时用习惯了windows机器,可能在linux下也习惯的按下Ctrl+Alt+Delete三键,导致linux系统重新启动.以下是屏蔽这三键的方法,防止误操作导致重启:(1)修改/etc/inittab文件,将“ca:ctrlaltdel:/sbin/shutdown-t3-r now”一行注释掉。(2)执行“in
9、it q”这命令使上面修改后文件生效,然后重新设置/etc/rc.d/init.d/目录下所有文件的许可权限,运行如下命令:#chmod-R 700/etc/rc.d/init.d/*,5限制使用su命令,禁止任何人使用su命令 su命令(Substitute User,替代用户)可以使你成为系统的现有用户。如果不希望别人使用su进入根帐户,或者对某些用户限制使用“su”命令,则在“/etc/pam.d/”目录的“su”配置文件顶部增加如下两行代码:auth sufficient/lib/security/pam_rootok.so debug auth required/lib/securi
10、ty/Pam_wheel.so group=wheel 意思是,只有“wheel”组的成员可以用su命令;其中还包括了日志。你可以在wheel组中添加允许使用该命令的用户,例如,希望用户admin能够使用su命令,可以运行如下命令:#usermod G 10 admin将用户加入到wheel组,即可使用su命令。,6删减登录信息,默认情况下,登录提示信息包括Linux发行版、内核版本名和服务器主机名等。对于一台安全性要求较高的机器来说这样泄漏了过多的信息。可以编辑/etc/rc.d/rc.local将输出系统信息的如下行注释掉。,#This will overwrite/etc/issue a
11、t every boot.So,make any changes you#want to make to/etc/issue here or you will lose them when you reboot#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/,10.1.2 网络访问安全性设置,1
12、限制网络访问(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-a,(
13、2)Inetd设置,首先要确认/etc/inetd.conf的所有者是root,且文件权限设置为600。设置完成后,可以使用stat命令进行检查。#chmod 600/etc/inetd.conf 然后,编辑/etc/inetd.conf禁止以下服务:ftp telnet shell login exec talk ntalk imap pop-2 pop-3 finger auth 如果安装了ssh/scp,也可以禁止掉Telnet/FTP。为了使改变生效,运行如下命令:#killall-HUP inetd,默认情况下,多数Linux系统允许所有的请求,而用TCP_WRAPPERS增强系统安
14、全性是举手之劳,可以修改/etc/hosts.deny和/etc/hosts.allow来增加访问限制。例如,将/etc/hosts.deny设为ALL:ALL可以默认拒绝所有访问。然后在/etc/hosts.allow文件中添加允许的访问。例如,sshd表示允许IP地址和主机名允许通过SSH连接。配置完成后,可以用tcpdchk检查:#tcpdchk tcpchk是TCP_Wrapper配置检查工具,它检查tcp wrapper配置并报告所有发现的潜在/存在的问题。,(3)登录终端设置,/etc/securetty文件指定了允许root登录的tty设备,由/bin/login程序读取,其格式
15、是一个被允许的名字列表,你可以编辑/etc/securetty且注释掉如下的行:#tty2#tty3#tty4#tty5#tty6这时,root仅可在tty1终端登录。限制远程登录时使用root帐号。,(4)避免显示系统和版本信息,如果希望远程登录用户看不到系统和版本信息,可以通过以下操作改变/etc/inetd.conf文件:telnet stream tcp nowait root/usr/sbin/tcpd in.telnetd-h 加-h表示telnet不显示系统信息,而仅仅显示“login:”。,2防止攻击,(1)阻止ping 如果没人能ping通你的系统,安全性自然增加了。为此,可
16、以在/etc/rc.d/rc.local文件中增加如下一行:echo 1/proc/sys/net/ipv4/icmp_echo_ignore_all(2)防止IP欺骗 编辑host.conf文件并增加如下几行来防止IP欺骗攻击:order bind,hosts multi off nospoof on,(3)防止DoS攻击 对系统所有的用户设置资源限制可以防止DoS类型攻击。如最大进程数和内存使用数量等。例如,可以在/etc/security/limits.conf中添加如下几行:*hard core 0*hard rss 5000*hard nproc 20 然后必须编辑/etc/pam.
17、d/login文件检查下面一行是否存在。session required/lib/security/pam_limits.so 上面的命令禁止调试文件,限制进程数为20,并且限制内存使用为5MB。,10.1.3 安装系统安全补丁包,1安装Red Hat Linux 系统补丁2安装Solaris系统补丁,10.2 日志和审计工具的使用,记录重要的系统事件是系统安全的一个重要因素。多数Linux系统能够运行三个不同的日志子系统:使用wtmp/utmp文件的连接时间日志;使用acct或pacct文件的进程统计;经过syslog实施的错误日志。本节介绍这些日志子系统以及允许系统或安全管理员监测、审计和
18、维护日志的命令和程序,另外重点讲述了syslog-ng工具及其使用。,10.2.1 UNIX的日志系统,在多数UNIX系统中,有三个主要的日志子系统:1连接时间日志由多个程序执行,把记录写入到/var/log/wtmp(或/var/adm/wtmp)和/var/run/utmp(可以是/etc/utmp或/var/adm/utmp)。login等程序更新wtmp和utmp文件,使系统管理员能跟踪用户在何时登录进入系统。2进程统计由系统内核执行。当一个进程终止时,为每个进程往进程统计文件(pacct或acct)中写一个记录。进程统计的主要目的是为系统中的基本服务提供命令使用统计。,3错误日志由s
19、yslogd执行。各种系统守护程序、用户程序和内核通过syslog向文件/var/adm/messages和/var/log/syslog报告值得注意的事件。另外有许多UNIX程序创建日志。像HTTP或FTP这样提供网络服务的服务器也保持详细的日志。根据不同的UNIX版本,日志文件通常写到/var/log、/var/adm、/usr/adm或有时/etc目录中,如表10-1所示。,表10-1 常用UNIX系统的日志存放目录,10.2.2 syslog_ng工具及使用,1syslog-ng简介在UNIX系统的维护中,经常会忽略系统事件的处理。经常检查系统日志对于保持系统的安全和正常运行是至关重要
20、的。但是,系统日志中有太多的噪音,一些不是很重要的信息会掩盖重要的信息。目前的工具很难识别出系统管理者感兴趣的信息。在UNIX系统中,系统管理员可以通过指定facility/priority,把消息发到不同的地方。系统预先定义了10个(mail、news、auth等)facility,8个不同的优先级(alert、debug等)。,这其中存在一个问题,大量的程序使用同样的facildaemon ity(),把日志都保存到一个文件中(messages),即使它们毫无关联,这样也会造成用户很难筛选出自己感兴趣的东西。第二个问题是,大多数的程序无法改变日志配置,只能修改软件的源代码。因此,使用fac
21、ility作为过滤不是一个好办法。最好能够有一些runtime选项,使用这些选项指定日志facility,建立新的facility。,syslog-ng的一个设计原则就是建立更好的消息过滤粒度。syslog-ng能够进行基于内容和优先权/facility的过滤。另一个设计原则是更容易进行不同防火墙网段的信息转发,它支持主机链,即使日志消息经过了许多计算机的转发,也可以找出原发主机地址和整个转发链。最后的一个设计原则就是尽量使配置文件强大和简洁。,2消息路径,一个消息路径是由一个或者多个日志消息源、一个或者多个过滤规则以及一个或者多个日志消息目的组成的。来自某个日志消息源的消息进入syslog-
22、ng,如果消息命中某条规则,syslog-ng就把它发送到对应的日志消息目的。,(1)消息源一些日志消息源驱动器(source driver)组成一个消息源,这些驱动器使用给定的方法收集日志消息。譬如,有的syslog()系统调用使用的AF_UNIX、SOCK_STREAM风格的套接字源驱动器。在配置文件中,你可以使用下面的语法声明一个日志消息源:source source-driver(params);source-driver(params);.;identifier是给定消息源的唯一标志,但是这个标志符不能和系统保留字有冲突。用户可以控制使用哪个驱动器来收集日志消息,因而你需要知道你的系
23、统和syslogd是如何通讯的。,不同平台下syslogd的工作稍有不同,下面介绍一下某些平台中,syslogd是如何工作的:Linux:使用/dev/log的SOCK_STREAM unix套接字 BSD:使用/var/run/log的SOCK_STREAM unix套接字 Solaris(2.5或以下):使用/dev/log的SVR4风格的STREAMS设备 solaris(2.6或以上):除了2.6之前版本使用的STREAMS设备之外,使用了一种新的多线程IPC方法调用门。默认情况下,这个调用门是/etc/syslog_door,由syslogd使用。在syslog-ng中,每个可能的通
24、讯机制都有对应的日志消息源驱动器。例如:如果要打开一个SOCK_DGRAM风格的UNIX套接字进行通信,你就会用到unix-dgram驱动器,同样SOCK_STREAM式的通信需要unix-stream驱动器。,例10.1:Linux中的一个源指令。source src unix-stream(/dev/log);internal();udp(ip()port(514);驱动器可以使用参数,参数有些是必需的,有些是可选的。必需的参数一般在前面。上面的指令中,/dev/log就是必需参数。可用的源驱动器如表10-3所示。,表10-3 日志消息源驱动器列表,下面,将详细介绍配置文件中使用的消息源驱
25、动器和选项。internal()所有syslog-ng内部产生的日志消息都来自这个日志消息源。如果你需要syslog-ng自己定义的警告、错误和提醒信息,就需要在配置文件中加入以下声明:Declaration:internal()如果这个消息源驱动器没有被引用,syslog-ng会向你输出报警信息。例10.2:使用inernal()日志消息源驱动器。source s_local internal();,unix-stream()和unix-dgram()这两个日志消息源驱动器比较相似,都打开AF_UNIX类型的套接字,在套接字上监听日志消息。unix-stream()主要用在Linux,使用S
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统安全 操作 系统安全 第十 Linux 增强
链接地址:https://www.31ppt.com/p-5898545.html