概述SELinux,全称Security-Enhanced Linux,是一个为零碎提供强制访问控制机制的平安模块,装置并启用SELinux模块的操作系统会为每个过程和系统资源打上一个非凡的平安标记,称为SELinux上下文,并依据SELinux上下文信息以容许或回绝拜访行为。
亚马逊云科技开发者社区为开发者们提供寰球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、流动与比赛等。帮忙中国开发者对接世界最前沿技术,观点,和我的项目,并将中国优良开发者或技术举荐给寰球云社区。如果你还没有关注/珍藏,看到这里请肯定不要匆匆划过,点这里让它成为你的技术宝库!依据国家网络安全等级爱护根本要求,第三级零碎在平安计算环境层面“应答重要主体和客体设置平安标记,并管制主体对有平安标记信息资源的拜访”,因而须要通过国家等保三级测评的零碎均须要在零碎内开启SELinux。
注:亚马逊官网零碎镜像Amazon Linux 2022已默认开启了Enforcing策略的SELinux。
随着SELinux的利用越来越宽泛,由SELinux配置不当导致的系统故障也随之增多,重大状况下可能导致系统启动失败,本文先从如何紧急复原SELinux故障的EC2主机动手,而后围绕 SELinux常见三大问题本源之一的“标签故障”,介绍在AWS上进行故障排查的办法及思路。
EC2紧急复原的两种办法EC2串行控制台拜访如果故障主机满足串行控制台拜访前置条件,并且启用了串行控制台拜访,则能够间接应用EC2串行控制台拜访进行紧急复原以及故障排查,串行控制台不要求您的EC2实例具备任何联网性能。应用串行控制台,您能够向实例输出命令,就像键盘和显示器间接连贯到实例的串行端口一样。串行控制台会话在实例重启和进行期间继续。在重新启动期间,您能够从一开始就查看所有启动音讯。串行控制台默认未启用,须要明确受权当前方可应用,具体方法如下:
1、授予账户可执行串行控制台的权限,倡议的IAM策略如下:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:GetSerialConsoleAccessStatus", "ec2:EnableSerialConsoleAccess", "ec2:DisableSerialConsoleAccess" ], "Resource": "*" } ]}配置此策略后,账户将能够在连贯EC2实例时,看到“EC2串行控制台拜访”的选项,初始默认为“禁止”,须要点击“治理”,设置为“容许”,结束,账号即可对EC2进行串行控制台拜访.
2、在串行控制台登陆EC2服务器前,咱们还须要为EC2建设容许在串行控制台应用明码登陆的用户及口令。应用默认的SSH形式近程登录EC2服务器,登录当前应用passwd设定明码,上面应用root为例:
[ec2-user ~]$ sudo passwd root 3、禁用SELinux以进行紧急复原,对于因SELinux导致的系统故障,咱们能够先禁用SELinux以进行紧急复原及故障排查。串行控台登录服务器当前,间接批改 /etc/selinux/config 并将SELINUX=disabled,而后重启服务器,即可失效。
救济实例对于不反对串行控制台拜访的服务器,或反对但后期未启用的,咱们还能够应用救济实例对SELinux故障主机进行紧急复原。具体操作如下:
在Virtual Private Cloud (VPC)中启动新的Amazon EC2实例,且应用与受损实例雷同的 Amazon零碎映像 (AMI)并与其位于同一可用区中。新实例将成为您的“救济”实例。或者,也能够应用您能够拜访的现有实例,但前提是该实例应用与受损实例雷同的 AMI,并且二者位于同一可用区中.从受损实例中拆散Amazon Elastic Block Store (Amazon EBS)根卷(/dev/xvda 或/dev/sda1)。记下设施名称,以确保稍后从新连贯时它是雷同的将EBS卷作为辅助设施(/dev/sdf)附加到救济实例。应用SSH连贯到您的救济实例。成为根用户,应用lsblk 标识正确的设施名称,而后将其保留以在整个过程中应用:$ sudo -i# lsblk# rescuedev=/dev/xvdf1留神:设施(/dev/xvdf1)可能会以不同的设施名称附加到救济实例。应用 lsblk 命令查看可用磁盘设施及其挂载点,以确定正确的设施名称。
6、抉择要应用的适当长期挂载点,并确保它存在,请应用/mnt,除非该挂载点已在应用
# rescuemnt=/mnt# mkdir -p $rescuemnt7、从附加的卷挂载根文件系统:# mount $rescuedev $rescuemnt留神:如果卷挂载失败,请查看 dmesg | tail。如果日志显示 UUID 抵触,请应用选项 -o nouuid。
...