Linux教程

Linux骚操作之第三十话防火墙

本文主要是介绍Linux骚操作之第三十话防火墙,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

文章目录

  • 前言
  • 一、Iptables
  • 二、包过滤的工作层次
  • 三、iptable的表、链结构
      • 1. 四表五链
      • 2. 四表
      • 3. 五链
      • 4. 数据包过滤的匹配流程
  • 四、规则链匹配顺序
      • 1. 主机型防火墙
      • 2. 规则链内的匹配设顺序
      • 3. 数据包在规则表、链间的匹配流程
  • 五、编写防火墙规则
  • 六、基本语法
  • 七、添加、查看、删除规则等基本操作
  • 总结

前言

在 Internet 中,企业通过架设各种应用系统来为用户提供各种网络服务,如 Web 网站、电子邮件系统、FTP 服务器、数据库系统等。那么,如何来保护这些服务器,过滤企业不需要的访问甚至是恶意的入侵呢?Linux 的防火墙体系主要工作在网络层,针对 TCP/IP 数据包实施过滤和限制,属于典型的包过滤防火墙(或称为网络层防火墙)。Linux 系统的防火墙体系基于内核编码实现, 具有非常稳定的性能和高效率,也因此获得广泛的应用。

一、Iptables

  1. 位于/sbin/iptables,用来管理防火墙规则的工具
  2. 称为LINUX防火墙的“用户态”

二、包过滤的工作层次

  1. 主要是网络层,针对IP数据包
  2. 体现在对包内的IP地址、端口等信息的处理上
    在这里插入图片描述

三、iptable的表、链结构

1. 四表五链

1.1、规则的作用:对数据包进行过滤或处理

1.2、链的作用:容纳各种防火墙规则

1.3、链的分类依据:处理数据包的不同时机

2. 四表

2.1、raw:主要用来决定是否对数据包进行状态跟踪,包含两个规则链:OUTPUT、PREROUTING

2.2、Mangle:修改数据包内容,用来做流量整形的,给数据包设置标记,包含五个规则链:INPUT、OUTPUT、FORWSRD、PREROUTING、POSTROUTING

2.3、NAT:负责网络地址转换,用来修改数据包中的源、目标IP地址或端口,包含三个规则链:OUTPUT、PREROUTING、POSTROUTING

2.4、Filter:负责过滤数据包,确定是否放行该数据包(过滤),包含三个链,即:PREROUTING、POSTROUTING、OUTPUT

3. 五链

3.1、INPUT:处理入站数据包

3.2、OUTPUT:处理出站数据包

3.3、FORWARD:处理转发数据包

3.4、POSTROUTING链:在进行路由选择后处理数据包3.5、PREROUTING链:在进行路由选择前处理数据包

4. 数据包过滤的匹配流程

优先顺序:raw>mangle>nat>filter
在这里插入图片描述

四、规则链匹配顺序

1. 主机型防火墙

1.1、数据包直接进入到防火墙所在的服务器的内部某一个应用程序当中,直接进入到服务,入站数据(来自外界的数据包,且目标地址是防火墙本机) : PREROUTING --> INPUT --> 本机的应用程序。

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

1.3、网络型防火墙:转发数据(需要经过防火墙转发的数据包) : PREROUTING --> FORWARD --> POSTROUTING。

2. 规则链内的匹配设顺序

2.1、自上向下按顺序依次进行检查,找到相匹配的规则即停止(LOG策略例外,表示记录相关日志)要么放行 要么丢弃,若在该链内找不到相匹配的规则,则按该链的默认策略处理(未修改的状况下,默认策略为允许)

2.2、一旦找到一条匹配规则将不再检查后续的其他规则,如果一直找不到匹配的规则,就按默认规则处理。

2.3、默认规则用iptables -L查看,规则链后面出现(policy ACCEPT)即是默认放行

2.4、默认策略不参与链内规则的顺序编排

2.5、-F清空链时,默认策略不受影响

3. 数据包在规则表、链间的匹配流程

3.1、入站数据流向:来自外界的数据包到达防火墙后,首先被 PREROUTING 链处理(是否修改数据包地址等),然后进行路由选择(判断该数据包应发往何处);如果数据包的目标地址是防火墙本机(如 Internet 用户访问网关的 Web 服务端口),那么内核将其传递给INPUT 链进行处理(决定是否允许通过等),通过以后再交给系统上层的应用程序(如 httpd 服务器)进行响应。

3.2、转发数据流向:来自外界的数据包到达防火墙后,首先被 PREROUTING 链处理,然后再进行路由选择;如果数据包的目标地址是其他外部地址(如局域网用户通过网关访问 QQ 服务器),则内核将其传递给 FORWARD 链进行处理(允许转发或拦截、丢弃),最后交给 POSTROUTING 链(是否修改数据包的地址等)进行处理。

3.3、出站数据流向:防火墙本机向外部地址发送的数据包(如在防火墙主机中测试公网 DNS服务时),首先进行路由选择,确定了输出路径后,再经由 OUTPUT 链处理,最后再交 POSTROUTING 链(是否修改数据包的地址等)进行处理。
在这里插入图片描述

五、编写防火墙规则

1、IP table安装

CentOS7默认使用firewalld防火墙,没有安装IP table,若想使用,必须先关系firewalld防火墙,再安装iptable
在这里插入图片描述
在这里插入图片描述

六、基本语法

1、语法构成
在这里插入图片描述
2、数据包的常见控制类型

在这里插入图片描述

七、添加、查看、删除规则等基本操作

1、iptables 命令的常用管理选项
在这里插入图片描述
在这里插入图片描述2、查询iptable以及清空iptable文件
在这里插入图片描述
3、禁止ICMPping通本网段
在这里插入图片描述
在这里插入图片描述
4、Ssh 22端口案例
-i 在指定链中插入一条新的
在这里插入图片描述
-d 删除
在这里插入图片描述在这里插入图片描述
5、查看规则列表
在这里插入图片描述
6、以数字形式显示
在这里插入图片描述
7、删除规则
在这里插入图片描述
8、自上而下顺序

在这里插入图片描述
在这里插入图片描述
9、规则的匹配条件
9.1、通用匹配:可直接使用,不依赖于其他条件或扩展,包括网络协议、IP地址、网络接口等条件。
协议匹配:-p协议名
地址匹配:-s 源地址、-d目的地址
端口匹配:-i入站网卡、-o出站网卡
9.2、案例
在这里插入图片描述
在这里插入图片描述
9.3、隐含匹配

9.3.1、端口匹配: --sport 源端口、–dport 目的端口

9.3.2、–sport 1000 匹配源端口是1000的数据包

9.3.3、–sport 1000:3000 匹配源端口是1000-3000的数据包

9.3.4、–sport :3000 匹配源端口是3000及以下的数据包

9.3.5、–sport 1000: 匹配源端口是1000及以上的数据包

9.3.6、注意: --sport和–dport 必须配合-p <协议类型>使用

9.4、案例
在这里插入图片描述
10、TCP标记

10.1、SYN建立联机

10.2、ACK确认

10.3、PSH传送

10.4、FIN结束

10.5、RST重置

10.6、URG紧急

10.7、案例在这里插入图片描述
在这里插入图片描述

总结

1、netfilter是实现过滤防火墙功能的内核机制,iptables是管理防火墙规则的用户态工具

2、iptables的规则体系默认包括四个表(filter、nat、mangle、raw)和五种链(INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING)

3、表的匹配顺序为 raw → mangle → nat → filter

4、链的匹配顺序取决于具体的数据流向,且遵循“匹配即停止”的原则,但LOG操作除外

5、iptables规则的匹配条件类型包括通用匹配、隐含匹配、显示匹配,其中显示匹配必须以“-m 模块名称”加载模块

这篇关于Linux骚操作之第三十话防火墙的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!