Linux-基础教程--系统安全基础.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《Linux-基础教程--系统安全基础.ppt》由会员分享,可在线阅读,更多相关《Linux-基础教程--系统安全基础.ppt(87页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、本章内容要点n基本的系统安全n物理安全和登录安全n禁用root登录和sudon可插拔认证模块(PAM)n基于PAM的口令安全和口令策略n基于PAM的访问控制本章学习目标 n掌握基本的系统安全配置n掌握物理安全和登录安全配置n掌握sudo的配置和sudo命令的使用n理解PAM机制及其执行过程n掌握PAM客户配置文件的语法n学会使用PAM模块增强口令安全n学会使用PAM模块配置访问控制基本的系统安全基本的系统安全基本系统安全n安全的磁盘布局n使用挂装选项提高文件系统的安全性n查找并取消文件/目录的非必要的特殊权限n避免安装不必要的软件包n配置软件包更新的Email通知n关闭不必要的服务n关闭IPv
2、6的内核功能磁盘布局n/目录中必须包括 /etc、/lib、/bin、/sbin,即不能在此四个目录上使用独立的分区或逻辑卷n除了 / 、/boot 和 SWAP 之外您应该根据自己的需要尽量分离数据到不同的分区或逻辑卷n建议创建独立的 /usr、/var、/tmp、/var/tmp 文件系统n根据日志管理需要,您可能应该创建独立的 /var/log、/var/log/audit 文件系统n若所有普通用户数据存储在本机,您还应该创建独立的 /home 文件系统n若系统对外提供大量服务(如Web虚拟主机等),应该创建独立的 /srv 文件系统提高文件系统的安全性n常用如下三个挂装参数提高文件系统
3、的安全性qnoexec:不允许在本分区上执行二进制程序,即防止执行二进制程序但允许脚本执行qnodev:不解释本分区上的字符或块设备,即防止用户使用设备文件qnosuid:不允许在本分区上执行 SUID/SGID 的访问n例如/dev/sda5 /srv/www ext3 defaults,nosuid,nodev,noexec 1 2/dev/sda6 /var/ftp ext3 defaults,nosuid,nodev,noexec 1 2/dev/sda7 /tmp ext3 defaults,nosuid,nodev,noexec 1 2去除非必要的特殊权限n查找系统中权限为SUID
4、/SGID 的文件# find / -xdev ( -perm -4000 -o -perm -2000 ) -lsn查找指定目录/dir下的所有用户可写的设置了粘着位(sticky-bit)的目录 # find /dir -xdev -type d ( -perm -0002 -a ! -perm -1000 ) -ls使用 chmod 命令去除文件或目录的非必要的特殊权限# chmod u-s # chmod g-s# chmod o-t检查重要的文件权限n查找指定目录/dir下的所有用户 可写的文件# find /dir -xdev -type f -perm -0002 -lsn查找指
5、定目录/dir下的非有效用户或有效组的文件# find /dir -xdev ( -nouser -o -nogroup ) -ls使用 chmod 命令修改权限# chmod o-w 使用 chown 命令修改文件属主或组# chown USER:GROUP 避免安装不必要的软件包n在安装过程中仅仅安装必要的软件包n使用如下命令查找、删除不必要的软件包# yum list installed# yum remove PackageNamen通常服务器无需运行X系统,尤其是被托管的服务器。n在系统运行过程中,可以安装需要的软件包# yum install PackageName软件包的更新n保
6、持系统中软件包的更新极为重要q当软件的编制者发现软件的漏洞之后将对其进行修复,修复后的软件包就会发布到相应的yum仓库中n软件包的更新的方法q启用 yum-updated 服务q编写 cron 脚本配置软件包更新的Email通知# vi /etc/yum/yum-updatesd.confmainrun_interval = 3600updaterefresh = 600emit_via = emailemail_to = email_from = dbus_listener = yesdo_update = nodo_download = nodo_download_deps = no# c
7、hkconfig yum-updated on# service yum-updated restart关闭不必要的服务n使用 ntsysv 或 chkconfig 管理工具n可以编写自己的脚本文件关闭不必要的服务#!/bin/bash# /root/bin/stop_services.sh# 请将要停止的服务以空格间隔写入变量stop_servicesstop_services=bluetooth hidd irqbalance rawdevices for i in $stop_services; doecho disabling $ichkconfig $i offdone关闭IPv6的
8、内核功能# echo install ipv6 /bin/true /etc/modprobe.conf# echo /etc/sysconfig/networkNETWORKING_IPV6=noIPV6INIT=no_END_# service network restart# chkconfig ip6tables off# service ip6tables stop物理安全和登录安全n配置GRUB的口令n为单用户模式启用认证n禁用重启热键n为单用户模式启用认证n禁用启动时的交互热键n设置屏幕锁定n为 BASH 设置超时自动注销生成 GRUB 口令nGRUB可以允许用户绕过所有的安全验
9、证而进入单用户模式n管理员应该设置GRUB口令避免修改启动参数从而提供安全性n为GRUB生成MD5口令# grub-md5-cryptPassword:Retype password:$1$WqFGw/$hkFDqkoGxqescpPKVt8/I1启用GRUB配置文件的口令n修改启动参数时需要口令验证qpasswd 配置语句位于全局部分(第一个“title”之前)n进入所选择的系统前需要口令验证qpasswd 配置语句位于引导参数部分(每个“title”部分之后)default=0timeout=5splashimage=(hd0,0)/grub/splash.xpm.gzhiddenmenu
10、password -md5 $1$WqFGw/$hkFDqkoGxqescpPKVt8/I1 # 添加此行title CentOS (2.6.18-194.32.1.el5) root (hd0,0) kernel /boot/vmlinuz-2.6.18-194.32.1.el5 ro root=LABEL=/ initrd /boot/initrd-2.6.18-194.32.1.el5.img password -md5 $1$WqFGw/$hkFDqkoGxqescpPKVt8/I1 # 添加此行为单用户模式启用认证n在 RHEL/CentOS 中默认情况下进入单用户模式无需认证n为了
11、提高安全性启用单用户模式的用户认证# echo “:S:wait:/sbin/sulogin” /etc/inittab# init q禁用重启热键n在 RHEL/CentOS 中默认情况下可以通过键盘热键 + 重启系统n为了提高安全性禁用重启热键# vi /etc/inittab注释如下的行:#ca:ctrlaltdel:/sbin/shutdown -t3 -r now# init q禁用启动时的交互热键nRHEL/CentOS 允许控制台用户在启动过程中通过热键“i”执行交互式启动设置。n为了提高安全性,禁用启动时的交互热键# sed -i s/PROMPT=yes/PROMPT=no/
12、 /etc/sysconfig/init设置屏幕锁定n安装vlock包# yum -y install vlockn使用vlock命令锁定屏幕q锁定当前屏幕:$ vlockq锁定所有已登录的终端会话并禁止虚拟控制台切换:$ vlock -a为 BASH 设置超时自动注销# vi /etc/profile.d/autologout.shTMOUT=300 # 5分钟后超时readonly TMOUTexport TMOUT# chmod +x /etc/profile.d/autologout.sh禁止禁止ROOT账号登录账号登录sudo简介nsudo 允许授权用户以超级用户超级用户或其他用户其
13、他用户身份执行命令qsudo 能限制指定用户在指定主机上运行某些命令q默认情况下,只有root用户可以使用sudo命令nsudo 使用普通用户自己的口令qsudo 是设置了SUID权限位的执行文件nsudo 使用时间戳文件来完成类似“检票”的系统q当用户执行 sudo 时,5分钟分钟 内不用再输入口令n记录所有登录(包括成功的和不成功的登录)q/var/log/secure与sudo相关的文件n/usr/bin/sudo:以其他用户身份执行命令n/etc/sudoers:sudo的配置文件q列出哪(些)个用户在哪个(些)主机上执行哪个(些)命令n/usr/sbin/visudo:用于编辑 su
14、doers 文件q防止两个用户同时进行修改q进行有限的语法检查n/var/run/sudo/目录:包含用户的时间戳文件sudo 的执行过程 n在 /var/run/sudo/$USER目录中查找时间戳文件q若时间戳已过期,提示用户输入自己的口令n若口令输入错误则退出 sudo 的执行n若口令输入正确则继续 sudo 的执行过程q若时间戳未过期,继续 sudo 的执行过程n读取配置文件 /etc/sudoers,判断用户是否具有执行此 sudo 命令的权限q若有权限执行则执行 sudo 后面的命令q若无权执行则退出 sudo 的执行快速配置sudon将所有需要使用sudo的普通用户添加到 whe
15、el组中# usermod -G wheel osmond# usermod -G wheel jasonn配置允许wheel组可以执行sudo命令# visudo/ 删除如下行的注释符,之后保存退出%wheel ALL=(ALL) ALLsu与sudo比较nsuq直接切换为超级用户q普通用户要切换为超级用户必须知道超级用户的口令q适用于系统中只有单个系统管理员的情况nsudoq直接使用 sudo 命令前缀执行系统管理命令q执行系统管理命令时无需知道超级用户的口令q适用于系统中有多个系统管理员的情况n允许 root 为几个用户或组委派权利,使之能运行部分或全部由 root (或另一个)用户执行
16、的命令nsudo 设计者的宗旨宗旨:给用户尽可能少的权限但仍允许完成他们的工作n当然系统只有单单个系统管理员时也也可以使用/etc/sudoers 的配置语法n(Runas)部分可以省略,省略时表示(root)n四个部分均可设置多个项目多个项目,每个项目用逗号间隔逗号间隔。n在User部分使用“%组名”的形式为组中的所有用户授权。n在Cmnd部分q使用NOPASSWD:前缀参数,表示不用输入口令即可执行Cmnd。q使用 ! 前缀前缀表示逻辑非。使用Shell通配符通配符 匹配可以执行的命令。nALL表示所有。以#开始的行为注释行。行末的为续行符。User Host = (Runas) Cmnd
17、被授权的用户被授权的用户在哪些主机中使用在哪些主机中使用允许执行哪些命令允许执行哪些命令可切换可切换为哪些为哪些用户用户/etc/sudoers 的配置语法续n定义四种别名qUser_AliasqHost_AliasqRunas_AliasqCmnd_Aliasn语法n使用别名简化授权User_Alias USER_ALIAS_NAME = user1, user2, .Host_Alias HOST_ALIAS_NAME = host1, host2, .Runas_Alias RUNAS_ALIAS_NAME = runas1, runas2, .Cmnd_Alias COMMAND_AL
18、IAS_NAME = cmnd1, cmnd2, ./etc/sudoers 的配置举例1n专职系统管理员(millert,mikef和dowdy)可以在任何主机上以root用户身份执行任何命令而不需要进行身份验证。User_Alias FULLTIMERS = millert, mikef, dowdyFULLTIMERS ALL = NOPASSWD: ALL/etc/sudoers 的配置举例2n兼职管理员(jalala, sonar和huge)可以在任何主机上以root用户身份运行别名 BROWSE、PROCESSES、USERS 中定义的命令,同时可以修改除了 root 用户之外的所
19、有用户口令。User_Alias PARTTIMERS2 = jalala, sonar , hugeCmnd_Alias BROWSE = /bin/ls, /bin/cd, /bin/catCmnd_Alias PROCESSES = /bin/nice, /bin/kill, /usr/bin/killallCmnd_Alias USERS = /usr/sbin/useradd A-z*,/usr/sbin/userdel -r A-z*PARTTIMERS2 ALL= USERS,PROCESSES,BROWSE, /usr/bin/passwd A-z*, !/usr/bin/pa
20、sswd rootsudo命令n-H : 将环境变量中的$HOME指定为要变更身份的使用者的目录(如不加-u参数就是/root)。n-b : 在后台执行指令。n-u username|#uid :以指定的用户作为新的身份。省略此参数表示以root的身份执行指令。n-i : 模拟一个新用户身份的初始Shell。n-s : 执行环境变量$SHELL所指定的Shell,或是/etc/passwd里所指定的Shell。sudo -V | -h | -k | -l | -vsudo -Hb -u username|#uid -i | -s | sudo命令举例n查看当前用户可以使用sudo执行的命令列表
21、$ sudo -ln进入交互式( interactively)登录,类似“su -”$ sudo -in直接执行授权的命令$ sudo /usr/sbin/useradd otheruser$ sudo /usr/bin/passwd otheruser$ sudo sh -c cd /home ; du -s * | sort -rn USAGE可插拔认证模块(可插拔认证模块(PAM)PAM简介nPAM(Pluggable Authentication Modules)qhttp:/www.kernel.org/pub/linux/libs/pam/index.htmlq本地文档:/usr/
22、share/doc/pam-/nPAM 是一系列被应用程序共享的可配置的动态加载是一系列被应用程序共享的可配置的动态加载的用于用户验证和授权的库文件的用于用户验证和授权的库文件qPAM 将应用程序的验证机制从应用程序中独立出来q应用程序调用PAM来实现用户验证和授权qPAM 独立的模块化实现便于功能扩展和维护qPAM 为认证模块的编制建立了标准的API,以便各应用程序能方便地使用qPAM 验证机制对其上层的应用程序和最终用户都是透明的PAM的组成nPAM由PAM核心和PAM模块组成nPAM核心q负责调用PAM模块q/lib/libpam.sonPAM模块q用于实现各种验证的动态可加载的库文件q
23、对每个 PAM 模块都会执行 通过通过 或 失败失败 的测试qPAM 模块保存在 /lib/security 目录中q一些 PAM 模块需要模块的配置文件,模块配置文件通常保存在 /etc/security 目录下PAM 客户nPAM客户:使用PAM验证功能的应用程序n判断应用程序是否为PAM客户# ldd /bin/login|grep libpamn查询系统已安装的PAM客户# rpm -q -whatrequires libpam.so.0 | grep -v pamnPAM客户配置文件q每个PAM客户都可以调用不同的PAM模块实现验证q决定了PAM模块在什么时候如何被PAM客户使用q保
24、存在 /etc/pam.d 目录下PAM客户调用PAM的过程nPAM客户(如:login)调用PAM核心 /lib/libpam.so nPAM核心收到来自应用程序的请求后在/etc/pam.d目录下查找与应用程序同名的配置文件(如:/etc/pam.d/ login)nPAM核心根据配置文件的设置执行指定的PAM模块q在执行一些模块(如:pam_access)时,还会读取/etc/security目录下相应的模块配置文件(如:/etc/security/access.conf)nPAM核心接收每一个PAM模块的执行结果(或成功或失败),根据PAM模块的返回结果和配置文件的设置决定验证是否通过
25、nPAM核心将最终结果返回给调用它的应用程序,应用程序根据返回结果决定验证是否通过PAM客户的配置文件n/etc/pam.d/*q每个配置文件均使用同样的语法n配置文件中每一行的格式为:模块类型模块类型 控制标记控制标记 模块路径模块路径 执行参数执行参数q模块类型(模块类型(module-type):指定模块的测试类型q控制标记(控制标记(control-flag):决定PAM如何使用模块调用后的返回值q模块路径(模块路径(module-path):指定相对于/lib/security/目录的模块文件名q执行参数(执行参数(module-arguments):指定模块参数,多个参数之间用空格
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linux 基础教程 系统安全 基础
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内