栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Linux学习整理-网络防火墙iptables-概念篇

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Linux学习整理-网络防火墙iptables-概念篇

目录

1 Linux网络防火墙命令的关系图

2 iptables的概念

2.1 链(chain)

2.2 表(table)

2.3 规则(rule)

2.3.1 匹配(match)

2.3.2 目标(target)

2.4 链接追踪 Connection Tracking

3 iptables的开启关闭

4 实验环境


1 Linux网络防火墙命令的关系图

下图是Linux网络防火墙命令的关系图,Ubuntu的ufw已经学习过了,今天来做一下iptables试验。

       CentOS              Ubuntu★              openSUSE
  +--------------+    +------------+    +---------------------+   -*-
  | firewall-cmd |    |     ufw    |    |    SUSEfirewall2    |    |
  +--------------+    +------------+    +---------------------+    |
                                                                用户空间
  +-----------------------------------------------------------+    |
  |                     iptables command                      |    |
  +-----------------------------------------------------------+   -*-

  +-----------------------------------------------------------+   -*-
  |                                                           |    |
  |                      OS(Netfilter)                        | 内核空间
  |                                                           |    |
  +-----------------------------------------------------------+   -*-

2 iptables的概念

iptables可以检测、修改、转向、分组和丢弃IPv4数据包。看名字,顾名思义,是工作在网络层。要想理解iptables能做什么,然后什么时候用iptables,先得对iptables有个系统的概念。

 结合上面的iptables的数据流来说一下iptables的概念。

2.1 链(chain)

iptables有5条链,按照数据经过的顺序排列。

    PREROUTING-------数据进入网卡,进入路由前调用的链INPUT------------------数据经过路由后,进入本地程序前调用的链FORWARD-----------数据经过路由后,转发出去之前调用的链OUTPUT--------------本地程序产生的数据经过路由前调用的链POSTROUTING----经过路由后,从网卡发出之前调用的链

上面的5链是netfilter的内置链(built-in),用户可以自己创建链。

2.2 表(table)

iptables有5张表(不是4表5链)

raw(不常用)

     从上图可以看出,raw的优先级最高,有两个内置链。

          PREROUTING      OUTPUT

     因为这两个链都是在Connection Tracking之前被调用,所以系统跟踪不了,也就是                 用conntrack命令监视不到。

mangle(不常用)

     该表用于专门的数据包更改。有所有的5个内置链。

filter

     首先,这是iptables的命令的默认表,也就是不指定表的时候,默认用filter。过滤用的。

     有三个内置链。

         INPUT     FORWARD     OUTPUT

security(基本不用)

     SELinux security相关的。有三个内置链。

         INPUT     FORWARD     OUTPUT

nat

     用来做网络地址转换。有除了FORWARD以外的4个内置链。

 rawmanglefiltersecuritynat
PREROUTING  
INPUT 
FORWARD  
OUTPUT
POSTROUTING   

据上面的表格来看,主要用的就是filter表和nat表,也就是7条链。

2.3 规则(rule)

规则在链里,每条规则包含匹配的条件(match),和匹配条件后动作(target)。

2.3.1 匹配(match)
匹配条件例子
按协议匹配iptables -A INPUT -p tcp -j REJECT
所有TCP协议都拒绝
按源IP匹配iptables -A INPUT -s 192.168.0.0/24 -j REJECT
所有来自192.168.0网段的访问都拒绝
按目的IP匹配iptables -A OUTPUT -d 192.168.0.0/24 -j REJECT
所有去往192.168.0网段的访问都拒绝
按入网卡设备匹配iptables -A INPUT -i ens33 -j [TARGET]
按出网卡设备匹配iptables -A FORWARD -o ens33 -j [TARGET]
按源端口匹配iptables -A INPUT -p [tcp|udp] --sport 22 -j [TARGET]
按目的端口匹配iptables -A INPUT -p [tcp|udp] --dport 22 -j [TARGET]

还有各种各样的匹配条件,可以参照链接match

2.3.2 目标(target)

target就是匹配后执行的处理,常用的target有下列几种:

target处理内容
ACCEPT

匹配条件后,放行。

当前链的后面的规则,还有当前链所在的表的剩余链都不会执行。

LOG匹配条件后,写入日志
DROP匹配条件后,丢弃包(因为不会返回信息,发送方一直是等待状态,最好不用,可以用下面的REJECT)
REJECT

匹配条件后,丢弃包,并且会通知送信方,访问被拒(跟ufw里一样)

REJECT 目标仅在 INPUT、FORWARD 和 OUTPUT 链或其子链中有效

RETURN如果是在子链中,匹配条件后,无视这条rule,如果是在主链中,则采取默认策略(ACCEPT,REJECT等等)
REDIRECT

匹配条件后,做端口转换

REDIRECT 目标仅在 nat 表的 PREROUTING 和 OUTPUT 链中有效

DNAT

匹配条件后,做地址转换

DNAT 目标仅在 nat 表中的 PREROUTING 和 OUTPUT 链中有效

NOTRACK匹配条件后,数据不被跟踪。也就是用conntrack命令 看不到记录。

还有很多target,不常用,再有就是跳转到自定义的子链。

其它详细的可以参照target

2.4 链接追踪 Connection Tracking
# 用conntrack命令来跟踪数据包的路线
# Centos
yum install conntrack-tools

# Ubuntu
apt install conntrack

# 用法
conntrack -E

3 iptables的开启关闭

Centos

      用firewalld的开关来管理iptables的开关。

Ubuntu

      用ufw的开关来管理iptables的开关。

4 实验环境
                       192.168.0.0/24
访问用机器(Centos) --------------------- iptables设定机器(Ubuntu)
   192.168.0.211                            192.168.0.203

试验待续。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/705894.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号