Linux防火墙命令详解与使用技巧
firewall linux 命令

作者:IIS7AI 时间:2025-01-13 10:03



Linux防火墙firewall命令详解 在Linux系统中,防火墙是确保网络安全的重要工具

    firewalld作为一个功能强大的防火墙管理工具,提供了动态接口来管理网络流量

    通过firewalld,系统管理员可以定义网络连接的信任级别,支持IPv4和IPv6,并设置各种复杂的规则来确保系统的安全

    本文将详细介绍Linux中firewalld的常用命令,帮助读者更好地掌握这一工具

     一、firewalld的基本操作 1.启动和关闭防火墙 启动firewalld服务是确保防火墙规则生效的第一步

    使用以下命令可以启动、停止、重启和查看防火墙的状态: bash 启动防火墙 sudo systemctl start firewalld 停止防火墙 sudo systemctl stop firewalld 重启防火墙 sudo systemctl restart firewalld 查看防火墙状态 sudo systemctl status firewalld 2.设置防火墙开机自启动 为了确保防火墙在系统启动时自动运行,可以使用以下命令设置firewalld的开机自启动: bash 设置防火墙开机自启动 sudo systemctl enable firewalld 禁止防火墙开机自启动 sudo systemctl disable firewalld 查看是否开机启动 sudo systemctl list-unit-files | grep firewalld 3.查看防火墙活动状态 使用以下命令可以查看firewalld的当前活动状态: bash 查看防火墙活动状态 sudo firewall-cmd --state 二、配置和管理防火墙规则 1.查看和设置默认区域 firewalld使用区域(zones)来定义网络连接的信任级别

    可以使用以下命令查看和设置默认区域: bash 查看所有可用区域 sudo firewall-cmd --get-zones 查看当前默认区域 sudo firewall-cmd --get-default-zone 设置默认区域 sudo firewall-cmd --set-default-zone=public 查看指定区域的所有设置 sudo firewall-cmd --zone=public --list-all 2.管理接口 接口是防火墙规则作用的对象之一

    可以使用以下命令将接口添加到区域或从区域中移除: bash 添加一个接口到区域 sudo firewall-cmd --zone=public --add-interface=eth0 从区域中移除一个接口 sudo firewall-cmd --zone=public --remove-interface=eth0 查看指定接口的所属区域 sudo firewall-cmd --get-zone-of-interface=eth0 3.管理服务和端口 服务和端口是防火墙规则的重要组成部分

    可以使用以下命令查看、添加和移除服务和端口: bash 列出所有支持的服务 sudo firewall-cmd --get-services 添加一个服务到区域 sudo firewall-cmd --zone=public --add-service=http 从区域中移除一个服务 sudo firewall-cmd --zone=public --remove-service=http 检查服务是否是启动的 sudo firewall-cmd --zone=public --query-service=http 使服务变更永久生效 sudo firewall-cmd --zone=public --add-service=http --permanent 查看开放的端口 sudo firewall-cmd --list-ports 临时打开一个端口 sudo firewall-cmd --zone=public --add-port=8080/tcp 临时关闭一个端口 sudo firewall-cmd --zone=public --remove-port=8080/tcp 使端口变更永久生效 sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent 重新加载防火墙配置 sudo firewall-cmd --reload 注意:添加或移除端口和服务后,必须重新加载防火墙配置才能生效

     4.管理富规则 富规则(rich rules)允许系统管理员定义更细致、更详细的防火墙规则策略

    这些规则具有最高的优先级,可以覆盖其他规则

    可以使用以下命令添加和移除富规则: bash 允许来自指定IP的流量 sudo firewall-cmd --zone=public --add-rich-rule=rule family=ipv4 source address=192.168.1.100 accept 阻止来自指定IP的流量 sudo firewall-cmd --zone=public --add-rich-rule=rule family=ipv4 source address=192.168.1.100 drop 记录并丢弃来自指定IP的流量 sudo firewall-cmd --zone=public --add-rich-rule=rule family=ipv4 source address=192.168.1.100 log prefix=Blocked: level=info drop 使规则永久生效 sudo firewall-cmd --zone=public --add-rich-rule=rule family=ipv4 source address=192.168.1.100 accept --permanent 重新加载防火墙配置 sudo firewall-cmd --reload 5.端口转发和伪装 端口转发和伪装是防火墙的高级功能,可以实现流量的重定向和隐藏真实IP地址

    可以使用以下命令配置端口转发和伪装: bash 查看所有端口转发规则 sudo firewall-cmd --zone=public --list-forward-ports 配置本机端口转发 sudo firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toport=8080 --permanent 配置服务器之间转发 sudo firewall-cmd --zone=public --add-forward-port=proto=tcp:toaddr=192.168.1.100:toport=8080 --permanent 启用伪装 sudo firewall-cmd --zone=public --add-masquerade 禁用伪装 sudo firewall-cmd --zone=public --remove-masquerade 重新加载防火墙配置 sudo firewall-cmd --reload 三、高级配置和脚本使用 1.运行时配置和永久配置 firewalld的配置分为运行时(Runtime)模式和永久(Permanent)模式

    运行时模式立即生效,但重启后会失效;永久模式在系统重启后仍然有效

    使用`--permanent`参数可以指定永久配置: bash 临时添加一个服务 sudo firewall-cmd --zone=public --add-service=http 永久添加一个服务 sudo firewall-cmd --zone=public --add-service=http --permanent 临时打开一个端口 sudo firewall-cmd --zone=public --add-port=8080/tcp 永久打开一个端口 sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent 重新加载防火墙配置 sudo firewall-cmd --reload 2.使用firewall-offline-cmd 在脚本或恢复模式中,可以使用`firewall-offline-cmd`命令来配置防火墙

    这个命令允许在没有运行firewalld服务的情况下修改防火墙规则,并将配置保存到磁盘上: bash 添加一个服务 sudo firewall-offline-cmd --add-service=http 保存所有变更到磁盘 sudo firewall-cmd --runtime-to-permanent 启动firewalld服务并应用配置 sudo systemctl start firewalld 四、总结 firewalld是Linux系统中一个功能强大的防火墙管理工具,提供了丰富的命令来配置和管理防火墙规则

    通过掌握这些命令,系统管理员可以灵活地定义网络连接的信任级别,确保系统的安全

    无论是管理接口、服务、端口,还是配置富规则、端口转发和伪装,firewalld都能提供强大的支持

    希望本文能帮助读者更好地理解和使用firewalld,确保Linux系统的网络安全