当前位置: 首页 > news >正文

Linux基础 - 系统安全(SELinux与Firewalld)

‍‍🏡博客主页:  Passerby_Wang的博客_CSDN博客-系统运维,云计算,Linux基础领域博主

🌐所属专栏:『Linux基础』

🌌上期文章:  Linux基础-日志管理

📰如觉得博主文章写的不错或对你有所帮助的话,还望大家多多支持呀! 关注、点赞、收藏、评论。

目录

一、SELinux概述

二、SELinux的运行模式

1、三种模式

2、相关命令

1)查询

2)切换模式

3、实例

1)查询

2)切换

三、Firewalld概述

四、防火墙体系

1、介绍

2、预设安全区域

1)根据所在的网络场所区分,预设保护规则集

2)配置规则的位置

3、查看防火墙规则列表

1)命令

2)实例

4、指定默认的安全区域

1)命令

2)实例

5、管理方式

1)网段管理

2)服务管理

3)端口管理


一、SELinux概述

        SELinux全称“Security-Enhanced Linux”,是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统。NSA是在Linux社区的帮助下开发了一种访问控制体系,SELinux体系针对用户、进程、目录和文件提供了预设的保护策略,以及管理工具。

二、SELinux的运行模式

1、三种模式

Enforcing(强制)

Permissive(宽松) 

Disabled(彻底禁用)

2、相关命令

1)查询

getenforce

2)切换模式

临时切换:setenforce 1|0 (1代表Enforcing,0代表Permissive)

永久配置:/etc/selinux/config文件

3、实例

1)查询

[root@wangwu ~]# getenforce

Enforcing

2)切换

临时切换

[root@wangwu ~]# setenforce 0

[root@wangwu ~]# getenforce

Permissive
[root@wangwu ~]# setenforce 1

[root@wangwu ~]# getenforce

Enforcing

永久配置

[root@wangwu ~]# cat /etc/sysconfig/selinux

# This file controls the state of SELinux on the system.

... ... ...

SELINUX=enforcing

... ... ...

SELINUXTYPE=targeted
[root@wangwu ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux

[root@wangwu ~]# cat /etc/sysconfig/selinux                                    

# This file controls the state of SELinux on the system.

... ... ...

SELINUX=disabled

... ... ...

SELINUXTYPE=targeted
[root@wangwu ~]# reboot

[root@wangwu ~]# getenforce

Disabled

三、Firewalld概述

        RHEL 7系统中集成了多款防火墙管理工具,其中firewalld全称“Dynamic Firewall Manager of Linux systems”,是Linux系统的动态防火墙管理器,服务是默认的防火墙配置管理工具,它拥有基于CLI(命令行界面)和基于GUI(图形用户界面)的两种管理方式。

四、防火墙体系

1、介绍

系统服务:firewalld

管理工具:firewall-cmd、firewall-config

2、预设安全区域

1)根据所在的网络场所区分,预设保护规则集

区域

描述

block(限制)

任何接收的网络连接都被IPv4的icmp-host-prohibited信息和IPv6的icmp6-adm- prohibited 信息所拒绝

dmz(非军事区)

用于非军事区内的电脑,此区域内可公开访问,可以有限地逬入您的内部网络,仅仅接收经过选择的连接

drop(丟弃)

任何接收的网络数据包都被丟弃,没有任何回复,仅能有发送出去的网络连接

external(外部)

特别是为路由器启用了伪装功能的外部网,您不能信任来自网络的其他计算,不能相信它们不会对您的计算机造成危害,只能接收经过选择的连接

home(家庭)

用于家庭网络,您可以基本信任网络内的其他计算机不会危害您的计算机,仅仅接收经过选择的连接

internal(内部)

用于内部网络,您可以基本上信任网络内的其他计算机不会威胁您的计算机,仅仅接受经过选择的连接

public(公共)

在公共区域内使用,不能相信网络内的其他计算机不会对您的计算机造成危害,只能接收经过选取的连接

trusted(信任)

可接受所有的网络连接

work(工作)

用于工作区,您可以基本相信网络内的其他电脑不会危害您的电脑,仅仅接收经过选择的连接

2)配置规则的位置

运行时(runtime)

永久(permanent)

3、查看防火墙规则列表

1)命令

firewall-cmd --list-all #显示当前区域的网卡配置参数、资源、端口以及服务等信息

firewall-cmd --list-all-zones #显示所有区域的网卡配置参数、资源、端口以及服务等信息

firewall-cmd --list-all [--zone=区域名] #显示指定区域的网卡配置参数、资源、端口以及服务等信息

firewall-cmd --get-zones #查询默认的区域名称

firewall-cmd --get-services #显示预先定义的服务

firewall-cmd --get-default-zone #查询默认的区域名称

2)实例

[root@wangwu ~]# firewall-cmd --list-all

public (active)

  target: default

  icmp-block-inversion: no

... ... ...
[root@wangwu ~]# firewall-cmd --list-all-zones

block

  target: %%REJECT%%

  icmp-block-inversion: no

... ... ...

dmz

  target: default

  icmp-block-inversion: no

... ... ...

drop

  target: DROP

  icmp-block-inversion: no

... ... ...

external

  target: default

  icmp-block-inversion: no

... ... ...

home

  target: default

  icmp-block-inversion: no

... ... ...

internal

  target: default

  icmp-block-inversion: no

... ... ...

public (active)

  target: default

  icmp-block-inversion: no

... ... ...

trusted

  target: ACCEPT

  icmp-block-inversion: no

... ... ...

work

  target: default

  icmp-block-inversion: no

... ... ...
[root@wangwu ~]# firewall-cmd --list-all --zone=public

public (active)

  target: default

  icmp-block-inversion: no

... ... ...
[root@wangwu ~]# firewall-cmd --get-zones

block dmz drop external home internal public trusted work
[root@wangwu ~]# firewall-cmd --get-services

RH-Satellite-6 amanda-client ... ... ... xmpp-server
[root@wangwu ~]# firewall-cmd --get-default-zone

public

4、指定默认的安全区域

1)命令

使用“firewall-cmd --set-default-zone=区域名”,针对“运行时/永久配置”均有效

2)实例

[root@wangwu ~]# firewall-cmd --get-default-zone #默认为public,限制较严格

public

[root@wangwu ~]# firewall-cmd --set-default-zone=trusted

success

#对于开放式环境,建议将默认区域修改为trusted

[root@wangwu ~]# firewall-cmd --get-default-zone #修改成功

trusted

5、管理方式

1)网段管理

命令

firewall-cmd --permanent --zone=区域 --add-source=网段地址

实例

[root@wangwu ~]# firewall-cmd --permanent --zone=block --add-source=192.168.6.0/24

#添加192.168.6.0网段到限制区域(block),针对“永久配置”,需添加 --permanent

[root@wangwu ~]# firewall-cmd --reload

#在不改变状态的条件下重新加载防火墙

2)服务管理

命令

firewall-cmd --permanent --zone=区域 --add-service=服务名

实例

[root@wangwu ~]# firewall-cmd --permanent --zone=public --add-service=http

#添加http服务到公共区域(public)

[root@wangwu ~]# firewall-cmd --reload

#在不改变状态的条件下重新加载防火墙

3)端口管理

命令

firewall-cmd --permanent --add-port=端口/协议

实例

firewall-cmd --permanent --add-port=8080/tcp

#永久打开8080/TCP端口

相关文章:

  • 学完这份“顶级”SpringCloudAlibaba笔记,微服务竟如此简单
  • Spring注解驱动开发及源码解析
  • 2.1RDB、AOF及混合持久化详解Redis持久化
  • matlab基于PID反馈的主动隔振效果仿真分析
  • 力扣记录:Hot100(8)——253-322
  • 模板 cdq分治解三维偏序
  • C++/Qt音视频通话开发MetaRTC源码解读,coturn穿透stun的使用
  • Spring读取配置文件
  • MySQL进阶第八天——innodb引擎
  • Easy Yapi插件使用详情
  • 迪士尼这部影片让我看到了AR观影的未来
  • FPGA学习笔记(二)Verilog初步入门
  • vue使用pinia (vue2/vue3)
  • 在社区运营中,积分消耗渠道有哪些
  • 迭代法(2)
  • [译]前端离线指南(上)
  • CSS相对定位
  • JavaScript DOM 10 - 滚动
  • JavaScript对象详解
  • Python - 闭包Closure
  • SpringBoot 实战 (三) | 配置文件详解
  • webgl (原生)基础入门指南【一】
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 初识MongoDB分片
  • 从PHP迁移至Golang - 基础篇
  • 从零开始在ubuntu上搭建node开发环境
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 巧用 TypeScript (一)
  • 使用API自动生成工具优化前端工作流
  • 思考 CSS 架构
  • 我的zsh配置, 2019最新方案
  • 系统认识JavaScript正则表达式
  • 一道面试题引发的“血案”
  • 在Unity中实现一个简单的消息管理器
  • Hibernate主键生成策略及选择
  • 阿里云服务器如何修改远程端口?
  • (27)4.8 习题课
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (七)Knockout 创建自定义绑定
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (实战篇)如何缓存数据
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly DetectionRecommender Systems...
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes
  • .NET Core中的去虚
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .NET MVC、 WebAPI、 WebService【ws】、NVVM、WCF、Remoting
  • .net on S60 ---- Net60 1.1发布 支持VS2008以及新的特性
  • .NET 常见的偏门问题
  • .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化
  • .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型