• 【Linux篇<Day14>】——SELinux、破解root密码、防火墙firewall、服务管理systemd



    在这里插入图片描述

    一份微语报,众览天下事!
    【今日要闻】
    滴滴宣布:推进在美退市流程
    【今日微语】
    兴趣是最好的导师
    如果有喜欢的东西
    一定加倍努力为之奋斗

    让我们进入今天的学习吧!
    💪Keep  trying💪

    在这里插入图片描述

    在这里插入图片描述

    🛥️一、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


             👆回到顶部👆

    在这里插入图片描述

  • 相关阅读:
    【C++】模板(初级)
    教你学会Element之Upload 上传组件的常规用法
    Kafka集群搭建与实操笔记(伪分布式)
    HTML做一个简单漂亮的宠物网页(纯html代码)
    CDH大数据平台 ModuleNotFoundError: No module named ‘MySQLdb‘
    面试经典150题——Day22
    【STL巨头】set、map、multiset、multimap的介绍及使用
    苹果证书分类及作用详解,助力开发者高效管理应用程序
    应用发布新版本如何保障流量无损
    OpenCV11-图像的模版匹配
  • 原文地址:https://blog.csdn.net/qq_41890240/article/details/124927572