当前位置: 首页 > news >正文

Linux防火墙-Iptables

一、 Iptables概述
Iptables 是一个用户空间程序,可以用于设置和管理 Linux 操作系统的内核级防火墙。它通过表、链和
规则组成,可以灵活地根据不同的需求进行配置。
iptables 具有以下特点:
Iptables 作为内核级别的防火墙,具有高效、稳定、安全等优点。
Iptables 的表、链、规则结构非常灵活,可适应各种不同的网络环境和应用场景。
Iptables 相对于其他防火墙工具而言比较容易学习和掌握,并且拓展性非常强
二、 Iptables 组成
Iptables 的核心是由表(table)、链(chain)和规则(rule)三部分组成的。
表(Table
iptables 中,表是一个规则的集合,每个表都包含若干个链和一些相关的规则。常用的五种 table
下:
raw表:确定是否对该数据包进行状态跟踪。包含两个规则链,OUTPUTPREROUTING
mangle表:修改数据包内容,用来做流量整形的,给数据包设置标记。包含五个规则链,INPUT
OUTPUTFORWARDPREROUTINGPOSTROUTING
nat表:负责网络地址转换,用来修改数据包中的源、目标IP地址或端口。包含三个规则链,
OUTPUTPREROUTINGPOSTROUTING
filter表:负责过滤数据包,确定是否放行该数据包(过滤)。包含三个规则链,INPUT
FORWARDOUTPUT
表之间的优先级
数据包到达防火墙时,规则表之间的优先顺序
raw > mangle > nat > filter
链(Chain
iptables 中,链是一个规则的集合,每个链都包含一些相关联的规则。
INPUT链: 当接收到防火墙本机地址的数据包(入站)时,应用此链中的规则。
OUTPUT链: 当防火墙本机向外发送数据包(出站)时,应用此链中的规则。
FORWARD链: 当接收到需要通过防火墙发送给其他地址的数据包(转发)时,应用此链中的规
则。
PREROUTING链: 在对数据包作路由选择之前,应用此链中的规则,用来修改目的地址,如
DNAT
POSTROUTING链: 在对数据包作路由选择之后,应用此链中的规则,用来修改源地址,如
SNAT
数据包过滤的匹配流程
入站
入站数据包从A网络发到B网络,首先发到防火墙,先后顺序经过有PREROUTING链的三个表(raw
manglenat),如果都是放通状态的会经过路由选择,然后根据目的地址一层一层往上送,经过有
INPUT的两个表(manglefilter),一直送到应用程序。
转发
目的地不是本机,数据包先从A网络过滤,经过PREROUTING链,看是否是自己的目的地址,如果是外网
到内网需要用nat转换成内网IP,找到内网用户,经过FORWARD链进行过滤,允许放通的到达
POSTROUING链,再把内网地址转换成公网,这样数据包才能回去;如果是内网往外网发顺序就是反过
来。
出站
从本机的应用程序发出来, 经过路由选择,让路由知道从哪里发,先后顺序经过有OUTPUT链的四个表
rawmanglenatfilter),都放通后到达POSTROUING链的两个表(manglenat),如果没有
什么转换地址,就出站。
当一个数据包进入网卡时,数据包首先进入PREROUTING链,内核根据数据包目的IP判断是否需要转送
出去。
如果数据包是进入本机的,数据包就会沿着图向上移动,到达INPUT链。数据包到达INPUT链后, 任何
进程都会收到它。本机上运行的程序可以发送数据包,这些数据包经过OUTPUT链,然后发送出去。
如果数据包是要转发出去的,且内核允许转发,数据包就会向右移动,经过FORWARD链,然后到达
POSTROUTING链输出。
规则匹配策略
三、 Iptables防火墙配置
iptables命令
语法 iptables [-t 表名] 管理选项 [链名] [匹配条件] [-j 控制类型]
注意:链名必须大写;控制类型必须大写
命令操作
添加新的规则
##-A filter表的INPUT链末行添加拒绝icmp的规则
[root@localhost ~]# iptables -t filter -A INPUT -p icmp -j REJECT
##-I 不指定行,是在指定链首行插入规则(允许tcp 22端口)
[root@localhost ~]# iptables -t filter -I INPUT -p tcp --dport 22 -j ACCEPT
##-I 指定行,是在指定链的指定行上插入规则
[root@localhost ~]# iptables -t filter -I INPUT 2 -p tcp --dport 22 -j ACCEPT
四、 规则的匹配
1、通用匹配
2、隐含匹配
某些条件,如端口、TCP标记、ICMP类型,隐含要求以特定的协议匹配作为前提。
协议端口匹配
详细用法
##-R 修改已有的规则
[root@localhost ~]# iptables -t filter -R INPUT 1 -p icmp -j ACCEPT
##-P 修改默认策略(修改为丢弃转发数据包)
[root@localhost ~]# iptables -P FORWARD DROP
可直接使用,不依赖其他条件或扩展包括网络协议、IP地址、网络接口等条件
3、显式匹配
多端口匹配
ip范围匹配
mac地址匹配【了解】
状态匹配【了解】
要求以 -m (扩展模块)的形式明确指出类型,包括多端口、MAC地址、IP范围、数据包状态等条件。
1
-m multiport --sport 源端口列表
-m multiport --dport 目的端口列表
五、Iptables配置NAT地址转换
1、 配置SNAT
应用场景
转换为固定公网ip
iptables -t nat -A POSTROUTING -s 源网段 -o 出站网卡 -j SNAT --to 转换的公网地址
iptables -t nat -A POSTROUTING -s 源网段 -o 出站网卡 -j SNAT --to-source 转换的公
网地址范围(如10.0.0.1-10.0.0.10
注:每一个做转换的公网ip,一般可以支持内网100~200台主机
2、配置DNAT
应用场景
internet公网中发布位于企业局域网的服务器(外 -->
模拟实验环境
转换为私网ip
六、iptables防火墙策略的备份和恢复
iptables的配置存放在/etc/sysconfig/iptables 文件中,我们对iptables所做的策略修改,虽然会立刻生
效,但是并没有保存下来,当我们重启iptables防火墙时,会读取配置文件中设置的策略,我们之前修改
过的策略便失效了。所以需要对修改的iptables策略进行备份和恢复。

文章转载自:

http://D2pyOk0S.dfhkh.cn
http://483YcIoE.dfhkh.cn
http://0LGd0ZSF.dfhkh.cn
http://oDp3U895.dfhkh.cn
http://vMjrMfve.dfhkh.cn
http://yQtUgk41.dfhkh.cn
http://YxPanOAJ.dfhkh.cn
http://IBp1sj5L.dfhkh.cn
http://04uGYBIk.dfhkh.cn
http://JnHjIGwz.dfhkh.cn
http://RVqnF5NG.dfhkh.cn
http://YJ1mYTst.dfhkh.cn
http://rRDArqQN.dfhkh.cn
http://PMhjHQX8.dfhkh.cn
http://NUaOhxNr.dfhkh.cn
http://l8EspSIb.dfhkh.cn
http://xB0KNEtb.dfhkh.cn
http://rBityeA4.dfhkh.cn
http://IoklyEPh.dfhkh.cn
http://tZEJhxsT.dfhkh.cn
http://T3UZYuJm.dfhkh.cn
http://lYsBXWPV.dfhkh.cn
http://kLftU8g8.dfhkh.cn
http://ocmViAK7.dfhkh.cn
http://NglkpiLn.dfhkh.cn
http://tuNnYcZk.dfhkh.cn
http://4lSv47JG.dfhkh.cn
http://7CYZE2Xv.dfhkh.cn
http://5yBXaQgv.dfhkh.cn
http://jLYcAY3B.dfhkh.cn
http://www.dtcms.com/a/379121.html

相关文章:

  • python访问基于docker搭建的elasticsearch
  • logback-spring.xml文件说明
  • 【PyTorch训练】为什么要有 loss.backward() 和 optimizer.step()?
  • 抖音大数据开发一面(0905)
  • 原生js的轮播图
  • 连接池项目考点
  • ruoyi-flowable-plus框架节点表单的理解
  • js.228汇总区间
  • BERT中文预训练模型介绍
  • 光平面标定建立激光点与世界坐标的对应关系
  • Jmeter执行数据库操作
  • 基于FPGA的图像中值滤波算法Verilog开发与开发板硬件测试
  • 微软Aurora大模型实战:五大数据源驱动、可视化对比与应用
  • 【论文笔记】SpaRC: Sparse Radar-Camera Fusion for 3D Object Detection
  • C++基本数据类型的范围
  • Spring AI(三)多模态支持(豆包)
  • agentic Deep search相关内容补充
  • 第一篇:如何在数组中操作数据【数据结构入门】
  • PYcharm——pyqt音乐播放器
  • OpenAI已正式开放ChatGPT Projects
  • 日系电车销量破万,真正突围了,恰恰说明了电车的组装本质!
  • Linux 防火墙 Iptables
  • 不想考地信,计算机又太卷,所以转型GIS开发
  • PotPlayer 1.7.22611发布:支持蓝光播放+智能字幕匹配
  • LVS负载均衡群集与Keepalived高可用
  • React中hook的用法及例子(持续更新)
  • 【网络编程】TCP、UDP、KCP、QUIC 全面解析
  • 【1】占位符
  • A2A 中的内存共享方法
  • 力扣704. 二分查找