Linux基础 - 系统安全(SELinux与Firewalld)
Posted Passerby_Wang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux基础 - 系统安全(SELinux与Firewalld)相关的知识,希望对你有一定的参考价值。
🏡博客主页: Passerby_Wang的博客_CSDN博客-系统运维,云计算,Linux基础领域博主
🌐所属专栏:『Linux基础』
🌌上期文章: Linux基础-日志管理
📰如觉得博主文章写的不错或对你有所帮助的话,还望大家多多支持呀! 关注、点赞、收藏、评论。
目录
一、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)的主要内容,如果未能解决你的问题,请参考以下文章