####selinux的初级管理

1.概念

selinux:内核级加强型防火墙

 

2.如何管理selinux级别

selinux开启或者关闭

vim /etc/sysconfig/selinux

selinux=disabled##关闭状态

selinux=Enforcing##强制状态

selinux=Permissive##警告状态

说明:

关闭状态:selinux不干扰任何进程

强制状态:selinux开启

警告状态:selinux开启,对敏感操作发出警告,但不干扰系统进程,让你下次别这样做。

getenforce##查看状态

 

selinux开启时

setenforce 0|1##更改selinux运行级别

说明:0表示警告模式 ,1为强制模式

 

 

3.安全上下文

查看安全上下文:ls -Z

 

a.什么安全上下文

安全上下文时一个简单的,一致的访问控制属性,在selinux中,类型标识符三安全上下文的重要组成部分,由于历史原因,一个进程的类型通常被成为一个域(domain),由于“域”和“”域“的意思都一样,,即都是安全上下文中的”type

b.更改安全上下文的方法(临时更改)

chcon -t 安全上下文文件

chcon -t public_content_t /publicftp -R   ##-R表示第归

 

wKiom1g28pWTpPxsAADGiMan1hI849.png-wh_50

c.永久更改安全上下文

semanage fcontext -l##列出内核安全上下文列表内容

semanage fcontext -a -t public_content_t '/publicftp(/.*)?'

restorecon -FvvR /publicftp/

参数说明:

-i:忽略不存在的文件

-fiffilename文件infilename中记录的要处理的文件

-e:排除目录

-R/-r:递归处理目录

-n:不改变文件标签

-o:保存文件列表到outfilename,在文件不正确的情况下

-v:显示过程到屏幕上

-F:强制恢复文件安全语境

wKioL1g28r_BBsOkAAHp7jBjulw468.png-wh_50

4.如何控制selinux对服务功能的开关

getsebool -a | grep 服务名称

getsebool -a | grep ftp

setsebool -P 功能boolon|off

setsebool -Pftpd_anon_write on   ####此处-P表示永久性,注意P为大写

wKioL1g28uLhwDQzAAHBR05c22o849.png-wh_50

5.监控selinux的错误信息

setroubleshoot-server

 

 

 

###############系统恢复########

 

1.系统启动流程

通电

 ||

bios(主板上的只读存储中,basic input or output system)

作用,硬件检测,激活硬件

||

grub系统引导(grub引导分为两个阶段)

Troublemaker part1

执行:dd if=/dev/zero of=/dev/vda bs=446 count=1

1)阶段1 mbr(主引导记录)主引导记录在硬盘上的0磁道,一扇区,446个字节

 

*dd if=/dev/zero of=/dev/vda bs=446 count=1 可以清空mbr

*)进入到挽救模式,执行chroot /mnt/sysimage切换到真实/环境,

   并执行grub2-install /dev/vda

虚拟机视图如下;

一直卡在从硬盘引导过程中,因为系统开机时,首先读取的是mbrmaster boot record

大小为446个字节。由于我们之前将这个mbr给截取了。系统不知道接下来该读取那里,于是就会卡在这里.

wKioL1g28xvjx-oUAAAt59719Nc463.png-wh_50

解决方法:

将原来的虚拟机强制关机

在虚拟系统管理器中进行如下操作:

1.找到系统盘的原始镜像(pxe网络引导也可以)。添加一个cdrom盘。选择光盘引导

wKioL1g281zhdQXoAAFmc90M8Nc914.png-wh_50


再次开启虚拟机,进入挽救模式

wKiom1g283HBF5cHAABS9vS9kSk531.png-wh_50

一直下一步。

wKioL1g284Hwfv4SAABj-PjnvWA098.png-wh_50

最后到命令行模式:进行如下操作:

Chroot  /mnt/sysimage    ###切换到真实环境

 wKiom1g286ThAA4yAABe2aOhLVw992.png-wh_50

Chroot exit 两次才表示完全退出。然后关闭虚拟机,从硬盘启动

这时经过两次启动之后,系统就恢复好了。

 

2)阶段2 grub文件引导阶段

   找到/boot分区

   读取/boot/grub2/grub.cfg

   文件丢失,grub2-mkconfig >/boot/grub2/grub.cfg

Troublemaker part2

grub文件引导的配置文件在:/boot/grub2/grub.cfg

当我们删除这个文件后:rm -fr /boot/grub2/grub.cfg

在重启之前都可以执行:grub2-mkconfig >/boot/grub2/grub.cfg 重新生成这个文件

 wKioL1g288bjGoA2AAGheRMPv2Y680.png-wh_50wKiom1g28-HiWirOAABToUiamIM093.png-wh_50

重启之后,显示如下界面

 

解决方法:(不用进入挽救模式)

 

 

手动引导grubgrub> set root='hd0,msdos1' grub> linux16 /boot/vmlinuz-3.10.0-123. el7.x86_64 ro root=/dev/vda1

grub> initrd16 /boot/initramfs-3.10.0-123.el7.x86_64.img

grub> boot

 wKiom1g28_yQvD5WAABwZuCdPy4713.png-wh_50

这样问题就解决了

   ||

启动内核,只读挂载/设备

检测设备

对设备驱动进行初始化

进入系统初始化阶段

内核丢失,从新安装内核安装包就可以解决

rpm -ivh kernel-xxxxx.rpm --force

Troublemaker part3 删除内核

执行命令:

Rm -fr /boot/vmlinuz-3.10.0-123. el7.x86_64

解决方法:

关闭故障虚拟机。将引导方式改为光盘引导

再打开虚拟机,进入挽救模式

解决方式如图所示,(重新安装内核,这一方式适用于一切内核故障问题,简单粗暴)

rpm -ivh kernel-xxxxx.rpm --force

 

wKioL1g29ImRhQDnAAB-q7f9L7U677.png-wh_50

如此以来,系统就恢复了

||

系统初始化阶段

系统初始化阶段加载initrd镜像

开启初始化进程systemd

开始selinux

加载内核参数

初始化系统时钟,键盘,主机名称

重新读写挂载/设备

激活raidlvm

激活配额

Troublemaker part4 initrd镜像缺失

rm -fr /boot/initramfs-3.10.0-123.el7.x86_64.img

解决方法:

关闭虚拟机,进入挽救模式

执行如下命令:

 wKioL1g29SWQaLqzAAB05Lf9H94444.png-wh_50

 

 

启动multi-user.target.wants中的所有服务

开启虚拟控制台

启动图形

 

图形起不来

解决办法:

wKioL1g29UWgv7rZAAWDikY-sYI009.png-wh_50 

 

 

改密码

在系统启动时按e

进入如下界面

wKiom1g29ZKxnl9NAATRi5irde4108.png-wh_50 

执行ctrl+x

 wKioL1g29arD8er4AAICj6_lgmI768.png-wh_50

手动修改密码即可