防火墙|Linux骚操作之第三十话防火墙
文章目录
- 前言
- 一、Iptables
- 二、包过滤的工作层次
- 三、iptable的表、链结构
-
-
- 1. 四表五链
- 2. 四表
- 3. 五链
- 4. 数据包过滤的匹配流程
-
- 四、规则链匹配顺序
-
-
- 1. 主机型防火墙
- 2. 规则链内的匹配设顺序
- 3. 数据包在规则表、链间的匹配流程
-
- 五、编写防火墙规则
- 六、基本语法
- 七、添加、查看、删除规则等基本操作
- 总结
前言 在 Internet 中,企业通过架设各种应用系统来为用户提供各种网络服务,如 Web 网站、电子邮件系统、FTP 服务器、数据库系统等。那么,如何来保护这些服务器,过滤企业不需要的访问甚至是恶意的入侵呢?Linux 的防火墙体系主要工作在网络层,针对 TCP/IP 数据包实施过滤和限制,属于典型的包过滤防火墙(或称为网络层防火墙)。Linux 系统的防火墙体系基于内核编码实现, 具有非常稳定的性能和高效率,也因此获得广泛的应用。
一、Iptables
- 位于/sbin/iptables,用来管理防火墙规则的工具
- 称为LINUX防火墙的“用户态”
- 主要是网络层,针对IP数据包
- 体现在对包内的IP地址、端口等信息的处理上
文章图片
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策略例外,表示记录相关日志)要么放行 要么丢弃,若在该链内找不到相匹配的规则,则按该链的默认策略处理(未修改的状况下,默认策略为允许)
【防火墙|Linux骚操作之第三十话防火墙】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下面如何查看tomcat已经使用多少线程
- Beego打包部署到Linux
- 第2章(换种活法,骚气十足)
- Linux|109 个实用 shell 脚本
- linux定时任务contab
- 芯灵思SinlinxA33开发板Linux内核定时器编程
- day16-Linux|day16-Linux 软件管理
- 如何在阿里云linux上部署java项目
- 离骚
- mac|mac 链接linux服务器 如何在Mac上连接服务器