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

Linux基础 - 系统安全(SELinux与Firewalld)_第1张图片

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端口

你可能感兴趣的:(Linux基础,云计算,系统运维,linux,系统安全,SELinux,Firewalld,Liunx基础)