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文件里导出备份的内容
相关推荐
你的人类朋友10 小时前
什么是OpenSSL
后端·安全·程序员
支付宝体验科技15 小时前
AI4SDL:支付宝业务应用研发安全保障体系建设实践
安全
没逻辑21 小时前
Post-Quantum HTTPS:未来的安全通信架构
后端·安全
LH_R1 天前
OneTerm开源堡垒机实战(四):访问授权与安全管控
运维·后端·安全
用户31187945592181 天前
Kylin Linux 10 安装 glib2-devel-2.62.5-7.ky10.x86_64.rpm 方法(附安装包)
linux
涛啊涛1 天前
Centos7非LVM根分区容量不足后扩容,对调硬盘挂载/
linux·磁盘管理
CYRUS_STUDIO2 天前
用 Frida 控制 Android 线程:kill 命令、挂起与恢复全解析
android·linux·逆向
熊猫李2 天前
rootfs-根文件系统详解
linux
LH_R2 天前
OneTerm开源堡垒机实战(三):功能扩展与效率提升
运维·后端·安全
dessler2 天前
Hadoop HDFS-高可用集群部署
linux·运维·hdfs