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

RHCE-SElinux+防火墙

一.SELinux简介

        SELinux(Security-Enhanced Linux)是一个Linux内核模块和安全策略框架,用于增强Linux操作系统的安全性。它由美国国家安全局(NSA)开发,旨在实现强制访问控制(MAC)机制,提供比传统的用户身份和权限控制更细粒度的安全管理。

主要特点

  1. 强制访问控制:SELinux通过定义安全上下文,强制执行对进程和对象(如文件、网络端口等)的访问控制策略,限制它们的交互方式。

  2. 安全策略:管理员可以根据需求配置和调整安全策略,定义哪些操作是被允许的、哪些是被拒绝的。

  3. 上下文标签:每个对象(文件、进程等)都有一个安全上下文标签,SELinux使用这些标签来决定访问权限。

  4. 多种模式

    • Enforcing(强制模式):SELinux执行策略,拒绝未授权的访问。
    • Permissive(宽容模式):SELinux不会拒绝访问,但会记录违规事件,适合策略调试。
    • Disabled(禁用模式):SELinux完全关闭。
  5. 日志记录:SELinux会记录所有拒绝的操作,管理员可以通过这些日志进行审计和调试。

使用场景

  • 增强安全性:适用于对安全要求较高的环境,如金融机构、政府机构等。
  • 防止权限提升:即使攻击者获得了某个进程的控制权,SELinux也可以限制其对系统其他部分的访问。

二.SELinux工作原理 

  1.自主访问控制方式-DAC

        自主访问控制(DAC,Discretionary Access Control)是一种访问控制机制,允许资源的所有者决定谁可以访问特定资源。DAC的主要特点包括:

1. 资源所有者控制

  • 资源的所有者可以直接控制其资源的访问权限。所有者可以授予或撤销其他用户对其资源的访问权限。

2. 访问权限的灵活性

  • 用户可以在自己的资源上设置多种访问权限,如读、写和执行。不同的用户可以获得不同的权限。

3. 实现简单

  • DAC通常较为简单易懂,适合小型系统和组织。它允许用户自主管理其文件和数据的访问。

4. 缺乏强制性控制

  • DAC的一个缺点是缺乏强制性访问控制,这可能导致安全漏洞。如果用户误授权限,可能会使系统面临安全风险。

2.SELinux的原理--强制访问控制MAC

1. 安全上下文

每个文件、进程和其他系统对象都有一个与之相关联的安全上下文。安全上下文通常包括三个部分:

  • 用户:表示资源所有者的身份。
  • 角色:定义用户在系统中可以执行的操作和权限。
  • 类型:指定资源的类型,用于访问控制。

2. 安全策略

SELinux使用预定义或自定义的安全策略来管理系统的安全。安全策略包含了一组规则,定义了不同类型的进程和对象之间的交互方式。策略可以配置为“强制”或“宽容”模式。

3. 访问控制

在每次访问发生时,SELinux会检查发起请求的进程的安全上下文与目标对象的安全上下文,然后根据安全策略决定是否允许访问:

  • 允许:如果策略允许该访问,操作将继续。
  • 拒绝:如果策略不允许,访问将被拒绝,操作被阻止,并记录相关信息。

4. 日志记录

当SELinux拒绝一个操作时,它会将该事件记录到系统日志中.

5. 上下文标签

[root@server ~]# ls -lZ
-rw-------. 1 root root system_u:object_r:admin_home_t:s0     833  1月  8  2024 anaconda-ks.cfg
-rwxr--r--. 1 root root unconfined_u:object_r:admin_home_t:s0   0 10月 15 20:49 file
-rw-r--r--. 1 root root unconfined_u:object_r:admin_home_t:s0   0 10月 15 19:22 file1
drwxr-xr-x. 2 root root unconfined_u:object_r:admin_home_t:s0  18 10月 27 16:30 sh
  1. 用户(user)

    • 示例system_u 或 unconfined_u
    • 含义:表示文件的所有者或进程的安全用户。system_u是系统用户,而unconfined_u表示不受限制的用户,通常用于用户或进程没有特定的安全限制。
  2. 角色(role)

    • 示例object_r
    • 含义:指定该对象的角色。在此情况下,object_r表示这是一个对象角色,通常用于表示文件或资源的访问控制。
  3. 类型(type)

    • 示例admin_home_t
    • 含义:表示文件的类型,决定了哪些进程可以访问该文件。admin_home_t表示这是管理员家目录中的文件,通常允许管理员进程访问。
  4. 级别(level)

    • 示例s0
    • 含义:表示安全级别,通常用于多级安全(MLS)系统。s0表示默认级别,通常用于普通用户或未特别标记的文件。级别可以用于更复杂的访问控制策略,虽然在许多普通场景中,级别可能不被使用。

完整示例解释

考虑以下文件的安全上下文:

-rw-------. 1 root root system_u:object_r:admin_home_t:s0 833 1月 8 2024 anaconda-ks.cfg
  • 权限-rw------- 表示文件的权限,只有文件所有者有读写权限。
  • 硬链接数1 表示该文件的硬链接数。
  • 所有者root 表示文件的所有者是root用户。
  • 用户组root 表示文件所属的组是root组。
  • 安全上下文system_u:object_r:admin_home_t:s0
    • system_u:系统用户。
    • object_r:对象角色。
    • admin_home_t:文件类型,指向管理员家目录。
    • s0:安全级别。

6. 策略管理

SELinux策略可以通过工具(如setseboolsemanage等)进行管理和配置,管理员可以根据需要修改和加载策略。

7.完整访问过程-----普通用户执行nginx

1. 安全上下文设置

  • 每个进程和文件在 SELinux 中都有一个安全上下文,通常由四个部分组成:用户、角色、类型和级别。
  • 对于普通用户,通常使用 unconfined_u 作为用户标识。

2. 程序执行

  • 当用户执行 Nginx 程序时,操作系统会查看 Nginx 的文件安全上下文,例如:
    -rwxr-xr-x. 1 root root unconfined_u:object_r:nginx_exec_t:s0 /usr/sbin/nginx
  • 这里,nginx_exec_t 表示 Nginx 的执行类型。

3. 进程创建

  • 当 Nginx 被执行时,内核会创建一个新的进程,并为该进程分配一个安全上下文(通常是与执行文件相同的上下文)。

4. 访问控制决策

  • SELinux 通过安全策略来决定该进程是否可以执行特定的操作,例如访问文件、网络端口或其他资源。
  • 这些策略根据进程的类型(如 nginx_exec_t)和被访问对象的类型(如 httpd_sys_content_t 对于 web 内容)进行评估。

5. 策略匹配

  • SELinux 会检查当前上下文与访问请求的目标对象(如配置文件、网站文件、网络接口等)之间的关系。
  • 例如,Nginx 可能需要访问 /var/www/html 下的文件,文件的安全上下文可能是 httpd_sys_content_t
  • SELinux 会判断 nginx_exec_t 和 httpd_sys_content_t 之间的访问控制策略,决定是否允许访问。

6. 访问结果

  • 如果策略允许,访问将被允许,Nginx 可以正常运行并处理请求。
  • 如果策略拒绝,内核将阻止访问,并返回一个错误,通常在系统日志中记录相应的拒绝信息。
  • 最终是否能够访问,需要MAC和DAC同时通过

 三.SELinux的启动,关闭,查看

[root@server ~]# setenforce 0

修改selinux状态

Enforcing:强制执行策略,阻止不符合策略的操作。

Permissive:不阻止任何操作,但记录违反策略的行为。

Disabled:完全禁用 SELinux。

临时更改状态

setenforce 1  # 设置为 Enforcing

setenforce 0  # 设置为 Permissive

永久更改模式(重启后生效): 编辑 SELinux 配置文件:

sudo vi /etc/selinux/config

找到以下行并修改为所需模式:

SELINUX=enforcing # 或 permissive 或 disabled

查看当前seLinux状态

[root@server ~]# sestatus

SELinux status:                 enabled

SELinuxfs mount:                /sys/fs/selinux

SELinux root directory:         /etc/selinux

Loaded policy name:             targeted

Current mode:                   permissive

Mode from config file:          enforcing

Policy MLS status:              enabled

Policy deny_unknown status:     allowed

Memory protection checking:     actual (secure)

Max kernel policy version:      33

SELinux status: enabled

SELinux(Security-Enhanced Linux)功能已启用。这表示系统正在使用 SELinux 进行访问控制。

SELinuxfs mount: /sys/fs/selinux

SELinux 文件系统挂载在 /sys/fs/selinux 目录下。这是 SELinux 用来提供其配置和状态信息的文件系统。

SELinux root directory: /etc/selinux

SELinux 的根目录为 /etc/selinux,此目录通常包含 SELinux 的配置文件和策略。

Loaded policy name: targeted

加载的策略名称为 targeted。这是 SELinux 默认的策略类型,它主要保护系统中最重要的进程,其他进程的保护较少。

Current mode: permissive

当前模式为 permissive(宽容模式)。在此模式下,SELinux 不会强制执行安全策略,但会记录潜在的违规行为。这对于调试和测试很有用。

Mode from config file: enforcing

配置文件中的模式为 enforcing(强制模式)。如果系统重新启动或重新加载 SELinux 配置,它将以强制模式运行。在强制模式下,SELinux 会严格执行访问控制策略,拒绝未授权的操作。

Policy MLS status: enabled

多级安全(MLS)策略状态为 enabled。MLS 是一种复杂的访问控制模型,允许更细粒度的安全控制,通常用于高安全环境。

Policy deny_unknown status: allowed

策略的 deny_unknown 状态为 allowed。这意味着如果有未知的用户或类型访问某个对象,系统将允许这些请求,而不是拒绝它们。这在某些情况下可以防止安全策略的过度限制。

Memory protection checking: actual (secure)

内存保护检查为 actual (secure),这表明系统正在实际进行内存保护检查,并且状态是安全的.

Max kernel policy version: 33

最大内核策略版本为 33,这表示当前系统中使用的 SELinux 策略的版本号。这有助于判断策略的更新程度。

安全上下文chcon , restorecon , semanage

        SELinux 管理中,chconrestoreconsemanage 是三个重要的命令工具,它们用于管理文件和进程的安全上下文。

1. chcon

chcon 命令用于改变文件或目录的 SELinux 安全上下文。它可以用来临时修改文件的安全上下文,而不影响系统默认策略。

用法示例:

chcon [OPTIONS] CONTEXT FILE
  • CONTEXT:新的安全上下文,通常格式为 user:role:type:level
  • FILE:要修改的文件或目录。

常用选项:

  • -R:递归修改目录及其内容。
  • -h:修改符号链接的目标文件,而不是链接本身。

示例:

chcon -t httpd_sys_content_t /var/www/html/index.html
[root@server ~]# chcon -t httpd_sys_content_t ~/file 
[root@server ~]# ls -lZ | grep file
-rwxr--r--. 1 root root unconfined_u:object_r:httpd_sys_content_t:s0   0 10月 15 20:49 file
-rw-r--r--. 1 root root unconfined_u:object_r:admin_home_t:s0          0 10月 15 19:22 file1

这将把 index.html 文件的类型上下文修改为 httpd_sys_content_t,使其可被 Nginx 或 Apache 等 Web 服务器访问。

2. restorecon

restorecon 命令用于恢复文件或目录的默认 SELinux 安全上下文。这对于确保文件具有正确的上下文非常有用,特别是在文件被移动或拷贝之后。

用法示例:

restorecon [OPTIONS] FILE

常用选项:

  • -R:递归恢复目录及其内容。
  • -v:在恢复过程中显示详细信息。

示例:

restorecon -R /var/www/html
[root@server ~]# restorecon -v ~/file
Relabeled /root/file from unconfined_u:object_r:httpd_sys_content_t:s0 to unconfined_u:object_r:admin_home_t:s0

这将递归恢复 /var/www/html 目录及其内容的默认安全上下文。

3. semanage

semanage 命令用于管理 SELinux 策略。它可以用来添加、删除和修改 SELinux 上下文映射,包括文件上下文、端口和接口。

用法示例:

semanage [OPTIONS] MODULE
  • MODULE:要管理的模块,可以是 fcontextportinterface 等。

常用子命令:

  • fcontext:管理文件上下文。
  • port:管理 SELinux 上下文与端口的关联。
  • interface:管理网络接口的上下文。

示例:

  1. 管理文件上下文

    semanage fcontext -a -t httpd_sys_content_t '/var/www/html(/.*)?'

    这将为 /var/www/html 目录及其所有子目录和文件添加 httpd_sys_content_t 上下文。

  2. 恢复文件上下文

    restorecon -R /var/www/html

    通过前面 semanage 命令添加的规则,可以恢复这些文件的上下文。

  3. 管理端口

    semanage port -a -t http_port_t -p tcp 8080
    [root@server ~]# semanage port -a -t http_port_t -p tcp 8080
    ValueError: 已定义端口 tcp/8080
    

    这将将 TCP 8080 端口标记为 http_port_t,使其可供 HTTP 服务使用。

总结

  • chcon:用于手动改变文件的安全上下文。
  • restorecon:恢复文件的默认安全上下文。
  • semanage:管理和配置 SELinux 策略,包括文件上下文、端口等。

 四.防火墙

1.防火墙简介

        防火墙是一种网络安全设备或软件,用于监控和控制进出网络流量。它通过定义和执行安全规则,帮助保护网络和主机不受未经授权的访问、攻击和其他安全威胁。

防火墙的基本功能

  1. 流量过滤:根据预定义的安全规则允许或拒绝网络流量。
  2. 状态检测:跟踪活动连接的状态,决定哪些流量是合法的。
  3. 日志记录:记录网络流量和安全事件,供日后分析和审计。
  4. 网络地址转换(NAT):将内部网络地址转换为公共地址,隐藏内部网络结构。

Linux 常用的防火墙

在 Linux 系统中,有几种常见的防火墙工具:

  1. iptables

    • 简介:iptables 是 Linux 内核中用于配置网络过滤规则的工具。它可以定义复杂的流量过滤规则,并支持状态检测。
    • 特点
      • 灵活性高,适合定制复杂的防火墙策略。
      • 支持多种协议(如 TCP、UDP、ICMP)。
      • 可以配置链(如 INPUT、OUTPUT、FORWARD)来管理流量方向。
  2. nftables

    • 简介:nftables 是 iptables 的替代工具,从 Linux 3.13 开始引入。它提供了一种更简洁的语法,并且具有更高的性能。
    • 特点
      • 统一了 IPv4 和 IPv6 的管理。
      • 支持集成的流量分类和映射功能。
      • 语法更简洁,易于使用和理解。
  3. firewalld

    • 简介:firewalld 是一种基于区域的防火墙管理工具,旨在简化 iptables 的使用。它提供了动态的防火墙配置功能。
    • 特点
      • 提供图形界面和命令行工具(如 firewall-cmd)。
      • 支持区域(zone)概念,可以根据网络环境灵活调整策略。
      • 支持服务管理,简化了常见服务的配置。
  4. UFW (Uncomplicated Firewall)

    • 简介:UFW 是 Ubuntu 和一些其他 Linux 发行版的简化防火墙工具,旨在让防火墙配置变得更简单。
    • 特点
      • 适合初学者,命令简单易懂。
      • 默认情况下处于禁用状态,可以很容易地启用和配置。
      • 提供基本的规则设置功能。

2.iptables详解

  iptables 是 Linux 中用于管理和配置网络过滤规则的工具,它允许用户通过定义规则来控制网络流量的进出。以下是对 iptables 的详解,包括基本概念、命令和配置示例。

基本概念

  1. 链(Chains)

    • iptables 主要有三种内置链:
      • INPUT:处理到达本机的数据包。
      • OUTPUT:处理从本机发送的数据包。
      • FORWARD:处理转发到其他机器的数据包。
  2. 表(Tables)

    • iptables 有四种主要的表:
      • filter:默认表,用于过滤数据包。
      • nat:用于网络地址转换(NAT)。
      • mangle:用于修改数据包的内容和属性。
      • raw:用于设置不追踪连接的数据包。
  3. 规则(Rules)

    • 每个规则定义了一条过滤条件,如协议(TCP/UDP)、源地址、目标地址、端口等。

安装iptables 

[root@server ~]# yum install iptables-services -y

常用命令

  • 查看规则

    iptables -L # 查看 filter 表的所有链规则 
    iptables -L -v -n # 查看详细信息,包括流量计数
    [root@server ~]# iptables -L
    Chain INPUT (policy ACCEPT)
    target     prot opt source               destination         
    ACCEPT     udp  --  anywhere             anywhere             udp dpt:domain
    
    Chain FORWARD (policy ACCEPT)
    target     prot opt source               destination         
    
    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination         
    
  • 添加规则

    iptables -A INPUT -s 192.168.1.100 -j DROP # 拒绝来自指定 IP 的流量 
    iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT # 允许访问 HTTP 端口
    [root@server ~]# iptables -A INPUT -s 192.168.1.100 -j DROP 
    [root@server ~]# iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT 
    [root@server ~]# iptables -L
    Chain INPUT (policy ACCEPT)
    target     prot opt source               destination         
    ACCEPT     udp  --  anywhere             anywhere             udp dpt:domain
    DROP       all  --  192.168.1.100        anywhere            
    
  • 删除规则

    iptables -D INPUT -s 192.168.1.100 -j DROP # 删除指定的拒绝规则
    [root@server ~]# iptables -D INPUT -s 192.168.1.100 -j DROP 
    [root@server ~]# iptables -L
    Chain INPUT (policy ACCEPT)
    target     prot opt source               destination         
    ACCEPT     udp  --  anywhere             anywhere             udp dpt:domain
    
  • 修改规则

    iptables -R INPUT 1 -s 192.168.1.200 -j DROP # 修改链中第 1 条规则
    [root@server ~]# iptables -R INPUT 1 -s 192.168.1.200 -j DROP 
    [root@server ~]# iptables -L
    Chain INPUT (policy ACCEPT)
    target     prot opt source               destination         
    DROP       all  --  192.168.1.200        anywhere            
    
  • 保存规则(在某些发行版上):

    iptables-save > /etc/iptables/rules.v4 # 保存当前规则到文件
  • 恢复规则

    iptables-restore < /etc/iptables/rules.v4 # 从文件恢复规则

属性详解 

主要属性和选项

  1. 链(Chain)

    • INPUT:处理进入本机的流量。
    • OUTPUT:处理从本机发出的流量。
    • FORWARD:处理转发到其他机器的流量。
  2. 规则操作

    • -A:追加规则到指定链。
    • -I:在指定链的最前面插入规则。
    • -D:删除指定链中的规则。
    • -R:替换指定链中的规则。
    • -L:列出指定链中的规则。
    • -F:清空指定链中的所有规则。
    • -Z:清空指定链中的计数器。
    • -N:新建一个用户自定义链。
    • -X:删除用户自定义链。
  3. 匹配条件

    • -p:指定协议(如 tcpudpicmp 等)。
    • --dport:指定目标端口(适用于 TCP/UDP)。
    • --sport:指定源端口(适用于 TCP/UDP)。
    • -s:指定源 IP 地址。
    • -d:指定目标 IP 地址。
    • -m:用于加载扩展模块,如 -m state-m multiport 等。
    • --state:根据连接状态匹配(如 NEWESTABLISHEDRELATED)。
  4. 目标(Target)

    • ACCEPT:允许匹配的流量通过。
    • DROP:丢弃匹配的流量,不返回响应。
    • REJECT:拒绝匹配的流量,并返回响应。
    • LOG:记录匹配的流量到系统日志。
    • RETURN:结束当前链规则的检查,返回上一个链。

组合示例

  1. 允许特定端口的出站流量

    iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
  2. 拒绝特定 IP 地址的进入流量

    iptables -A INPUT -s 192.168.1.100 -j DROP
  3. 允许已建立的连接

    iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  4. 记录并丢弃来自特定子网的流量

    iptables -A INPUT -s 192.168.1.0/24 -j LOG iptables -A INPUT -s 192.168.1.0/24 -j DROP
  5. 使用用户自定义链

    iptables -N MYCHAIN iptables -A MYCHAIN -s 10.0.0.0/8 -j ACCEPT iptables -A INPUT -j MYCHAIN

示例配置

  1. 允许 SSH 访问

    iptables -A INPUT -p tcp --dport 22 -j ACCEPT
  2. 拒绝所有其他流量

    iptables -A INPUT -j DROP
  3. 允许本地回环接口流量

    iptables -A INPUT -i lo -j ACCEPT
  4. 记录拒绝的连接

    iptables -A INPUT -j LOG --log-prefix "Dropped: " --log-level 4

注意事项

  • 规则顺序iptables 是顺序执行的,一旦匹配到某条规则,就不会继续检查后面的规则。
  • 持久性iptables 的配置在重启后不会保存,需使用 iptables-save 和 iptables-restore 命令保存和恢复规则,或者使用系统的防火墙管理工具。

3.firewalld详解 

        

firewalld 是一个动态的防火墙管理工具,主要用于 Linux 系统。它使用区域和服务的概念,使得管理网络流量更加简便。

主要特点

  1. 动态配置:允许在不重启服务的情况下添加或修改规则。
  2. 区域:通过将不同的网络接口或地址分配给区域,定义访问控制策略。
  3. 服务:预定义的服务(如 HTTP、SSH)简化了规则的设置。

基本命令

  1. 查看状态

    [root@server ~]# systemctl status firewalld.service 
  2. 启动/停止/重启

    systemctl start firewalld 
    systemctl stop firewalld 
    systemctl restart firewalld
  3. 查看当前区域

    firewall-cmd --get-active-zones
    [root@server ~]# firewall-cmd --get-active-zones 
    public
      interfaces: ens160
    
  4. 添加服务到区域

    firewall-cmd --zone=public --add-service=http --permanent
    [root@server ~]# firewall-cmd --zone=public --add-service=http --permanent 
    success
    
  5. 重新加载配置

    firewall-cmd --reload
    [root@server ~]# firewall-cmd --reload 
    success
    
  6. 查看当前规则

    firewall-cmd --list-all
    [root@server ~]# firewall-cmd --list-all
    public (active)
      target: default
      icmp-block-inversion: no
      interfaces: ens160
      sources: 
      services: cockpit dhcpv6-client http ssh
      ports: 
      protocols: 
      forward: yes
      masquerade: no
      forward-ports: 
      source-ports: 
      icmp-blocks: 
      rich rules: 
  7. 删除服务

    firewall-cmd --zone=public --remove-service=http --permanent
    [root@server ~]# firewall-cmd --zone=public --remove-service=http --permanent 
    success
    

区域管理

可以通过以下命令管理不同区域:

2. dmz

3. drop

4. external

5. home

6. internal

7. nm-shared

8. public

9. trusted

10. work

  • 列出所有区域

    firewall-cmd --get-zones
    [root@server ~]# firewall-cmd --get-zones
    block dmz drop external home internal nm-shared public trusted work
    
  • 区域详解

  • 1. block

  • 描述:所有传入流量都会被拒绝,适用于需要完全阻止网络访问的场景。
  • 用法:常用于安全性要求极高的环境。
  • 描述:对外部网络开放但不信任的区域,允许一些服务,但阻止所有其他流量。
  • 用法:通常用于放置公共服务,例如 Web 服务器,防止内部网络受到威胁。
  • 描述:丢弃所有传入流量,类似于 block,但不会发送拒绝响应。
  • 用法:用于需要隐身的场景,确保不会暴露系统的存在。
  • 描述:用于直接连接到公共网络的区域,通常用于路由器或网关设备。
  • 用法:可用于允许特定服务通过 NAT 转发,通常与其他区域结合使用。
  • 描述:适用于家庭网络,默认允许大多数流量,但提供了一些保护。
  • 用法:适合家庭用户,默认情况下允许大多数家庭设备和服务的流量。
  • 描述:信任的内部网络,允许较为开放的流量,适合企业或组织内部使用。
  • 用法:用于公司内部的设备和服务,提供相对宽松的访问。
  • 描述:由 NetworkManager 创建的区域,用于共享网络连接。
  • 用法:适合临时或共享的网络连接场景。
  • 描述:不信任的公共网络区域,默认情况下阻止所有流量,仅允许一些特定的服务。
  • 用法:适合在咖啡厅或机场等公共场所使用的设备。
  • 描述:信任的区域,允许所有流量,不会进行任何限制。
  • 用法:适合信任的网络环境,但需要谨慎使用,因为它没有任何防护。
  • 描述:适用于公司或组织的工作网络,提供较为灵活的规则。
  • 用法:适合办公室环境,允许常见的工作流量。
  • 设置默认区域

    firewall-cmd --set-default-zone=home

    firewall-cmd命令的参数

主要命令参数

  1. --state

    • 描述:显示防火墙当前状态(running, not running)。
    • 示例
      firewall-cmd --state
  2. --zone=ZONE

    • 描述:指定操作的区域。
    • 示例
      firewall-cmd --zone=public --list-all
  3. --permanent

    • 描述:应用更改到永久配置,而非临时配置。
    • 示例
      firewall-cmd --zone=public --add-service=http --permanent
  4. --add-service=SERVICE

    • 描述:添加服务到指定区域。
    • 示例
      firewall-cmd --zone=public --add-service=https
  5. --remove-service=SERVICE

    • 描述:从指定区域移除服务。
    • 示例
      firewall-cmd --zone=public --remove-service=http
  6. --add-port=PORT[/PROTOCOL]

    • 描述:添加端口到指定区域。
    • 示例
      firewall-cmd --zone=public --add-port=8080/tcp
  7. --remove-port=PORT[/PROTOCOL]

    • 描述:从指定区域移除端口。
    • 示例
      firewall-cmd --zone=public --remove-port=8080/tcp
  8. --list-all

    • 描述:列出指定区域的所有配置。
    • 示例
      firewall-cmd --zone=public --list-all
  9. --reload

    • 描述:重新加载防火墙配置。
    • 示例
      firewall-cmd --reload
  10. --set-target=TARGET

    • 描述:设置指定区域的目标(例如,DROP, ACCEPT)。
    • 示例
      firewall-cmd --zone=public --set-target=DROP
  11. --get-active-zones

    • 描述:列出当前活动的区域。
    • 示例
      firewall-cmd --get-active-zones
  12. --zone=public --add-rich-rule='rule'

    • 描述:添加自定义的丰富规则。
    • 示例
      firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" accept'

用法示例

  1. 查看当前所有区域

    firewall-cmd --get-zones
  2. 查看指定区域的服务和端口

    firewall-cmd --zone=public --list-services firewall-cmd --zone=public --list-ports
  3. 将区域设置为信任

    firewall-cmd --zone=internal --set-target=ACCEPT
  4. 允许特定 IP 地址访问

    firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="203.0.113.0/24" accept'
  5. 禁用区域

    firewall-cmd --zone=public --remove-service=ftp

注意事项

  • 使用 --permanent 时,要记得在完成更改后运行 --reload 以使更改生效。
  • firewalld 会根据默认区域来管理流量,确保你了解默认区域设置。

 


http://www.kler.cn/a/382144.html

相关文章:

  • PostgreSQL 的历史
  • Linux中的 read() 函数的介绍及使用实例
  • 模仿elementui的Table,实现思路
  • 用java造1万条数据
  • 新能源汽车锂离子电池各参数的时间序列关系
  • 《LangChain大模型应用开发》书籍分享
  • Git 测验
  • JavaScript数据类型- BigInt详解(处理任意大小整数的终极指南)
  • C#应用随系统启动 - 开源研究系列文章
  • Tornado简单使用
  • React中 useEffect 的原理
  • Python数据可视化seaborn
  • Idea如何推送项目到gitee
  • 使用 Python 写一个后端程序的项目方案
  • JDK 安装、环境变量配置、nano 和 vim 的使用
  • Fastify Swagger:自动化API文档生成与展示
  • Docker cp命令详解及实战案例
  • Python并发编程——multiprocessing
  • 自动化仓库堆垛机结构解析
  • 2025年山东省考报名流程图解
  • 基于stm32的火灾报警系统(开源)
  • vue使用方法创建组件
  • FRP反向代理使用
  • 使用 OpenCV 实现图像的透视变换
  • 数据结构,问题 E: 表达式括号匹配
  • 英语写作中用identify 替代find