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

防火墙及firewall工具详解

防火墙及firewall工具详解

一、防火墙基础概念

防火墙是一种网络安全机制,用于隔离风险区域与安全区域的连接,主要作用包括:

  • 阻止未授权用户进入内部网络,过滤不安全服务和非法用户
  • 防止入侵者接近内部防御设施
  • 限定用户对特定网络的访问权限
  • 为监视互联网安全状态提供便利

二、netfilter模块

netfilter是Linux内核中的网络过滤模块,其文件路径通常为:
/lib/modules/4.18.0-193.el8.x86_64/kernel/net/netfilter

Linux系统中常用的netfilter管理工具:

  • iptables:主要用于CentOS 6及更早版本
  • firewalld:CentOS 7及以上版本的动态防火墙工具(更灵活,支持实时生效)

三、firewalld的使用

1. 特殊Zone(区域)

firewalld通过"区域"管理不同信任级别的网络,其中3个特殊区域:

  • drop:强制拒绝所有流量,不返回任何响应(类似直接挂断电话)
  • block:拒绝所有流量,但会返回拒绝响应(类似拒接后回拨告知)
  • trusted:允许所有流量通过

注:drop和block区域无论是否勾选服务,默认均禁止访问;trusted区域则默认允许所有访问

2. 图形化操作

通过系统自带的防火墙配置工具(如firewall-config)可直观管理,例如:
安装http服务后,在图形界面勾选"http"服务,即可允许外部访问该服务(默认情况下客户端无法访问)

3. 命令行工具(firewall-cmd)

常用命令:

命令功能
firewall-cmd --list-all查看当前区域的所有配置信息
firewall-cmd --get-default-zone查看当前默认区域
firewall-cmd --set-default-zone=home设置默认区域为home
firewall-cmd --add-service=http临时添加http服务允许规则
firewall-cmd --add-port=80/tcp临时添加80/tcp端口允许规则
firewall-cmd --remove-service=http移除http服务规则
firewall-cmd --change-interface=eth0 --zone=public将eth0接口切换到public区域

关键参数:--permanent 表示配置永久生效(需重启防火墙或执行firewall-cmd --reload生效);未带此参数则仅当前会话生效

4. 富规则(Rich Rules)

富规则用于配置更复杂的访问控制策略,支持基于源地址、服务、端口等的精细控制。

基本动作:
  • accept:允许流量通过
  • reject:拒绝流量并返回响应
  • drop:直接丢弃流量,无响应

规则优先级:拒绝规则(reject/drop)优先于允许规则(accept)

日志设置:

日志级别(从高到低):emergalertcriterrorwarningnoticeinfodebug
审计日志格式:audit limit value=rate/duration(rate为数字,duration单位:s/秒、m/分、h/时、d/天)

富规则示例:
  1. 允许172.16.30.0/24网段访问http服务,以notice级别记录日志(每分钟最多10条),永久生效:

    firewall-cmd --add-rich-rule='rule family=ipv4 source address=172.16.30.0/24 service name=http log prefix=http level=notice limit value=10/m accept' --zone=public --permanent
    firewall-cmd --reload  # 使永久配置生效
    
  2. 未来10分钟内(600秒)拒绝172.16.30.0/24网段的ssh连接,每分钟最多记录2条审计日志:

    firewall-cmd --add-rich-rule='rule family=ipv4 source address=172.16.30.0/24 service name=ssh audit limit value=2/m reject' --timeout=600
    

5. 伪装(Masquerading)

用于实现NAT(网络地址转换),需先开启IP转发:

  1. 开启IP转发:

    vim /etc/sysctl.conf
    net.ipv4.ip_forward = 1  # 添加此行
    sysctl -p  # 使配置生效
    
  2. 启用伪装:

    • 对特定源地址:
      firewall-cmd --add-rich-rule='rule family=ipv4 source address=172.16.30.0/24 masquerade' --zone=public --permanent
      
    • 对整个区域:
      firewall-cmd --add-masquerade --zone=public --permanent
      
    • 生效配置:firewall-cmd --reload

6. 端口转发

将指定端口的流量转发到其他端口或主机,需先开启IP转发。

示例:

  1. 临时将本地8000/tcp端口流量转发到172.16.30.130的80/tcp端口:

    firewall-cmd --add-forward-port=port=8000:proto=tcp:toport=80:toaddr=172.16.30.130
    
  2. 永久配置:将12.12.12.0/24网段访问本地80/tcp的流量转发到172.16.30.30的80/tcp:

    firewall-cmd --add-rich-rule='rule family=ipv4 source address=12.12.12.0/24 forward-port port=80 protocol=tcp to-port=80 to-addr=172.16.30.30' --permanent
    firewall-cmd --reload
    
  3. 永久配置:允许172.16.30.0/24网段访问Server30的9527端口时转发到80端口:

    firewall-cmd --add-rich-rule='rule family=ipv4 source address=172.16.30.0/24 forward-port port=9527 protocol=tcp to-port=80' --permanent
    firewall-cmd --reload
    

7. 禁ping设置

禁止ICMP echo请求(即禁ping):

vim /etc/sysctl.conf
net.ipv4.icmp_echo_ignore_all = 1  # 添加此行
sysctl -p  # 生效配置

四、富规则语法总结

基本结构:

rule family=ipv4/ipv6source address=源地址/网段service name=服务名 (或 port port=端口 protocol=协议)[log prefix=前缀 level=日志级别 limit=速率/时间]  # 可选日志配置[audit limit=速率/时间]  # 可选审计配置[forward-port port=源端口 protocol=协议 to-port=目标端口 to-addr=目标地址]  # 可选端口转发动作(accept/reject/drop/masquerade)
http://www.dtcms.com/a/318446.html

相关文章:

  • AI增强的软件测试工具
  • 解决pytorch-lightning1.6.0安装时自动下载最新的pytorch方法
  • 《深入浅出Embedding》这本书
  • 高等数学(工本)----00023 速记宝典
  • <2> Elasticsearch大规模数据迁移实战:从内存暴涨到优化策略
  • 令牌桶限流算法
  • 《动手学深度学习》读书笔记—9.3深度循环神经网络
  • 数字图像处理(冈萨雷斯)第三版:第四章——空间滤波与频域滤波(平滑与锐化)——主要内容和重点
  • SQL166 删除索引
  • 一篇认识synchronized锁
  • JAVA--流程控制语句
  • Android—服务+通知=>前台服务
  • shell基础之EOF的用法
  • 译 | 在 Python 中从头开始构建 Qwen-3 MoE
  • windos安装了python,但是cmd命令行找不到python
  • 012 网络—基础篇
  • 机器学习算法系列专栏:逻辑回归(初学者)
  • flex布局:容器的justify-content属性
  • Python训练Day35
  • Python在生物计算与医疗健康领域的应用(2025深度解析)
  • 局域网内某服务器访问其他服务器虚拟机内相关服务配置
  • 无人机遥控器舵量技术解析
  • 线上Linux服务器的优化设置、系统安全与网络安全策略
  • Android14的QS面板的加载解析
  • 云平台托管集群:EKS、GKE、AKS 深度解析与选型指南-第四章
  • k8s 网络插件 flannel calico
  • 第14届蓝桥杯Scratch选拔赛初级及中级(STEMA)真题2023年1月15日
  • 链式数据结构
  • LangChain4j实战
  • 深入解析系统调试利器:strace 从入门到精通