文章目录
🛥️一、SELinux安全机制
🍖1.1 SELinux概述
- Security-Enhance Linux
由美国NSA国家安全局主导研发,是一套增强Linux系统安全的强制访问控制体系;集成到Linux内核(2.6及以上)中运行;SELinux体系针对用户、进程、目录和文件提供提供了预设的保护策略和管理工具。
🥩2.2 SELinux的运行模式
- SELinux三种运行模式
enforce(强制)、permissive(宽松)、disable(禁止)
- 切换运行模式
getenforce
:查看当前的运行模式
setenforce 0 | 1
:临时切换运行模式为permissive | enforce
配置文件: /etc/selinux/config
,将配置文件里面的 "SELINUX=模式"修改掉,重启即可永久的修改
注意:任意模式修改成 disable 模式都需要经理重启才能生效
✈️二、系统故障修复
🍖2.1 遗忘root密码
如果我们不慎忘记了root的密码,也不用担心,我们可以以root的身份破解密码,具体步骤如下:
重启
进入恢复模式(救援模式)
在开机界面按 e 键
- 在
“Linux16”
这行,将 r/o 修改成 r/w ,然后顺着在后面加入rd.break
,或者在本行末尾加入也可以 - 按住
ctrl + x
启动,如果看到 switch.root:/# 则代表一切正常 - 输入
chroot /sysroot
,切换到硬盘操作系统 - 重新设置 root 密码,这里使用
非交互式设置密码
如果SELinux处于强制模式且不允许修改,则 touch /.autorelabel 让SELinux失忆
如果SELinux处于强制模式并允许修改,则修改 /etc/selinux/config 修改允许模式为宽松 reboot -f
强制重启系统即可
🥩2.2 开机自动挂载配置文件书写错误
- 按照引导进入修复模式,输入root密码。修改 /etc/fstab 文件内容,重启即可
🚀三、防火墙策略管理
🍖3.1 防火墙体系
- 作用:隔离,严格过滤入站,放行出站
硬件防火墙
软件防火墙 - 系统服务:
firewalld
---->iptables(底层防火墙) - 管理工具:
firewall-cmd
、firewall-config
🥩3.2 预设安全区域
- 根据所在网络场所区分,预设保护规则集
public
:仅允许访问本机的ssh、dhcp、ping服务
trusted
:允许任何的访问
block
:拒绝任何访问,明确拒绝客户端,给予客服端回应
drop
:丢弃任何来访的数据包,不给予客户端回应,导致客户端一直重传,不推荐这种方式拒绝
🥓3.3 防火墙判定原则
- 查看客户端请求中的源IP地址,查看自己所有区域中的规则,看哪个区域有该源IP地址规则,如果有,则进入该区域
- 如果都没有,那么进入默认区域,默认区域为 public 区域
🍣3.4 修改防火墙默认区域
- 查看防火墙默认区域
格式:firewall-cmd --get-default-zone
- 修改默认区域
格式:firewall-cmd--set-default-zone=区域类型
🍡3.5 临时向public区域中添加规则
- 查看区域中的规则
格式:firewall-cmd --zone=public --list-all
- 向区域中添加规则
格式:firewall-cmd --zone=public --add-service=http
该条命令是向public区域中添加一项http服务,允许该区域中的http服务
🍟3.6 永久向public区域中添加规则
- 利用的是
-permanent
选项 - 向 public 中添加永久规则
格式:firewall-cmd --permanent --zone=public --add-service=http
- 永久删除规则
格式:firewall-cmd --permanent --zone=public --remove-service=http
- 重新加载规则
添加永久规则后,必须重新加载规则,忘记临时的规则
格式:firewall-cmd --reload
🍝3.7 防火墙单独拒绝某台 pc 的所有访问
- 拒绝访问
格式:firewall-cmd --zone=block --add-source=192.168.88.2
这样操作后,IP地址为 192.168.88.2 的主机就不能访问本服务器,但实际上服务器只是单独拒绝了这个IP,只需要客户端再修改有个IP即可再次访问 - 删除策略
格式:fierwall-cmd --zone=block --remove-source=192.168.88.2
以上所有的操作都是临时的,并不是永久的,如果设置永久则需要加上 --permanent 选项
🛰️四、服务管理
🍖4.1 运行程序的方法
- 正常情况下,我们要运行程序,第一反应都是直接找到可执行程序的路径,以绝对路径的方式直接运行,但是这样不方便,不专业,我们采取另外一种方法来运行程序
- 采用
systemd 方式
运行
一个更加高效的系统&服务管理器;
开机服务并行启动,各系统服务间的精确依赖;
服务配置文件:/lib/systemd/system/
,该目录下记录着所有能够用 systemd 方式运行的服务配置文件;
主要管理工具:systemctl
🥩4.2 systemctl 命令的使用
- 列出活动服务:systemctl -t service
- 列出所有服务:systemctl -t service --all
- 重启服务:systemctl restart 服务名
- 开启服务:systemctl start 服务名
- 停止服务:systemctl stop 服务名
- 查看当前服务状态:systemctl status 服务名
- 设置开机自启:systemctl enable 服务名
- 禁止开机自启:systemctl disable 服务名
- 查看是否开机自启:systemctl is-disabled 服务名
🥓4.3 管理运行级别
🍿4.3.1 RHEL6
只有RHEL6有运行级别这个概念
,系统总共300个服务
0:关机 0个服务
1:单用户模式(基本功能的实现,破解Linux密码) 50个服务
2:多用户字符界面(不支持网络) 80个服务
3:多用户字符界面(支持网络)服务器默认运行级别 100个服务
4:未定义 0个服务
5:图形界面 300个服务
6:重起 0个服务
切换运行级别:init 数字
🍟4.3.2 RHEL7
-
RHEL7:运行模式
(运行级别)
字符模式:multi-user.target
图形模式:graphical.target -
当前直接切换到字符模式
格式:systemctl isolate multi-user.target
#相当于原来的init 3 -
当前直接切换到图形模式
格式:systemctl isolate graphical.target
#相当于原来的init 5 -
查看每次开机默认进入模式
格式:systemctl get-default
-
设置永久策略,每次开机自动进入字符模式
格式:systemctl set-default multi-user.target