iptables设置无状态和有状态防火墙学习总结

您所在的位置:网站首页 centos中关闭防火墙的命令 iptables设置无状态和有状态防火墙学习总结

iptables设置无状态和有状态防火墙学习总结

2023-07-02 05:22| 来源: 网络整理| 查看: 265

iptables设置无状态和有状态防火墙学习总结 一、一些概念1、netfilter2、iptables3、表(table),链(chain),规则(rule) 二、使用iptables1、iptables命令结构2、常见命令3、无状态防火墙1)、实验拓扑如下:2)、设置规则以防止外部机器(10.9.0.0/24)访问路由器机器,ping 除外。3)、请你修改路由器的 iptables 配置,使得容器 10.9.0.5 不可以 ping192.168.60.0/24 网络内的机器,但是 192.168.60.0/24 网络内的机器可以 ping 容器 10.9.0.5 4、有状态防火墙1)连接跟踪(connection tracking)2)有状态防火墙的四个状态3)任务

一、一些概念 1、netfilter

netfilter:在Linux内核中的一个软件框架,用于管理网络数据包。不仅具有网络地址转换(NAT)的功能,也具备数据包内容修改、以及数据包过滤等防火墙功能。利用运作于用户空间的应用软件,如iptable等,来控制Netfilter,系统管理者可以管理通过Linux操作系统的各种网络数据包。 下面是netfilter的五个钩子函数(hook): 在这里插入图片描述

2、iptables

我们可以使用 netfilter 构建一个简单的防火墙(自己编写C语言代码),实际上,Linux 已经内置了防火墙,也是基于 netfilter 的。这个防火墙叫做 iptables。 从技术上讲,防火墙的内核部分实现称为 Xtables,而 iptables 是一个用于配置防火墙的用户空间程序。 但是,iptables 通常用于指代内核部分实现和用户空间程序。

3、表(table),链(chain),规则(rule)

在这里插入图片描述

每个表包含几个链,每个链对应一个 netfilter Hook(上面介绍netfilter给出的图中有对应的执行时机)。基本上,每个链都指定了规则在何处执行。例如,FORWARD 链上的规则在NF_INET_FORWARD 上执行,INPUT 链上的规则在 NF_INET_LOCAL IN 上执行。 每个链都包含一组将被强制执行的防火墙规则。当我们设置防火墙时,我们会向这些链添加规则。 注: INPUT链处理进入主机的数据 OUTPUT链处理出主机的数据 FORWARD链处理本机转发的数据

关于不同规则的执行顺序参考以下文章: 链接: https://www.jianshu.com/p/15bd803e3bb8

二、使用iptables 1、iptables命令结构 #命令格式: iptables -t - -j

添加规则命令:iptables -t 表类型 -A chain名 规则内容,规则又分为三部分:匹配(match)、目标(target)、动作(action)。

#以下面命令举例 #1、-A INPUT 表示向INPUT链的末尾添加新规则 #2、-p icmp --icmp-type echo-request 表示匹配ICMP报文类型为"echo-request"的数据包(即ping请求) #3、-j ACCEPT表示对匹配到的数据包采取"ACCEPT"动作,即允许其进入系统 #注:1、属于chain 2、属于rule中的match 3、属于目标(target),也可以说是动作(action) iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT 2、常见命令 # 列出 NAT 表中所有的规则(没有行数) iptables -t nat -L -n #列出 FILTER 表中所有的规则(有行数) iptables -t filter -L -n --line-numbers #删除 NAT 表中所有的规则【在 docker 环境中不能轻易使用这个命令】 Iptables -t nat -F #删除 FILTER 表中 INPUT 链的第二条规则 iptables -t filter -D INPUT 2 #在 FILTER 表的 INPUT 链中添加一条规则,匹配 TCP 协议且目标端口为22 的流量,并将匹配的流量丢弃(DROP) iptables -t filter -A INPUT -p tcp --dport 22 -j DROP 3、无状态防火墙 1)、实验拓扑如下:

在这里插入图片描述

2)、设置规则以防止外部机器(10.9.0.0/24)访问路由器机器,ping 除外。 #允许入站 ICMP 回显请求(ping),即允许远程机器 ping 这台机器 iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT #允许出站 ICMP 回显响应(pong),即允许此机器响应远程机器的 ping 请求 iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT #将 OUTPUT 链的默认策略设置为 DROP。这意味着任何不符合 OUTPUT 链中任何规则的数据包都将被丢弃或拒绝。 iptables -P OUTPUT DROP #将 INPUT 链的默认策略设置为 DROP。这意味着任何不符合 INPUT 链中任何规则的数据包都将被丢弃或拒绝。 iptables -P INPUT DROP 3)、请你修改路由器的 iptables 配置,使得容器 10.9.0.5 不可以 ping192.168.60.0/24 网络内的机器,但是 192.168.60.0/24 网络内的机器可以 ping 容器 10.9.0.5 #-s 10.9.0.5表示源地址 #-d 192.168.60.0/24表示目标地址(这里为一个网段) #-j DROP表示匹配到的数据包被丢弃 iptables -A FORWARD -s 10.9.0.5 -d 192.168.60.0/24 -p icmp --icmp-type echo-request -j DROP 4、有状态防火墙 1)连接跟踪(connection tracking)

Conntrack是Linux内核中的一个模块,用于跟踪网络连接状态并维护相应的连接信息。它可以在IP层和TCP/UDP层之间提供一个抽象接口,使得上层协议可以不必关注底层的细节,而直接使用连接状态。

#检查路由器容器上的连接跟踪信息可以用以下命令 conntrack -L #为了实时输出信息,我们用 watch 命令来定期执行上面命令 watch -n1 conntrack -L #可以使用以下命令清空记录 conntrack -D 2)有状态防火墙的四个状态

NEW(新连接):表示这是一个新建立的连接,尚未进行任何数据传输。

ESTABLISHED(已建立连接):表示连接已经建立成功,并且数据可以正常传输。

RELATED(相关连接):表示这个连接与另一个连接有关联,例如FTP数据传输时建立的控制连接。

INVALID(无效连接):表示这个连接状态不合法,很可能是由于防火墙或其他安全设备的干扰导致的。

3)任务 外 网 (10.9.0.0/24) 只 能 telnet 192.168.60.5 , 不 能 telnet 其 他 内 网(192.168.60/24)机子内部主机可以访问所有内部服务器和外网的服务器。 #所有已连接和相关连接数据包都允许通行 iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT #-s 10.9.0.0/24 -d 192.168.60.5的新连接数据包通行 iptables -A FORWARD -s 10.9.0.0/24 -d 192.168.60.5 -p tcp --dport 23 -m conntrack --ctstate NEW -j ACCEPT #不允许外网通过telnet访问192.168.60.0/24网段主机(由于上一条规则192.168.60.5除外) iptables -A FORWARD -s 10.9.0.0/24 -d 192.168.60.0/24 -p tcp --dport 23 -m conntrack --ctstate NEW -j DROP #所有已建立连接和已建立连接的关联连接允许通行,这个命令上面已经有了,可以不写,但是我将两点要求分开分析了,所以这里又写一遍 iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT #以下应该不用再解释了 iptables -A FORWARD -s 192.168.60.0/24 -d 10.9.0.0/24 -j ACCEPT #这句代表所有的地址,不管内网外网均可连接 iptables -A FORWARD -s 192.168.60.0/24 -d 0.0.0.0/0 -j ACCEPT #这句代表外网不能访问内网 iptables -A FORWARD -s 0.0.0.0/0 -d 192.168.60.0/24 -m conntrack --ctstate NEW -j DROP


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3