linux-安全-iptables防火墙基础笔记

目录

[一、 iptables链结构](#一、 iptables链结构)

五链

[二、 iptables表结构](#二、 iptables表结构)

四表

[三、 匹配流程](#三、 匹配流程)

[四、 语法](#四、 语法)

[五、 匹配](#五、 匹配)

[1. 通用匹配](#1. 通用匹配)

[2. 隐含匹配](#2. 隐含匹配)

[3. 显示匹配](#3. 显示匹配)

[六、 SNAT](#六、 SNAT)

[七、 DNAT](#七、 DNAT)

[八、 规则备份及还原](#八、 规则备份及还原)

[1. 备份](#1. 备份)

[2. 还原](#2. 还原)


这篇将讲解iptables防火墙的基础知识

一、 iptables链结构

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

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

五链

  1. input:处理入站数据包
  2. output:处理出站
  3. forward:处理转发
  4. postrouting:在路由选择后处理 内到外 SNAT
  5. prerouting:在路由选择前处理 外到内 DNAT

二、 iptables表结构

规则表作用:容纳各种规则链

四表

  1. raw:确定是否对该数据包进行状态跟踪
  2. mangle:为数据包设置标记
  3. nat:修改源、目标IP/端口
  4. filter:确定是否过滤

表链示意图


三、 匹配流程

表:raw-mangle-nat-filter

  • 入站:prerouting-input
  • 出站:output-postrouting
  • 转发:prerouting-forward-postrouting

链内匹配顺序:按顺序一次检查,匹配即停(log除外),若找不到相匹配的规则,则按该链默认策略

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

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

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


四、 语法

bash 复制代码
iptables [-t表名] 选项 [链名] [条件] [-j控制类型]

选项

  • -A:添加
  • -I:插入
  • -D:删除
  • -L:列出
  • -n:数字形式
  • -v:更详细
  • -F:删所有
  • -P:设置默认

控制类型

  • ACCEPT:允许
  • DROP:丢弃
  • REJECT:拒绝
  • LOG:日志

五、 匹配

1. 通用匹配

协议匹配:-p 协议名

地址

-s:源地址

-d:目标地址

接口

-i:入站

-o:出战

2. 隐含匹配

端口匹配

--sport:源端口

--dport:目标端口

ICMP

--icmp-type 类型

3. 显示匹配

多端口

-m multiport --sports

-m multiport --dports

IP范围

-m iprange --src-range

MAC

-m mac --mac-source

状态

-m state --state

域名

-m string --string ".com" --algo bm

六、 SNAT

  1. 源地址转换,修改数据包的源地址
bash 复制代码
iptables -t nat -A POSTROUTING -s 192.168.180.0/24 -o ens37 -j SNAT --to-source 100.0.0.1
  1. 地址伪装-MASQUERADE,适用于外网IP地址不固定
bash 复制代码
iptables -t nat -A POSTROUTING -s 192.168.180.0/24 -o ens37 -j MASQUERADE

七、 DNAT

  1. 目标地址转换,修改数据包的目标地址
bash 复制代码
iptables -t nat -A PREROUTING -i ens37 -d 100.0.0.1 -p tcp --dport 80 -j DNAT --to-destination 192.168.180.100

八、 规则备份及还原

1. 备份

bash 复制代码
iptables-save
iptables-save > 1.txt    //备份并保存到1.txt里

2. 还原

bash 复制代码
iptables-restore
iptables-restore < 1.txt    //从1.txt文件里导出备份的内容
相关推荐
用户962377954485 小时前
DVWA 靶场实验报告 (High Level)
安全
数据智能老司机8 小时前
用于进攻性网络安全的智能体 AI——在 n8n 中构建你的第一个 AI 工作流
人工智能·安全·agent
数据智能老司机8 小时前
用于进攻性网络安全的智能体 AI——智能体 AI 入门
人工智能·安全·agent
用户9623779544810 小时前
DVWA 靶场实验报告 (Medium Level)
安全
red1giant_star10 小时前
S2-067 漏洞复现:Struts2 S2-067 文件上传路径穿越漏洞
安全
用户9623779544813 小时前
DVWA Weak Session IDs High 的 Cookie dvwaSession 为什么刷新不出来?
安全
chlk1231 天前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统
舒一笑2 天前
Ubuntu系统安装CodeX出现问题
linux·后端
改一下配置文件2 天前
Ubuntu24.04安装NVIDIA驱动完整指南(含Secure Boot解决方案)
linux
深紫色的三北六号2 天前
Linux 服务器磁盘扩容与目录迁移:rsync + bind mount 实现服务无感迁移(无需修改配置)
linux·扩容·服务迁移