《操作系统安全》第十章Linux系统安全增强.ppt
《《操作系统安全》第十章Linux系统安全增强.ppt》由会员分享,可在线阅读,更多相关《《操作系统安全》第十章Linux系统安全增强.ppt(112页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第10章Linux系统安全增强第一部分教学组织o一、目的要求一、目的要求o1.掌握Linux操作系统安全设置基本技巧。o2.了解Linux日志系统、掌握常用审计工具的使用。o3.理解入侵检测基本过程并且掌握常用的入侵检测方法和工具。o二、工具器材二、工具器材o1.RedHatEnterpriseLinux7.0或以上操作系统。o2.syslog_ng工具或其他日志工具。o3.入侵检测工具Snort第二部分第二部分教学内容教学内容o本章主要介绍Linux系统安全设置技巧、日志和审计工具的使用和入侵检测工具及使用,从而更有效增强了Linux系统安全。10.1系统安全设置技巧o10.1.1启动和登录
2、安全性设置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文件中写入新用户的
3、入口项;n为新登录用户建立一个HOME目录;n在/etc/group中为新用户增加一个入口项。o在/etc/passwd文件中写入新的入口项时,口令部分可先设置为NOLOGIN,以免有人做为此新用户登录。在修改文件前,应mkdir/etc/ptmp,以免他人同时修改此文件。新用户一般独立为一个新组,GID号与UID号相同(除非他要加入目前已存在的一个新组),UID号必须和其他人不同,HOME目录一般设置在/usr或/home目录下建立一个以用户登录名为名称的目录做为其主目录.(2)删除用户o删除用户与加用户的工作正好相反,首先在/etc/passwd和/etc/group文件中删除用户的入口项
4、,然后删除用户的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.-userolduid-ex
5、ecchownnewuid;ofind.-groupoldgid-execchgrpnewgid;o也许还要为用户移走其它一些文件:o/usr/mail/user和/usr/spool/cron/crontabs/user。3.口令设置及加密文件的保护o口令的安全是Linux安全的一个基本安全设置。许多人都把所有的东西保存在计算机上,防止别人查看这些信息的方法就是用口令把计算机保护起来。没有什么东西是绝对安全的。与常识相反的是:无法破解的口令是不存在的。只要给足时间和资源,所有的口令都能用社会工程(socialengineering)或强行计算的方法猜出来。通过社会工程或其它方法获得服务器的口
6、令是最简单和最流行的入侵服务器的方法。o建议用下面的规则选择有效的口令:o(1)口令至少要有6个字符,最好包含一个以上的数字或特殊字符;o(2)口令不能太简单,所谓的简单就是很容易猜出来,也就是用自己的名字,电话号码、生日、职业或者其它个人信息作为口令;o(3)口令必须是有有效期的,在一段时间之后就要更换口令;o(4)口令在这种情况下必须作废或者重新设定:如果发现有人试图猜测你的口令,而且已经试过很多次了。o安装完Linux系统之后默认的最小口令长度为5。这就是说一个新的用户可以访问服务器,那么他的口令必须多于5字符。但是这样是不够安全的,最好口令的长度能够大于8。可以强制用户使用8个字符以上
7、的口令。编辑“/etc/login.defs”文件,把最小口令长度由5改成8。找到PASS_MIN_LEN5这一行,改为:PASS_MIN_LEN8。“login.defs”是很重要的配置文件。可以在这个文件中设定一些其它的安全策略,比如:口令的有效期。o口令文件保护是系统安全设置的一个非常重要内容,系统管理员应更改其属性,防止非授权用户获取口令文件。对于UNIX系统,口令文件主要有用户和组账号口令文件,用于保持所有用户的口令。对于LINUX系统,通过chattr命令可以改变口令文件的属性。如:o#chattr+i/etc/passwdo#chattr+i/etc/shadowo#chattr
8、+i/etc/groupo#chattr+i/etc/gshadowo执行上述命令后,passwd、shadow、group和gshadow四个文件将不能修改,不能被删除和重新命名,不能创建指向该文件的链接,不能向该文件添加数据,仅仅超级用户能够设置和清除这个属性。4禁止Ctrl+Alt+Delete三键重启系统o我们平时用习惯了windows机器,可能在linux下也习惯的按下Ctrl+Alt+Delete三键,导致linux系统重新启动.以下是屏蔽这三键的方法,防止误操作导致重启:o(1)修改/etc/inittab文件,将“ca:ctrlaltdel:/sbin/shutdown-t3-
9、rnow”一行注释掉。o(2)执行“initq”这命令使上面修改后文件生效,然后重新设置/etc/rc.d/init.d/目录下所有文件的许可权限,运行如下命令:o#chmod-R700/etc/rc.d/init.d/*5限制使用su命令o禁止任何人使用su命令su命令(SubstituteUser,替代用户)可以使你成为系统的现有用户。如果不希望别人使用su进入根帐户,或者对某些用户限制使用“su”命令,则在“/etc/pam.d/”目录的“su”配置文件顶部增加如下两行代码:oauthsufficient/lib/security/pam_rootok.sodebugoauthrequi
10、red/lib/security/Pam_wheel.sogroup=wheelo意思是,只有“wheel”组的成员可以用su命令;其中还包括了日志。你可以在wheel组中添加允许使用该命令的用户,例如,希望用户admin能够使用su命令,可以运行如下命令:o#usermodG10admino将用户加入到wheel组,即可使用su命令。6删减登录信息o默认情况下,登录提示信息包括Linux发行版、内核版本名和服务器主机名等。对于一台安全性要求较高的机器来说这样泄漏了过多的信息。可以编辑/etc/rc.d/rc.local将输出系统信息的如下行注释掉。o#Thiswilloverwrite/et
11、c/issueateveryboot.So,makeanychangesyouo#wanttomaketo/etc/issuehereoryouwilllosethemwhenyourebooto#echo/etc/issueo#echo#R/etc/issueo#echoKernel#(uname-r)on#a#(uname-m)/etc/issueo#cp-f/etc/issue/etc/o#echo/etc/issueo然后,进行如下操作:o#rm-f/etc/issueo#rm-f/etc/o#touch/etc/issueo#touch/etc/10.1.2网络访问安全性设置网络访问
12、安全性设置o1限制网络访问o(1)NFS访问o如果你使用NFS网络文件系统服务,应该确保你的/etc/exports具有最严格的访问权限设置,也就是意味着不要使用任何通配符、不允许root写权限并且只能安装为只读文件系统。编辑文件/etc/exports并加入如下两行。o/dir/to/(ro,root_squash)o/dir/to/(ro,root_squash)o/dir/to/export是你想输出的目录,是登录这个目录的机器名,ro意味着mount成只读系统,root_squash禁止root写入该目录。为了使改动生效,运行如下命令:o#/usr/sbin/exportfs-a(2)
13、Inetd设置o首先要确认/etc/inetd.conf的所有者是root,且文件权限设置为600。设置完成后,可以使用stat命令进行检查。o#chmod600/etc/inetd.confo然后,编辑/etc/inetd.conf禁止以下服务:oftptelnetshellloginexectalkntalkimappop-2pop-3fingerautho如果安装了ssh/scp,也可以禁止掉Telnet/FTP。为了使改变生效,运行如下命令:o#killall-HUPinetdo默认情况下,多数Linux系统允许所有的请求,而用TCP_WRAPPERS增强系统安全性是举手之劳,可以修改
14、/etc/hosts.deny和/etc/hosts.allow来增加访问限制。例如,将/etc/hosts.deny设为ALL:ALL可以默认拒绝所有访问。然后在/etc/hosts.allow文件中添加允许的访问。例如,sshd表示允许IP地址和主机名允许通过SSH连接。o配置完成后,可以用tcpdchk检查:o#tcpdchkotcpchk是TCP_Wrapper配置检查工具,它检查tcpwrapper配置并报告所有发现的潜在/存在的问题。(3)登录终端设置o/etc/securetty文件指定了允许root登录的tty设备,由/bin/login程序读取,其格式是一个被允许的名字列表,
15、你可以编辑/etc/securetty且注释掉如下的行:o#tty2o#tty3o#tty4o#tty5o#tty6o这时,root仅可在tty1终端登录。限制远程登录时使用root帐号。(4)避免显示系统和版本信息o如果希望远程登录用户看不到系统和版本信息,可以通过以下操作改变/etc/inetd.conf文件:otelnetstreamtcpnowaitroot/usr/sbin/tcpdin.telnetd-ho加-h表示telnet不显示系统信息,而仅仅显示“login:”。2防止攻击o(1)阻止pingo如果没人能ping通你的系统,安全性自然增加了。为此,可以在/etc/rc.d/
16、rc.local文件中增加如下一行:oecho1/proc/sys/net/ipv4/icmp_echo_ignore_allo(2)防止IP欺骗o编辑host.conf文件并增加如下几行来防止IP欺骗攻击:oorderbind,hostsomultioffonospoofono(3)防止DoS攻击o对系统所有的用户设置资源限制可以防止DoS类型攻击。如最大进程数和内存使用数量等。例如,可以在/etc/security/limits.conf中添加如下几行:o*hardcore0o*hardrss5000o*hardnproc20o然后必须编辑/etc/pam.d/login文件检查下面一行是
17、否存在。osessionrequired/lib/security/pam_limits.soo上面的命令禁止调试文件,限制进程数为20,并且限制内存使用为5MB。10.1.3安装系统安全补丁包安装系统安全补丁包o1安装RedHatLinux系统补丁o2安装Solaris系统补丁10.2日志和审计工具的使用o记录重要的系统事件是系统安全的一个重要因素。多数Linux系统能够运行三个不同的日志子系统:使用wtmp/utmp文件的连接时间日志;使用acct或pacct文件的进程统计;经过syslog实施的错误日志。本节介绍这些日志子系统以及允许系统或安全管理员监测、审计和维护日志的命令和程序,另外
18、重点讲述了syslog-ng工具及其使用。10.2.1UNIX的日志系统的日志系统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由syslog
19、d执行。各种系统守护程序、用户程序和内核通过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/runSolaris/var/logFreeBSD/var/run/utmp、/var
20、/log/wtmp、/var/log/lastlogSunOS/etc/utmp、/usr/adm/wtmp、/usr/adm/lastlog10.2.2syslog_ng工具及使用工具及使用o1syslog-ng简介o在UNIX系统的维护中,经常会忽略系统事件的处理。经常检查系统日志对于保持系统的安全和正常运行是至关重要的。但是,系统日志中有太多的噪音,一些不是很重要的信息会掩盖重要的信息。目前的工具很难识别出系统管理者感兴趣的信息。o在UNIX系统中,系统管理员可以通过指定facility/priority,把消息发到不同的地方。系统预先定义了10个(mail、news、auth等)fac
21、ility,8个不同的优先级(alert、debug等)。o这其中存在一个问题,大量的程序使用同样的facildaemonity(),把日志都保存到一个文件中(messages),即使它们毫无关联,这样也会造成用户很难筛选出自己感兴趣的东西。第二个问题是,大多数的程序无法改变日志配置,只能修改软件的源代码。因此,使用facility作为过滤不是一个好办法。最好能够有一些runtime选项,使用这些选项指定日志facility,建立新的facility。osyslog-ng的一个设计原则就是建立更好的消息过滤粒度。syslog-ng能够进行基于内容和优先权/facility的过滤。另一个设计原则
22、是更容易进行不同防火墙网段的信息转发,它支持主机链,即使日志消息经过了许多计算机的转发,也可以找出原发主机地址和整个转发链。最后的一个设计原则就是尽量使配置文件强大和简洁。2消息路径o一个消息路径是由一个或者多个日志消息源、一个或者多个过滤规则以及一个或者多个日志消息目的组成的。来自某个日志消息源的消息进入syslog-ng,如果消息命中某条规则,syslog-ng就把它发送到对应的日志消息目的。o(1)消息源o一些日志消息源驱动器(sourcedriver)组成一个消息源,这些驱动器使用给定的方法收集日志消息。譬如,有的syslog()系统调用使用的AF_UNIX、SOCK_STREAM风格
23、的套接字源驱动器。o在配置文件中,你可以使用下面的语法声明一个日志消息源:osourcesource-driver(params);source-driver(params);.;oidentifier是给定消息源的唯一标志,但是这个标志符不能和系统保留字有冲突。o用户可以控制使用哪个驱动器来收集日志消息,因而你需要知道你的系统和syslogd是如何通讯的。o不同平台下syslogd的工作稍有不同,下面介绍一下某些平台中,syslogd是如何工作的:oLinux:使用/dev/log的SOCK_STREAMunix套接字oBSD:使用/var/run/log的SOCK_STREAMunix套接
24、字oSolaris(2.5或以下):使用/dev/log的SVR4风格的STREAMS设备osolaris(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中的一个源指令。osourcesrcu
25、nix-stream(/dev/log);internal();udp(ip()port(514);o驱动器可以使用参数,参数有些是必需的,有些是可选的。必需的参数一般在前面。上面的指令中,/dev/log就是必需参数。可用的源驱动器如表10-3所示。表10-3 日志消息源驱动器列表o下面,将详细介绍配置文件中使用的消息源驱动器和选项。ointernal()o所有syslog-ng内部产生的日志消息都来自这个日志消息源。如果你需要syslog-ng自己定义的警告、错误和提醒信息,就需要在配置文件中加入以下声明:oDeclaration:internal()o如果这个消息源驱动器没有被引用,sy
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统安全 操作 系统安全 第十 Linux 增强
限制150内