LINUX系统的安全加固-课件_第1页
LINUX系统的安全加固-课件_第2页
LINUX系统的安全加固-课件_第3页
LINUX系统的安全加固-课件_第4页
LINUX系统的安全加固-课件_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

1、中国科学院计算机网络信息中心 中国科技网网络中心 All rights reservedLINUX系统的安全加固中国科技网网络中心安全部 高鹏前言 Linux系统凭借其稳定且源代码公开的特性,在互联网络上的应用已经越来越多。 当前,随着各式网络攻击、病毒威胁的不断增多,Linux系统的安全性也被愈发重视。因此,Linux系统的加固已成为网络管理员、普通用户迫在眉睫所需进行的工作。目录帐户安全设置2日志安全设置4启动安全设置31系统安全设置33启动安全设置GRUB引导它允许位于主引导记录区中特定的指令来装载一个GRUB菜单或是GRUB的命令环境。这使得用户能够开始操作系统的选择,在内核引导时传递

2、特定指令给内核,或是在内核引导前确定一些系统参数。LILO引导 LILO安装命令(/sbin/lilo)读取其配置文件(/etc/lilo.conf),按照其中的参数将特定的LILO写入系统引导区。启动安全设置LILO引导、GRUB引导的单用户模式 引导启动后出现boot:提示时,使用一个特殊的命令,如 linuxsingle或linux 1,就能进入Linux单用户模式(Single-User mode)。 单用户模式的用户拥有root权限,其进入系统后,可编辑/etc/passwd 文件,去掉root一行中的x 即可在下次登录时无需密码使用root帐户。 启动安全设置LILO引导单用户模式

3、的口令设置添加密码设置权限改变属性编辑配置文件lilo.conf(vim /etc/lilo.conf ) 因为 /etc/lilo.conf文件中包含明文密码 所以要把它设置成root权限读取。 # chmod 600 /etc/lilo.conf 防止root误操作,可使/etc/lilo.conf文件 属性变为不可改,并更新LILO。 # chatter +i /etc/lilo.conf # /sbin/lilo -v 启动安全设置Grub引导的口令设置进入GRUB编辑模式生成MD5密码写入配置文件 启动系统后出现GRUB引导画面,按键进入命令行方式输入md5crypt将加密的密码添加

4、到/boot/grub/grub.conf中的password一行目录帐户安全设置2日志安全设置4启动安全设置31系统安全设置33帐户安全设置嵌入式认证模块-PAM介绍 PAM(Pluggable Authentication Modules )是由Sun提出的一种认证机制。它通过提供一些动态链接库和一套统一的API,将系统提供的服务和该服务的认证方式分开,使得系统管理员可以灵活地根据需要给不同的服务配置不同的认证方式而无需更改服务程序,同时也便于向系统中添加新的认证手段。 PAM最初是集成在Solaris中,目前已移植到其它系统中,如Linux、SunOS、HP-UX 9.0等。帐户安全设置

5、嵌入式认证模块-PAM介绍帐户安全设置PAM支持的四种管理方式认证管理(authentication management)主要是接受用户名和密码,进而对该用户的密码进行认证,并负责设置用户的一些秘密信息。帐户管理(account management)主要是检查帐户是否被允许登录系统,帐号是否已经过期,帐号的登录是否有时间段的限制等等。密码管理(password management)主要是用来修改用户的密码。会话管理(session management)主要是提供对会话的管理和记账(accounting)。帐户安全设置PAM的文件/usr/lib/libpam.so.* PAM核心库/e

6、tc/pam.d/ PAM配置文件/lib/security/pam_*.so 可动态加载的PAM服务模块Pam_unix.so 该模块的主要功能是禁止为密码为空的用户提供服务Pam_permit.so 总是无条件地使认证成功Pam_deny.so 总是无条件地使认证失败,通常该模块被用来作为缺省的验证规则Pam_cracklib.so 该模块对用户密码提供强健性检测帐户安全设置PAM的配置/etc/pam.d/目录下的每个文件的名字对应服务名 例如ftp服务对应文件/etc/pam.d/ftp如果名为xxxx的服务所对应的配置文件 /etc/pam.d/xxxx不存 在,则该服务将使用默认的

7、配置文件/etc/pam.d/other帐户安全设置PAM的配置每个文件由如下格式的文本行所构成:module-type control-flag module-path argumentsmodule-type 模块类型有四种:auth、account、session、password,即对应PAM所支持的四种管理方式。同一个服务可以调用多个 PAM模块进行认证,这些模块构成一个stack。control-flag 用来告诉PAM库该如何处理与该服务相关的PAM模块的成功或失败情况。它有四种可能的值:required,requisite,sufficient,optional。module-

8、path 用来指明本模块对应的程序文件的路径名,一般采用绝对路径,如果没有给出绝对路径,默认该文件在目录/usr/lib/security下 面。arguments 是用来传递给该模块的参数帐户安全设置PAM的配置required:表示即使某个模块对用户的验证失败,也要等所有的模块都执行完毕,PAM才返回错误信息。这样做是为了不让用户知道被哪个模块拒绝。如果对用户验证成功,所有的模块都会返回成功信息。requisite:如果特定的模块对用户的验证失败,PAM马上返回一个错误信息,把控制权交回应用程序,不再执行其他模块进行验证。sufficient:表示如果一个用户通过这个模块的验证,PAM结构

9、就立刻返回验证成功信息,把控制权交回应用程序。后面的层叠模块即使使用requisite或者required控制标志,也不再执行。如果验证失败,sufficient的作用和optional相同。optional:表示即使本行指定的模块验证失败,也允许用户享受应用程序提供的服务。使用这个标志,PAM框架会忽略这个模块产生的验证错误,继续顺序执行下一个层叠模块。control-flag 的四种取值帐户安全设置PAM的实例演示实例描述启用PAM修改配置Linux-PAM控制用户安全登录:1:只允许root用户本地登录;2:只允许用户paul从159.226.8网段远 程登录;3:其他用户均不许登录系统

10、。目录帐户安全设置2日志安全设置4启动安全设置31系统安全设置33系统安全设置关闭多余服务应用 查看/etc/inetd.conf文件,通过注释取消所有你不需要的服务(在该服务项目之前加一个#)。然后用sighup命令升级inetd.conf文件。 第一步: 更改/etc/inetd.conf权限为600,只允许root来读写该文件。 #chmod600/etc/inetd.conf第二步: 编辑“/etc/inetd.conf”文件,取消下列服务(你不需要的):ftp,telnet,shell,login,exec,talk,ntalk,imap,pop-2,pop-3,finger,aut

11、h等等。 系统安全设置建议只保留以下服务:系统安全设置关闭多余服务应用第四步: 给inetd进程发送一个HUP信号: #killall-HUPinetd 第五步: 用chattr命令把/etc/inetd.conf文件设为不可修改,这样就没人可以修改它: # chattr+i/etc/inetd.conf 这样可以防止对inetd.conf的任何修改。唯一可以取消这个属性的人只有root。如果要修改inetd.conf文件,首先要是取消不可修改性质: #chattr-i/etc/inetd.conf 限制用户通过su命令改变为root用户 系统安全设置su(SubstituteUser替代用户

12、)命令允许当前用户成为系统中其他已存在的用户。如果不希望任何人通过su命令改变为root用户或对某些用户限制使用su命令,可以在su配置文件(在/etc/pam.d/su目录下)的开头添加下面两行: #vi/etc/pam.d/su authsufficient/lib/security/pam_rootok.sodebug authrequired/lib/security/Pam_wheel.sogroup=wheel 这表明只有“wheel”组的成员可以使用su命令成为root用户。接着可以把用户添加到“wheel组,以使它可以使用su命令成为root用户。 Telnet 服务的设定系统

13、安全设置一、开启Telnet服务编辑 /etc/xinetd.d/telnet#vi /etc/xinetd.d/telnet找到 disable = no=此项控制服务的开启与关闭重启服务telnet 是挂在 xinetd 底下的,所以需要重新激活 xinetd 就能够将 xinetd 里头的设定重新读进来,所以刚刚设定的 telnet 自然也就可以被激活。# service xinetd restart系统安全设置Telnet 服务的设定二、设置Telnet服务端口#vi /etc/services进入编辑模式后查找telnet会找到如下内容:telnet 23/tcp将23修改成未使用的

14、端口号(如:2000),退出vi,重启telnet服务,telnet默认端口号就被修改了。系统安全设置Telnet 服务的设定 为保证更安全的Telnet服务应用,可修改其默认配置值,满足实际的应用情况。 假设一部Linux 主机,有两块网络接口,分别是对内 与对外的 这两个,如果你想要让对内的接口限制较松,而对外的限制较严格,可以这样的来设定:系统安全设置Telnet 服务的设定#vi /etc/xinetd.d/telnet# 先针对对外限制来设定:service telnet disable= no =预设就是激活 telnet 服务bind = =只允许经由这个适配卡的封包进来only

15、_from = /24=只允许 /24 这个网段的主机联机进来使用 telnet 的服务.# 再针对内部的联机来进行限制service telnetdisable = no=预设就是激活 telnet 服务bind = =只允许经由这个适配卡的封包进来only_from = /16=只允许 55 这个网段联机进来使用 telnet 的服务only_from = .=重复设定,只有科技网用户才能联机no_access = 0,26=不许这些 PC 登入access_times= 1:00-9:00 20:00-23:59 =每天只有这两个时段开放服务.系统安全设置FTP服

16、务的设定# vi /etc/vsftpd/vsftpd.confanonymous_enable=no 是否允许匿名用户登录anonymous_enable=no 是否允许匿名上传文件local_enable= YES 是否允许本地用户登录write_enable= no 是否允许本地用户上传guest_enable=yes 是否允许虚拟用户登录;local_mask=022 设置本地用户的文件生成掩码为022,默认值为077dirmessage_enable= YES 设置切换到目录时显示.message隐含文件的内容xferlog_enable= YES 激活上传和下载日志connect_

17、from_port_20=YES 启用FTP数据端口连接pam_service_name=vsftpd 设置PAM认证服务的配置文件名称, 该文件存放在/etc/pam.d目录下userlist_enable= no 允许vsftpd.user_list文件中的用户访问服务器userlist_deny= YES 拒绝vsftpd.user_list文件中的用户访问服务器listen= no 是否使用独占启动方式(这一项比较重要)tcp_wrappers= YES 是否使用tcp_wrappers作为主机访问控制方式ftpd_banner= 设置连接服务器后的欢迎信息idle_session_t

18、imeout=60 限制远程的客户机连接后,所建立的控制连接,在多长时间没有做任何的操作就会中断(秒)data_connection_timeout=120 设置客户机在进行数据传输时,设置空闲的数据中断时间accept_timeout=60 设置在多长时间后自动建立连接connect_timeout=60 设置数据连接的最大激活时间,多长时间断开,为别人所使用;max_clients=200 指明服务器总的客户并发连接数为200max_per_ip=3 指明每个客户机的最大连接数为3local_max_rate=50000(50kbytes/sec)系统安全设置Sudo “Sudo” 是Un

19、ix/Linux平台上的一个非常有用的工具,它允许系统管理员分配给普通用户一些合理的“权利”,让他们执行一些只有超级用户或其他特许用户才能完成的任务。 例如:运行一些像mount,halt,su之类的命令,或者编辑一些系统配置文件,像/etc/mtab, /etc/samba/smb.conf等。这样以来,就不仅减少了root用户的登陆次数和管理时间,也提高了系统安全性。 系统安全设置Sudo sudo的配置都记录在/etc /sudoers文件中。配置文件指明哪些用户可以执行哪些命令。在sudoers文件中的基本配置格式用户 主机名列表=命令程序列表rootlocalhost # grep

20、root /etc/sudoersroot ALL=(ALL) ALL被授权的用户在哪些主机中使用允许执行哪些命令针对root用户的sudo配置特例允许以哪些用户的身份执行命令,缺省为root系统安全设置Sudo 配置实例需求描述:允许用户Tom通过sudo执行/sbin、/usr/bin目录下的所有命令,但是禁止调用ifconfig、vim命令授权Paul组的用户不需验证密码即可执行所有命令rootlocalhost # visudoDefaults logfile=/var/log/sudoTom localhost=/sbin/*,/usr/bin/*,!/sbin/ifconfig ,

21、!/usr/bin/vim% Paul ALL=(ALL) NOPASSWD: ALL目录帐户安全设置2日志安全设置4启动安全设置31系统安全设置33日志安全设置Linux系统的日志文件的配置配置文件/etc/syslog.conf,可编辑此文件让日志系统记录更多信息,编辑后需重启/usr/sbin/syslogd进程,重读取配置文件。两个重要的日志文件:utmp保存本地系统日志wtmp保存登录其它系统时日志。设置utmp和wtmp文件权限,确保日志系统安全#chmod 644 /ver/log/wtmp#chmod 644 /ver/run/utmp日志安全设置Linux系统的日志文件的配置

22、设置日志配置文件: vi /etc/syslog.conf/etc/syslog.conf文件中的一项配置记录由“选项”(selector)和“动作”(action)两个部分组成,两者间用tab制表符进行分隔(使用空格间隔是无效的)。 类型.级别 ;类型.级别 TAB 动作 例如:*.err;kern.debug;daemon.notice;mail.crit TAB /var/adm/messages 这行中的“action”就是/var/adm/messages文件,输出到它的信息源头“selector”是: *.err - 所有的一般错误信息; kern.debug - 核心产生的调试信息; daemon.notice - 守护进程的注意信息; mail.crit - 邮件系统的关键

温馨提示

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

评论

0/150

提交评论