Linux之iptables防火墙

      最后更新:2022-04-28 16:37

      目录

      表1 防火墙概述

      ​

      此项目是全球之声网络特别报导的一部分。 netfilter/pables

      四表五链

      四表

      五链

      表链结构示意图

      链条规则的匹配顺序

      规则链内的匹配顺序

      内核中的软件包分布

      工作表配置

      安装工作表

      无法启动 Evolution 的邮件组件 。

      ibtables 的 ibtable 命令行

      常用控制类型

      常用的管理选项

      ​

      添加新的防火墙规则

      查看规则列表

      设置默认策略

      删除规则

      清空规则

      规则的匹配

      通用匹配

      隐含匹配

      匹配 TCP 标签: -- tcp- lags TCP 标签匹配

      --mimp-type ICMP 类型,可以是字符串或数字代码

      显式匹配

      状态匹配

      总结

      表1 防火墙概述

      Linux的防火墙:一个IP信息包过滤系统,由Netfilter和iptable两部分组成。

      大部分工作是在网络一级完成的,重点是IP数据包,为过滤和限制TCP/IP数据包,使用标准包过滤防火墙(或所谓的网络层防火墙)。

      Netfilter/ibables:一个由Netfilter和iptable两部分组成的IP包过滤系统。

      此项目是全球之声网络特别报导的一部分。 netfilter/pables

      网络过滤器是一种防火墙功能系统,是内核状态的一部分(也称为内核空间)。
      它是内核的组成部分,由一个或多个包件过滤表组成,其中含有内核用来管制包件过滤的一套规则。

      表格是一种防火墙管理机制,是使用国(又称用户空间)的一部分。
      是一个用于管理 Linux 防火墙的指令应用程序,便于创建、编辑和删除软件包过滤表格中的规则,该表格通常位于/sbin/ibables目录中。

      netfilter/iptables.netfilter/iptables.netfilter/iptables.netfilter/iptables.netfilter/iptables.netfilter/iptables.netfilter/iptables.netfilter/iptables.netfilter/ipables.netfilter/iptables.netfilter/iptables.netfilter/iptables.netfilter/ifables.netfilter/i
      4个规则表格。在指定了表格中的所有规则之后,这些规则无需重新启动服务即可生效。

      四表五链

      规则表的功能是容纳众多的规则链。
      规则链的功能是适应不同的防火墙规则。
      简言之:表格中有一个链条,链条中有一个规则。

      四表

      表名 作用
      raw表 确定数据包后是否为状态。由OTPUT和Preroting两个规则链组成。
      mangle表 修改数据包的内容,以便用于流动矫形和标记数据包。 数据包由五个规则链组成:INPUT、AUTPUT、Forward、PEROUT和POSTOUT。
      nat表 负责网络地址转换,以改变数据包中的源、目标 IP 地址或端口。 由三个规则链组成: OHTPUT 、 PEROUT 和 POSTROUT 。
      filter表 它由三个规则链组成:INPUT、FORWARD和EUTPUT。

      # 四个位元表格很少使用打牌表格和原始表格。

      五链

      链名 作用
      INPUT 处理站的处理数据包,使目的 IP 与机器的数据包相匹配。
      OUTPUT 在这一链条上往往不处理外站数据包。
      FORWARD 处理数据包转发,以匹配流数据包。
      预旋转链 在选择路线之前分析数据包,以改变目的地地址,并使DNA T. 等同于内联网服务器IP和港口测绘到Routside外部IP和港口。
      铁链链 在选择路线后,处理数据集,以更改源地址,并将其作为 SNAT 使用。 内部网络主机使用路由器 NAT 转换功能,通过公共IP 地址与互联网连接。

      表链结构示意图

      数据包到达防火墙时,规则表之间的优先顺序:raw > mangle > nat > filter

      链条规则的匹配顺序

      主机型防火墙:

      入站数据(来自外界的数据包,且目标地址是防火墙本机) : PREROUTING --> INPUT --> 本机的应用程序

      出站数据(从防火墙本机向外部地址发送的数据包) :本机的应用程序–> OUTPUT --> POSTROUTING

      网络型防火墙:

      转发数据(需要经过防火墙转发的数据包) : PREROUTING --> FORWARD --> POSTROUTING

      规则链内的匹配顺序

      从上到下检查顺序并发现匹配规则,即停止(LOG战略例外,表明适当的记录记录),如果链条中未找到匹配规则,则根据链条的默认政策处理(未修改,允许采用默认政策)

      内核中的软件包分布

      当一个数据包进入网卡时,数据包首先进入预旋转链,内核根据数据包目的IP判断是否需要 转送出去

      如果软件包被放入机器, 它会一直沿着地图一直到到达 INPUT 链。 当数据包到达 INPUT 链时, 它会被任何过程接收 。 此平面上执行的程序可以发送一个数据包, 通过 OUPUT 链, 然后到达 。

      如果数据包是要转发出去的,且内核允许转发,数据包就会向右移动,经过FORWARD链,然后到达铁链链输出

      工作表配置

      安装工作表

      entos 7 默认使用防火墙而不安装防火墙,因此您必须关闭防火墙,如果您想要使用防火墙,则必须安装防火墙。

      我不确定 干油站防防火墙 禁用防火墙
      抱歉, Stemcl 禁用防火墙。 从服务开始就禁用防火墙 。
      使用 yum-y 的安装itables- services
      我不确定,但试一下干线启动易盘 服务启动易盘服务

      无法启动 Evolution 的邮件组件 。

      1.使用ibtables 的 ibtable 命令行。
      2. 使用系统配置防火墙。

      ibtables 的 ibtable 命令行

      命令格式
      [-t表格名称]管理选项[链 [匹配标 [-j 控制类型]

      注意事项:

      (1) 如果未提供名称,默认值与过滤表对应。

      (2) 如果不提供链条名称,“违约”一词适用于数据库中的所有链条。

      (3) 必须说明一个匹配条件,但设定链条的默认方法除外。

      (4) 英文大写字母应用于选择、链名和控制类型,其他一切应较低。

      常用控制类型

      常用的控制类型 说明
      ACCEPT 允许数据包通过。
      DROP 直接丢弃数据包,不提供答复信息。
      REJECT 软件包被拒绝, 并在数据结尾处发送回复信息 。
      SNAT 更改软件包的源地址 。
      DNAT 修改软件包的目的地地址 。
      MASQUERADE 假装是一个 IP 地址没有固定 。
      LOG 日志信息保存在 /var/log/sessions 文件中, 软件包被发送到下一个规则。 LOG 只是一个不真正处理数据包的辅助操作 。

      常用的管理选项

      常用的管理选项 作用
      -A 在所提供的链条结束时,增加一条新规则(附录)。
      -I 在所提供链条的起始处插入新的规则(插入);如果不指定序号,这是第一条规则。
      -R 指定链中的规则可提供规则的序号或特定内容(替换)。
      -P 设定指定链条的默认政策( 政策 ) 。
      -D 删除(删除)链条中的一条规则,该规则可以提供规则的编号或文本。
      -F 删除( 淡色) 所提供的链条中的所有规则, 或者如果未指定链条名称, 则删除列表中的所有链条 。
      -L 列表( 列表) 选定链条中的所有规则, 如果没有指定链条名称, 或数据库中的所有链条 ) 选定链条中的所有规则, 如果没有指定链条名称, 或数据库中的所有链条 。
      -n 以数字(数字)形式显示输出结果, 如 IP 地址, 而不是主机名 。
      -v 显示信息, 如匹配的软件包数和每条规则的字节数 。
      –line-numbers 在看条例时, 显示规则的编号 。

      添加新的防火墙规则

      在添加新的防火墙规则时,请使用管理选项“-A”和“-I”,它们分别用来添加规则和插入规则。

      iptables -t  filter  -A  INPUT  -p  icmp  -j REJECT
      iptables -I  INPUT 2 -p tcp  --dport  22  -j ACCEPT

      查看规则列表

      在审查目前的防火墙规则时用“-L”管理选项,除了“行号”选项外,您还可以显示链条规则的序列号。例如,如果您想在 INPUT 链式过滤表格中看到所有规则,请点击此处。并显示规则序号, 可以执行以下操作

      [-t-列表名称] - n-L [链 [线号] ibtables
      或
      iptables - [vn]L
      #注:作为Ln,不能共同撰写。

      设置默认策略

      iptables [-t 表名] -P <链名> <控制类型>

      iptables -P INPUT DROP
      iptables -P FORWARD DROP
      # 当网络防火墙和主机防火墙在生产环境中配置时, 默认规则被设置为 DROP, 白色列表被配置 。

      远程连接就连不上了

      删除规则

      iptables -D INPUT 2
      iptables -t filter -D INPUT -p icmp -j REJECT

      注意:
      一. 如果规则清单中包含许多类似规则,则只对应内容删除的最小数字。
      二. 确保规则编号小于数字与删除对应的原有数字;否则会通知错误。
      三. 确认如果删除的数量与内容相符,则该规则即存在;否则就会发生错误。

      清空规则

      [ -- t- list] - F [链名] ibables

      iptables -F INPUT
      iptables -F

      注意:
      一.-F 只是从链条中删除了所有的规则。 它对 P 的默认规则没有影响。 默认规则必须手动调整 。
      二号,在配置降落伞时,小心使用F!
      # 防止从相关规则中删除远程连接, 使远程连接无法与主机远程连接,
      三。 如果您不指定手表的名称和链条的名称, 过滤器表格将清空链条中的所有规则 。

      规则的匹配

      通用匹配

      它可以直接使用,而不需要额外的要求或补充,例如网络协议、IP地址、网络接口等等。

      协议正确无误: -p协议名称
      地址匹配: - 源地址, - d 目的地地址,可以是 IP 地址、 区域、 域名或空字符串( 任何地址 ) 。
      匹配界面: -i 访问卡, - o 出境卡

      iptables -A FORWARD ! -p icmp -j ACCEPT
      iptables -A INPUT -s 192.168.217.110 -j DROP
      iptables -I INPUT -i ens33 -s 192.168.91.0/24 -j DROP

      iptables -I INPUT -p icmp -j DROP
      对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,我..

      [root@localhost ~]#iptables -P INPUT DROP
      [root@localhost ~]#iptables -t filter -A INPUT ! -p icmp -j ACCEPT
      除了 icmp #

      隐含匹配

      作为要求,具体协议匹配是必要的,其中包括港口、TCP标签和IPCMP类型等条件。

      -- 港口来源, - 港口目的地港口,可以是特定港口,港口范围

      100个数据包是匹配的来源

      - 10: 30: 00 相应的源端端口为 100-3: 00 数据集 。

      -sport 30: 00 匹配源端口为 3,00 或更低 。

      -sport 100:匹配源为100或以上。

      --sport和--dport 必须配合-p <协议类型>使用

      0-65535港可进入范围。

      匹配 TCP 标签: -- tcp- lags TCP 标签匹配

      iptables -I INPUT -i ens33 -P tcp --tcp-flags SYN, RST,ACK SYN -j ACCEPT
      删除 SYN 请求包并设置其他软件包。

      --mimp-type ICMP 类型,可以是字符串或数字代码

      “请求请求”(代码8)用于请求。
      反射用"Echo -Reply"来反射
      "关系无法达到" 表示目标无法实现
      您可通过运行“ ibables- P icmp-h” 命令访问各种 ICMP 协议类型的帮助信息 。

      ipables-A INPUT-P cmp-mimp- type 8-j 下降,防止其他主机播放 ping
      ipables-A INPUT-P mp-icmp-type0-j ACCEPT 命令允许主机与其他主机进行通信。
      如果当前 ping 与其他主机没有连接, Ipables-A INPUT-p icmp-icmp-icmp- type 3- j ACCEPT 通知目标。
      Pentus-A INPUT-P imp-j REJECT, 此时其他主机必须配置 icmp协议的控件类型为 RejECT 。

      显式匹配

      类型必须以“可扩展模块”的形式指定,其中包括多端端口、MAC地址、IP范围、数据包状况等标准。

      多端口匹配

      -m 多端运动源列表
      -m 多port-dport 目的地列表
      iptables -A INPUT -p tcp -m multiport --dport 80,22,21,20,53 -j ACCEPT
      iptables -A INPUT -p udp -m multiport --dport 53 -j ACCEPT

      IP范围匹配

      - m irange-src-range IP 地址范围
      iptables -A FORWARD -P udp -m iprange --src-range 192.168.80.100-192.168.80.200 -j DROP
      禁用 -- dup 数据包源地址转发 。

      MAC地址匹配

      -m mmac-MAC -MAC 来源地址
      iptables -A FORWARD -m mac --mac-source xx:xx:xx:xx:xx:xx -j DROP
      禁用数据包从此计算机上的 MAC 地址传输 。

      状态匹配

      - m 州与州之间联系状况

      常见链接状态

      新:尚未建立任何链接。
      设立:如果提出要求或连接,将确定连接状态。
      与现有连接(如FTP主被动模式数据连接)的生态联系,经常与所建立的
      INVALID: 无法被确认为属于某一连接或没有任何国家。
      iptables -A FORWARD -m state --state NEW -P tcp ! --syn -j DROP
      要求提供与正常TCP连接的非同步数据包(例如,禁止使用伪造的网络攻击工具包)。

      iptables -I INPUT -p tcp -m multiport --dport 80,22,21,20,53 -j ACCEPT
      iptables -A INPUT -P udp -m multiport --dport 53 -j ACCEPT
      iptables -A INPUT -P tcp -m state --state ESTABLISHED, RELATED -j ACCEPT
      已经建立 tcp 连接的包件以及与连接的包件允许通过。
      例如,当我与你做生意时, 我们创造交易, 当我们付款时, 我们可以使用支付能力 与这个业务相关联。
      iptables -P INPUT DROP

      总结

      表格中有一个链条,链条包含一条规则。

      ibables- t- list - I 链名 - p 协议名 - j 命令类型

      -A                 -s         --sport

      -D                -d         --dport

      -R                -i  -o

      -nL              -m  tcp|multiport|iprange|state

      -F  [链名]

      P、链名和控制类型

      本文由 在线网速测试 整理编辑,转载请注明出处。

          热门文章

          文章分类