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文件里导出备份的内容
相关推荐
sniper_fandc6 分钟前
网络编程—Socket套接字(UDP)
网络·网络协议·udp·javaee
jstart千语12 分钟前
【网络协议】WebSocket讲解
网络·websocket·网络协议
网安小陈19 分钟前
【网安】处理项目中的一些常见漏洞bug(java相关)
java·开发语言·数据库·安全·web安全·网络安全·bug
久绊A24 分钟前
IPIP.NET-IP地理位置数据
开发语言·网络·php
cosX+sinY36 分钟前
ubuntu 20.04 编译和运行A-LOAM
linux·ubuntu·bash
Bruce_Liuxiaowei40 分钟前
网络安全应急响应-文件痕迹排查
安全·web安全
石兴稳1 小时前
小型园区组网图
网络·智能路由器
会飞的土拨鼠呀1 小时前
vim 清除文件所有行
linux·编辑器·vim
Brandon汐2 小时前
Linux第四章练习
linux·运维·服务器
网安小陈2 小时前
【云计算】打造高效容器云平台:规划、部署与架构设计
android·安全·web安全·网络安全·云计算·xss