当前位置: 代码迷 >> 综合 >> selinux 系统恢复
  详细解决方案

selinux 系统恢复

热度:37   发布时间:2023-12-15 23:17:40.0

selinux

SELinux全称为Security-Enhanced Linux是美国国家安全局在Linux社区帮助下开发的一个强制访问控制的安全子系统,SELinux属于MAC强制访问控制(Mandatory Access Control)——即让系统中的各个服务进程都受到约束,即仅能访问到所需要的文件。
以本人的亲身经历不得不说国内很多运维人员对SELinux的理解不深,导致该功能在很多服务器中直接被禁用。
模式一: enforcing – 安全策略强制启用模式,将会拦截服务的不合法请求。
模式二: permissive – 遇到服务越权访问只会发出警告而不强制拦截。
模式三: disabled – 对于越权的行为不警告,也不拦截。

getenforce    查看selinux状态
setenforce 0|1
0 permissive    警告状态
1 enforcing    强制状态

vim /etc/sysconfig/selinux
SELINUX=
enforcing    强制模式
permissive    警告模式
disabled    关闭模式


ls -Z         查看安全上下文

修改安全上下文
chcon -t public_content_t /westos
临时修改安全上下文
restorecon -RvvF
刷新安全上下文,临时修改刷新后不生效
semanage fcontext -a -t public_content_rw_t '/westos(/.*)?'
永久修改安全上下文
restorecon -RvvF

刷新后生效

首先创建目录/mnt/westos,并在里面建立文件file{1..3}


然后复制到/var/ftp/pub目录下


getsebool -a | grep ftp

查看布尔值


setsebool -P ftp_home_dir on





系统恢复


通电
bios初始化
grub2磁盘引导阶段
grub2文件引导街道
指定boot所在分区
启动内核,只读挂载/设备
启动init程序进入初始化阶段
启动systemd初始化进程
读取/etc/systemd/中的文件
启动程序
启动登录环境

grub文件引导阶段
由文件/boot/grub2/grub.cfg控制流程
指定/boot分区位置——>加载内核——>启动系统初始化进程——>grub2-mkconfig

内核引导阶段
检测硬件设备——>设备驱动初始化——>将/只读挂载——> 载入初始化进程systemd——>内核文件丢失请重新安装内核

systemd初始化
开启selinux和systemd-tools——>加载内核参数——>加载系统时钟,键盘,主机名称——>读写挂载/文件系统——>激活raid,lvm设备——>激活系统配额——>启动multi-user.target.wants中的所有服务脚本——>启用虚拟控制台——>启动图形

系统启动出错恢复


1.引导程序boot损坏

破坏/dev/vda前446字节引导
dd if=/dev/zero if=/dev/vda bs=446 count=1
selinux状态调整成disabled
开机无法引导系统
关闭虚拟机,加入iso镜像光盘,从光驱启动
Troubleshooting                    系统修复

Rescue a Res Hat Enterprise Linux system    选择挽救模式


1.继续
2.只读挂载
3.跳过shell
4.退出
选择1
chroot /mnt/sysimage
grub2-install /dev/vda

执行两次exit退出从硬盘启动,恢复成功


2.引导文件/boot/grub2/grub.cfg丢失

set root='hd0,msdos1'        根据自己的boot分区
linux16 /vmlinuz-3.10.0-327.el7.x86_64 root=/dev/vda3
initrd16 /initramfs-3.10.0-327.el7.x64_64.img
boot

启动成功后grub2-mkconfig > /boot/grub2/grub.cfg恢复即可



3.内核丢失
vmlinuz-3.10.0-123.el7.x86_64
从光盘启动进入挽救模式
cd /mnt/sysimage/mnt
rpm2cpio /run/install/repo/Packages/kerner... | cpio -id
cd boot
cp vmlinuz-3.10.0-123.el7.x86_64 /mnt/sysimage/boot/

从硬盘启动,启动成功即可



4.初始化文件丢失
initramfs-3.10.0-123.el7.x86_64.img
从光盘启动进入挽救模式
chroot /mnt/sysimage
mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)

执行两次exit,从硬盘启动成功即可



5.boot分区丢失

选择从光驱启动进入挽救模式



6.闪退

从光盘启动进入挽救模式
chroot /mnt/sysimage
cp /bin/bash /mnt/sysimage/bin/bash
exit退出即可