博客
关于我
linux_iptables防火墙
阅读量:136 次
发布时间:2019-02-26

本文共 2213 字,大约阅读时间需要 7 分钟。

iptables 防火墙参考文档

一.iptables 概述

iptables 是 Linux 系统的防火墙管理工具,主要工作在网络层,负责对 IP 数据包进行过滤。它通过规则表和规则链来管理数据包的处理,支持多种规则类型和匹配条件。

二.netfilter /iptables 关系

netfilter 是 iptables 的核心模块,属于内核态防火墙管理体系。而 iptables 则属于用户态防火墙管理,它基于内核的四个规则表(raw、mangle、nat 和 filter)来配置防火墙规则。

三.四表五链

四表
  • raw 表:处理数据包状态跟踪,包含 PREROUTING 和 OUTPUT 链。
  • mangle 表:修改数据包内容,包含 INPUT、OUTPUT、FORWARD、PREROUTING 和 POSTROUTING 链。
  • nat 表:负责网络地址转换,包含 OUTPUT、PREROUTING 和 POSTROUTING 链。
  • filter 表:过滤数据包,包含 INPUT、FORWARD 和 OUTPUT 链。
  • 五链
  • INPUT:处理入站数据包,匹配目标 IP 为本机的数据包。
  • OUTPUT:处理出站数据包,通常不在此链上配置规则。
  • FORWARD:处理转发数据包,匹配流经本机的数据包。
  • PREROUTING:在路由选择前处理数据包,用于 DNAT。
  • POSTROUTING:在路由选择后处理数据包,用于 SNAT。
  • 四.规则匹配顺序

  • 入站数据
    • PREROUTING → INPUT → 本机应用程序
  • 出站数据
    • 本机应用程序 → OUTPUT → POSTROUTING
  • 转发数据
    • PREROUTING → FORWARD → POSTROUTING
  • 规则链内部匹配
    • 自上而下依次检查规则,找到匹配规则后停止(LOG 策略例外)。
    • 若无匹配规则,按默认策略处理(未修改时,默认为允许)。
  • 五.iptables 安装

  • Centos 7
    • 默认使用 firewalld 防火墙,若需使用 iptables:
      systemctl stop firewalld.serviceyum -y install iptables iptables-servicesystemctl start iptables.service
  • 六.iptables 命令行配置

  • 命令格式

    iptables [-t 表名] [选项] [链名] [匹配条件] [-j 控制类型]
  • 注意事项

    • 不指定表名,默认使用 filter 表。
    • 不指定链名,默认使用链内所有链。
    • 不指定匹配条件需默认处理。
    • 选项、链名、控制类型使用大写字母。
  • 常用控制类型

    • ACCEPT:允许数据包通过。
    • DROP:丢弃数据包。
    • REJECT:拒绝数据包,返回错误信息。
    • SNAT:修改源地址。
    • DNAT:修改目的地址。
    • LOG:记录日志并继续处理。
  • 常用管理选项

    • -A:在链末尾追加规则。
    • -I:在链开头插入规则。
    • -R:替换指定规则。
    • -P:设置链默认策略。
    • -D:删除规则。
    • -F:清空链规则。
    • -L:列出规则。
    • -n:显示数字形式。
    • -v:显示详细信息。
    • --line-numbers:显示规则序号。
  • 七.使用 iptables

  • 添加新规则

    iptables -t filter -A INPUT -p icmp -j REJECTiptables -I INPUT 2 -p tcp --dport 22 -j ACCEPT
  • 查看规则列表

    iptables -n -L [链名] --line-numbers
  • 设置默认策略

    iptables -P INPUT DROPiptables -P FORWARD DROP
  • 删除规则

    iptables -D INPUT 2iptables -t filter -D INPUT -p icmp -j REJECT
  • 清空规则

    iptables -F INPUTiptables -F
  • 八.DNAT 原理与应用

  • DNAT 应用环境

    • 在 Internet 中发布局域网内的服务器。
  • DNAT 原理

    • 修改数据包的目的地址。
  • DNAT 转换前提条件

    • 服务器可访问 Internet。
    • 网关有正确的 DNS 解析记录。
    • 网关启用 IP 转发。
  • DNAT 开启方式

    vim /etc/sysctl.confnet.ipv4.ip_forward = 1sysctl -p
  • DNAT 转换示例

    iptables -t nat -A PREROUTING -i ens33 -d 12.0.0.1 -p tcp --dport 80 -j DNAT --to 192.168.133.10
  • 九.防火墙规则备份与还原

  • 备份

    iptables-save > /opt/ipt.txt
  • 还原

    iptables-restore < /opt/ipt.txt
  • 保存与重启

    vim /etc/sysconfig/iptablesiptables-save > /etc/sysconfig/iptablessystemctl stop iptablessystemctl start iptables
  • 以上内容可根据实际需求进行调整和扩展,作为 iptables 防火墙配置和管理的参考文档。

    转载地址:http://qseu.baihongyu.com/

    你可能感兴趣的文章
    Non-final field ‘code‘ in enum StateEnum‘
    查看>>
    none 和 host 网络的适用场景 - 每天5分钟玩转 Docker 容器技术(31)
    查看>>
    None还可以是函数定义可选参数的一个默认值,设置成默认值时实参在调用该函数时可以不输入与None绑定的元素...
    查看>>
    NOPI读取Excel
    查看>>
    NoSQL&MongoDB
    查看>>
    NoSQL介绍
    查看>>
    Notepad ++ 安装与配置教程(非常详细)从零基础入门到精通,看完这一篇就够了
    查看>>
    Notepad++在线和离线安装JSON格式化插件
    查看>>
    notepad++最详情汇总
    查看>>
    notepad如何自动对齐_notepad++怎么自动排版
    查看>>
    Notification 使用详解(很全
    查看>>
    NotImplementedError: Cannot copy out of meta tensor; no data! Please use torch.nn.Module.to_empty()
    查看>>
    Now trying to drop the old temporary tablespace, the session hangs.
    查看>>
    nowcoder—Beauty of Trees
    查看>>
    np.arange()和np.linspace()绘制logistic回归图像时得到不同的结果?
    查看>>
    np.power的使用
    查看>>
    NPM 2FA双重认证的设置方法
    查看>>
    npm ERR! ERESOLVE could not resolve报错
    查看>>
    npm error Missing script: “server“npm errornpm error Did you mean this?npm error npm run serve
    查看>>
    npm error MSB3428: 未能加载 Visual C++ 组件“VCBuild.exe”。要解决此问题,1) 安装
    查看>>