Linux-------iptables防火墙管理工具

文章目录

  • 一,基础概念
      • 1.1防火墙的一些名词解释(针对iptables)
      • 1.2防火墙管理工具
      • 1.3 防火墙工作流程
      • 1.4 iptables防火墙构成
        • 1.4.1tables
        • 1.4.2 IPTABLES 规则(Rules)
        • 1.4.3 IPTABLES 规则链中参数
      • 1.5 iptables中基本的选项
        • 1.5.1设置规则链的默认策略 -P
        • 1.5.2添加规则链的协议规则 -I 规则链 -p 协议 -j 行为
        • 1.5.3删除一条规则 -D 规则链 num
        • 1.5.4指定端口(例如设置ssh) --dport 端口号 -j 行为
      • 1.6 永久保存设置的规则(在red hat)

一,基础概念

1.1防火墙的一些名词解释(针对iptables)

相较于内网,外部公网环境更加恶劣,罪恶丛生。在公网与内网之间充当保护屏障的防火墙,虽然有软件或硬件之分,但主要功能都是依据策略对穿越防火墙自身的流量进行过滤。3、4层的防火墙,叫网络层的防火墙。

防火墙策略规则:防火墙策略可以基于流量的源目地址、端口号、协议、应用等信息来定制,监控出入的流量(通 / 阻)。
防火墙功能的实现:防火墙使用预先定制的策略规则监控出入的流量,若流量与某一条策略规则相匹配,则执行相应的处理,反之则丢弃。这样一来,就可以保证仅有合法的流量在企业内网和外部公网之间流动了。
规则:iptables服务把用于处理或过滤流量的策略条目称之为规则
规则链:多条规则可以组成一个规则链,而规则链则依据数据包处理位置的不同进行分类

①在进行路由选择前处理数据包(PREROUTING)
②处理流入的数据包(INPUT)---------------------------------->使用最多,增加入侵难度
③处理流出的数据包(OUTPUT)
④处理转发的数据包(FORWARD)
⑤在进行路由选择后处理数据包(POSTROUTING)

行为(处理匹配到的流量)

①ACCEPT(允许流量通过)
②REJECT(拒绝流量通过)------->会回复
③LOG(记录日志信息)
④DROP(拒绝流量通过)-------->直接丢弃,不响应

1.2防火墙管理工具

在Linux系统里iptables与firewalld都不是真正的防火墙,它们都只是用来定义防火墙策略的防火墙管理工具而已(一种服务)。

iptables

  • CentOS6中使用
  • iptables服务会把配置好的防火墙策略交由内核层面的netfilter网络过滤器来处理

firewalld

  • CentOS7使用
  • firewalld服务则是把配置好的防火墙策略交由内核层面的nftables包过滤框架来处理。

当前在Linux系统中其实存在多个防火墙管理工具,虽然这些工具各有优劣,但它们在防火墙策略的配置思路上是保持一致的

1.3 防火墙工作流程

  • 接收数据后从上到下读取配置的策略规则
    – 找到匹配的—>执行匹配项定义的行为(广义上:通 / 阻)
    – 若未匹配----->执行默认策略行为(广义上:通 / 阻)
    Linux-------iptables防火墙管理工具_第1张图片
默认策略行为应该和匹配项定义的行为不同,否则无意义

由于匹配顺序为从上到下,因此要把比较严格的,优先级比较高的策略规则放到前面,避免出错。

1.4 iptables防火墙构成

iptables的结构:iptables -> Tables -> Chains (链)-> Rules

  • Linux-------iptables防火墙管理工具_第2张图片

1.4.1tables

iptables具有Filter, NAT, Mangle, Raw四种内建表:
Filter表:Filter表示iptables的默认表,因此如果你没有自定义表,那么就默认使用filter表,它具有以下三种内建链

  • INPUT链 – 处理来自外部的数据。
  • OUTPUT链 – 处理向外发送的数据。
  • FORWARD链 – 将数据转发到本机的其他网卡设备上。

NAT表:NAT表有三种内建链

  • PREROUTING链 – 处理刚到达本机并在路由转发前的数据包。它会转换数据包中的目标IP地址(destination ip address),通常用于DNAT(destination NAT)。
  • POSTROUTING链 – 处理即将离开本机的数据包。它会转换数据包中的源IP地址(source ip address),通常用于SNAT(source NAT)。
  • OUTPUT链 – 处理本机产生的数据包。

Mangle表:Mangle表用于指定如何处理数据包。它能改变TCP头中的QoS位Mangle表具有5个内建链

  • PREROUTING
  • OUTPUT
  • FORWARD
  • INPUT
  • POSTROUTIN

Raw表Raw表用于处理异常,它具有2个内建链:Raw表用于处理异常,它具有2个内建链

  • PREROUTING chain
  • OUTPUT chai

Linux-------iptables防火墙管理工具_第3张图片

1.4.2 IPTABLES 规则(Rules)

①iptables规则的关键

  • Rules包括一个条件和一个目标(target)
  • 如果满足条件,就执行目标(target)中的规则或者特定值。
  • 如果不满足条件,就判断下一条Rules。

②目标值(Target Values):四种行为

1.4.3 IPTABLES 规则链中参数

Linux-------iptables防火墙管理工具_第4张图片

  • num – 指定链中规则编号
    target – 目标值
    prot – 协议:tcp, udp, icmp等
    source – 数据包的源IP地址
    destination – 数据包的目标IP地址

1.5 iptables中基本的选项

Linux-------iptables防火墙管理工具_第5张图片

1.5.1设置规则链的默认策略 -P

iptables -P 规则链 行为

例如设置INPUT规则链为DROP

  • Linux-------iptables防火墙管理工具_第6张图片

验证

  • Linux-------iptables防火墙管理工具_第7张图片

注意 默认拒绝动做只能是DROP,不能是REJECT

1.5.2添加规则链的协议规则 -I 规则链 -p 协议 -j 行为

iptables -I 指定规则链 -p 协议 -j 指定行为

例如添加icmp的DROP行为>- Linux-------iptables防火墙管理工具_第8张图片

  • Linux-------iptables防火墙管理工具_第9张图片

1.5.3删除一条规则 -D 规则链 num

例如

  • Linux-------iptables防火墙管理工具_第10张图片

1.5.4指定端口(例如设置ssh) --dport 端口号 -j 行为

将INPUT规则链设置为只允许指定网段的主机访问本机的22端口,拒绝来自其他所有主机的流量
-Linux-------iptables防火墙管理工具_第11张图片
✈ 在设置完上述INPUT规则链之后,使用IP地址在192.168.10.0/24网段内的主机访问服务器(即前面提到的设置了INPUT规则链的主机)的22端口,效果如下:

  • Linux-------iptables防火墙管理工具_第12张图片

✈再使用IP地址在192.168.20.0/24网段内的主机访问服务器的22端口(虽网段不同,但已确认可以相互通信),效果如下,就会提示连接请求被拒绝了(Connection failed):

  • 在这里插入图片描述

注意
防火墙策略规则是按照从上到下的顺序匹配的,因此一定要把允许动作放到拒绝动作前面,否则所有的流量就将都被拒绝掉,从而导致任何主机都无法访问ssh服务。

封闭本机端口

  • Linux-------iptables防火墙管理工具_第13张图片

带范围

  • Linux-------iptables防火墙管理工具_第14张图片

1.6 永久保存设置的规则(在red hat)

service iptables save
重启后可能还要重启iptables服务
service iptables restart

  • Linux-------iptables防火墙管理工具_第15张图片

你可能感兴趣的:(linux)