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

Posted Passerby_Wang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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端口

以上是关于Linux基础 - 系统安全(SELinux与Firewalld)的主要内容,如果未能解决你的问题,请参考以下文章

Linux selinux 基础

linux基础学习14

Linux 基础优化与安全总结

Linux(RadHat)基础学习—了解SELinux

Selinux聚合链路IPV6防火墙基础

SELinux入门基础