有关 Linux Cent OS8系统的防火墙配置

firewalld

firewalld 是一个数据包过滤软件,和iptables 属于同一类型。

启动和关闭

# 开启
systemctl start firewalld

# 关闭 
systemctl stop firewalld

# 查看状态
systemctl status firewalld 

# 开机禁用
systemctl disable firewalld

# 开机启用
systemctl enable firewalld

# 查看服务是否开机启动
systemctl is-enabled firewalld

基本配置

# 查看版本 
firewall-cmd --version

# 查看帮助
firewall-cmd --help

# 显示状态
firewall-cmd --state

# 查看区域信息
firewall-cmd --get-active-zones

# 查看指定接口所属区域
firewall-cmd --get-zone-of-interface=eth0

# 拒绝所有通信数据包(谨慎操作,除非你在服务器旁边,如果使用ssh客户端连接的话,会再也无法连接上)
firewall-cmd --panic-on

# 取消拒绝所有通信数据包
firewall-cmd --panic-off

# 查看是否拒绝所有通信数据包
firewall-cmd --query-panic

规则配置

# 开发80端口(--permanent 表示永久生效,没有此参数重启后失效)
firewall-cmd --zone=public --add-port=80/tcp --permanent
# 关闭80端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent
# 开放20000-20010这个范围内的端口
firewall-cmd --zone=public --add-port=20000-20010/tcp --permanent  

# 更新防火墙规则
firewall-cmd --reload
# 查看80端口是否处于开放状态
firewall-cmd --zone=public --query-port=80/tcp

# 查看所有打开的端口
firewall-cmd --zone=public --list-ports
firewall-cmd --list-all

rich-rule设置(需要更新规则后生效)

# 针对 11.122.133.144 开放30000端口
firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="11.122.133.144" port protocol="tcp" port="30000" accept'

# 针对 11.122.133.144 关闭30000端口
firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="11.122.133.144" port protocol="tcp" port="30000" reject'

# 开放所有端口给11.122.133.144
firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="11.122.133.144" accept'

# 查看所有rich-rule
firewall-cmd --zone=public --list-rich-rules

# 移除一个rich-rule规则
firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="11.122.133.144" port protocol="tcp" port="30000" accept'

SELinux

简介

SELinux 全称:Security-Enhanced Linux(安全增强型Linux),它是 Linux 的一个安全子系统,也就是说它是 Linux 内核模块,主要由美国国家安全局开发。其主要作用是最大限度地减小系统中服务进程可访问的资源,这里介绍一下两个机制:

DAC机制

在没有使用 SELinux 的操作系统中,决定一个资源是否能被访问的因素是:某个资源是否拥有对应用户的权限(读、写、执行)。只要访问这个资源的进程符合以上的条件就可以被访问。而最致命问题是,root 用户不受任何管制,系统上任何资源都可以无限制地访问。这种权限管理机制的主体是用户,也称为自主访问控制(DAC)

MAC机制

在使用了 SELinux 的操作系统中,决定一个资源是否能被访问的因素除了上述因素之外,还需要判断每一类进程是否拥有对某一类资源的访问权限。在SELinux中没有root这个概念,安全策略是由管理员来定义的,任何软件都无法取代它。这意味着那些潜在的恶意软件所能造成的损害可以被控制在最小。这样一来,即使进程是以 root 身份运行的,也需要判断这个进程的类型以及允许访问的资源类型才能决定是否允许访问某个资源。进程的活动空间也可以被压缩到最小。即使是以 root 身份运行的服务进程,一般也只能访问到它所需要的资源。即使程序出了漏洞,影响范围也只有在其允许访问的资源范围内。安全性大大增加。这种权限管理机制的主体是进程,也称为强制访问控制(MAC)

基本概念

主体(Subject) :可以完全等同于进程

对象(Object):被主体访问的资源。可以是文件、目录、端口、设备等

政策和规则(Policy & Rule):系统中通常有大量的文件和进程,为了节省时间和开销,通常我们只是选择性地对某些进程进行管制。而哪些进程需要管制、要怎么管制是由政策决定的。一套政策里面有多个规则,部分规则可以按照需求启用或禁用。规则和政策可以在配置文件(/etc/selinux/config)中配置,目前有3套政策:

  1. targeted:对大部分网络服务进程进行管制。这是系统默认使用的政策
  2. minimum:以 targeted 为基础,仅对选定的网络服务进程进行管制
  3. mls:多级安全保护。对所有的进程进行管制。这是最严格的政策,配置难度非常大。一般不用,除非对安全性有极高的要求

安全上下文(Security Context、安全环境)

安全上下文我自己把它分为「进程安全上下文」和「文件安全上下文」。一个「进程安全上下文」一般对应多个「文件安全上下文」。只有两者的安全上下文对应上了,进程才能访问文件。它们的对应关系由政策中的规则决定。文件安全上下文由文件创建的位置和创建文件的进程所决定。而且系统有一套默认值,用户也可以对默认值进行设定。需要注意的是,单纯的移动文件操作并不会改变文件的安全上下文。

扫描二维码关注公众号,回复: 9066550 查看本文章

更多内容请参考:https://www.phpyuan.com/235739.html

配置

查看SELinux状态

getenforce
# 或者
sestatus

临时关闭SELinux

setenforce 0

临时开启SELinux

setenforce 1

永久关闭SELinux

打开SELinux的配置文件vi /etc/SELinux/config,将SELinux=enforcing 更改为 SELinux=disabled ,然后重启操作系统即可。此时再无法临时打开。

发布了22 篇原创文章 · 获赞 0 · 访问量 1142

猜你喜欢

转载自blog.csdn.net/bigpatten/article/details/103934694