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文件里导出备份的内容
相关推荐
一梦浮华20 分钟前
自学嵌入式 day 42 串口通信
网络
Runner.DUT36 分钟前
SRIO入门之官方例程仿真验证
服务器·网络·数据库
慕y27437 分钟前
Java学习第一百零一部分——网关(Gateway)
java·网络·学习
打不了嗝 ᥬ᭄39 分钟前
进程间通信
linux·运维·服务器
Volunteer Technology39 分钟前
13015计算机系统原理-速记宝典
运维·网络·考研·总线·计算机系统原理·中央处理器
百特搭1 小时前
国产化低代码平台如何筑牢企业数字化安全底座
安全·低代码
Neng_Miao1 小时前
权限管理命令
linux·运维·服务器
shandianchengzi1 小时前
【笔记】ROS1|5 ARP攻击Turtlebot3汉堡Burger并解析移动报文【旧文转载】
linux·运维·网络安全·机器人·arp·turtlebot
是阿建吖!2 小时前
【Linux | 网络】网络层(IP协议、NAT技术和ICMP协议)
linux·网络·tcp/ip
特种加菲猫2 小时前
从exec到Shell:深度解析Linux进程等待,程序替换与自主Shell实现
linux·笔记