[Linux安全运维] iptables包过滤

前言

防火墙是网络安全中非常重要的设备,是一种将内部网络和外部网络隔离开的技术。简单来说,防火墙技术就是访问控制技术,由规则和动作组成。

1. Linux 包过滤防火墙

1 .1 概述

iptables: 指的是管理Linux防火墙的命令程序,主要是针对网络层的,对象是IP数据包,这也是为什么叫做包过滤。

1 .2 四表五链结构

iptables的结构可以概括为四表五链

表中存放的是链,链中存放的是规则

1 . 2 .1 规则表

表分为四类:

规则表作用说明
raw流量跟踪确定是否对该数据包进行状态跟踪
mangle流量修改为数据包设置标记,负责对数据包进行修改和追踪
nat地址转换修改数据包中的源、目标IP地址或端口
filter过滤、筛选确定是否放行该数据包
1 . 2 .2 规则链

对数据包进行过滤和处理,链中存放着各种防护墙规则。

规则链作用说明
INPUT处理入站数据包数据访问的时候限制规则编写的位置
PREROUTING在进行路由选择前出处理数据包
FORWARD处理转发数据包是否允许数据进行转发
POSTROUTING在进行路由选择后处理数据包
OUTPUT处理出站数据包数据包向外方式所写的规则限制
1 . 2 .3 表链结构关系图

在这里插入图片描述

1 . 2 .4 匹配流程

表之间的顺序:raw -> mangle -> nat -> filter。

链路之间的顺序:

  • 入站:PREROUTING INPUT
  • 出站:OUTPUT POSTROUTING
  • 转发:PREROUTING FORWARD POSTROUTING

1 .3 iptables 命令

1 . 3 .1 语法结构
iptables [-t 表名] 选项 [数字] 链名 [匹配条件] [-j 控制类型]

核心思路: iptables操作哪张表、哪条链,符合什么流量,执行什么动作。

注意事项:

  • 不指定表名时,默认指filter表
  • 不指定链名时,默认指表内所有链
  • 必须设置匹配条件,除非设置链的默认策略
  • 选项、链名、控制类型使用大写,其他用小写
  • 不指定序号时,默认第一条规则
  • 如果匹配到了规则,立即执行动作,结束匹配
  • 如果没有匹配到规则,执行默认动作
1 . 3 .2 常见控制类型
控制类型说明
ACCEPT允许通过
DROP丢弃
REJECT解决通过,必要时会给提示
LOG记录日志信息,然后传给下一条规则进行匹配
1 . 3 .3 选项
类别选项说明
1. 添加新规则-A在链的末尾追加一条规则
-I在链的开头(或者指定序列号)插入一条规则
2. 查看规则表-L列出所有的规则条目
-n以数字形式显示地址、端口等信息
-v以更详细的方式显示规则信息
-line-numbers查看规则时,显示规则的序号
3. 删除、清空规则-D删除链内只当序号(或内容)的一条规则
-F清空所有的规则
4. 设置默认策略-P为指定的链设置默认规则

例子:

# 规则添加
# 插入一条规则,允许访问192.168.1.120
iptables -I INPUT -s 192.168.1.120 -j ACCEPT
# 追加一条规则,解决访问192.168.1.120
iptables -A INPUT -s 192.168.1.120 -j REJECT# 查询信息
# 查看指定nat表,默认不加 -t 就是指filter表
iptables -t nat -L
# 查看指定raw表
iptables -t raw -L
# 列出INPUT链的详细信息
iptables -vL INPUT# 规则删除
# 删除第2条规则
iptables -D INPUT 2# 设置默认规则
# 将nat表的INPUT来拿的默认策略设置为ACCEPT
iptables -t nat -P INPUT ACCEPT
1 . 3 .4 匹配条件

匹配条件分为三种:通用匹配隐含匹配显示匹配

1)通用匹配

独立使用,可以直接使用。

匹配方式参数
协议匹配-p 协议名 {all | tcp | udp | icmp}
地址匹配-s 源地址
-d 目的地址
接口匹配-i 入站网卡
-o 出站网卡

例子:

# 允许所有的TCP协议进入
iptables -A INPUT -p tcp -j ACCEPT
# 开启ssh 22端口
iptables -A INPUT -p tcp --dport ACCEPT

2)隐含匹配

要求以特定的协议匹配为前提。

匹配方式选项
端口匹配–sport 源端口
–dport 目的端口
TCP匹配–tcp-flags 检查范围 被设置的标记
ICMP匹配–icmp-type ICMP类型

例子:

# 允许外部主机ping内部主机
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT

3)显示匹配

要求以"-m 扩展模块"的形式指出类型。

匹配方式选项
多端口匹配-m multiport --sport 源端口列表
-m multiport --drort 目的端口列表
IP 范围匹配-m iprange --src-range IP范围
MAC 地址匹配-m mac --mac-source MAC地址
连接状态匹配-m state --state 连接状态

例子:

# 允许22、80端口进入并开启ssh协议
iptables -I INPUT -p ssh -m multiport --dport 22,80 -j ACCEPT
1 . 3 .5 规则备份还原

导出备份规则:

iptables-save > /opt/iprules_all.txt

导入还原备份规则:

iptables-restore < /opt/iprules_all.txt

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3280746.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Windows 下后台启动 jar 包,UTF-8 启动 jar 包_windows启动jar

转自:https://blog.csdn.net/2401_83817971/article/details/137514739 本文介绍了如何使用javaw.exe后台启动Javajar包&#xff0c;如何在Windows中管理和设置cmd编码&#xff0c;以及与Python开发相关的学习资源。包括UTF-8编码启动jar包的方法和Windows下关闭后台服务的技…

superset 不显示mysql的选项问题

superset不显示mysql的选项 数据库驱动未安装&#xff1a;确保你已经安装了Python的MySQL数据库驱动&#xff0c;比如mysqlclient。 pip install mysqlclient

vue一些npm i 时报错问题解决【JAVA前后端分离】

前端vue npm i 安装时出现 作为一个懂些前端得 JAVA开发自然是要粗暴解决这个问题了 问题解决 使用命令 npx -p npm6 npm i 即可编译 原因&#xff1a; ERESOLVE与npm版本有关&#xff0c;因为npm版本高对某些事情比npm6.x更严格。通常&#xff0c;最简单的解决方法是将--…

【机器学习基础】机器学习概述与实践基础

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈Python机器学习 ⌋ ⌋ ⌋ 机器学习是一门人工智能的分支学科&#xff0c;通过算法和模型让计算机从数据中学习&#xff0c;进行模型训练和优化&#xff0c;做出预测、分类和决策支持。Python成为机器学习的首选语言&#xff0c;…

STC12C5A60S2单片机输出pwm的方法

所谓的pwm输出就是让单片机在某个管脚上按照时间输出特定频率和占空比的矩形方波。这里面有两个参数&#xff0c;一是频率&#xff0c;二是占空比。两者互不干涉。以STC12C5A60S2为例子&#xff0c;本51型单片机可以有两路pwm输出。以其中的一路为例说明&#xff1b; 首先说频…

Teltonika FMXXX系列定位器解析说明

1.产品外观 2.数据包说明 2.1.登录包 **模块第一次上线&#xff0c;先发送其对应的IMEI号&#xff0c;数据包如下&#xff1a;** 000F313233343536373839303132333435**数据包解析如下&#xff1a;** 000F --packet starts 313233343536373839303132333435 --IMEI 1234567890…

区块链软硬件协同,做产业数字化转型的“安全官” |《超话区块链》直播预告

今年的两会政府工作报告提出&#xff1a;“产业的数字化&#xff08;行业数字化转型&#xff09;是发展新质生产力的核心&#xff0c;是推动产业升级实现高质量发展的关键。”全面推进产业数字化&#xff0c;需要技术创新与产业应用深入协同&#xff1b;立足可持续发展的长远目…

泰迪智能科技入选广东省2024年第三批职业技能等级认定社会培训评价组织名单

7月17日&#xff0c;根据《关于公布广东省2023年社会培训评价组织新申请机构进入培育辅导期名单的通知》&#xff08;粤人社函〔2023〕269号&#xff09;、《关于公布广东省2023年社会培训评价组织&#xff08;“产教评”链主培育单位&#xff09;进入培育辅导期名单的通知》&a…

网络安全是什么?怎么入门网络安全?

一、网络安全的定义 网络安全&#xff0c;简单来说&#xff0c;就是保护网络系统中的硬件、软件以及其中的数据不因偶然或恶意的原因而遭到破坏、更改、泄露&#xff0c;保障系统连续可靠正常地运行&#xff0c;网络服务不中断。 随着信息技术的飞速发展&#xff0c;网络安全的…

docker compose 安装 kafka

一 前置准备 创建 /data/kafkadata /data/zookeeper-1用于保存kafka和zookeeper的配置文件 kafkadata中创建三个文件夹 /kafka1 /kafka2 /kafka3&#xff0c;用于存放三个kafka节点的配置文件 zookeeper-1文件夹中创建 /conf /data /logs /datalog四个文件夹&#xff0c;用于…

IoTDB 入门教程 实战篇④——C#示例(开源)

文章目录 一、前文二、新建C#项目三、NuGet安装四、示例源码五、查询数据六、参考 一、前文 IoTDB入门教程——导读 本文详细阐述了如何通过一个C#项目成功连接到IoTDB时序数据库&#xff0c;进而展示了如何向该数据库高效地写入数据以及执行精确的数据查询操作。 此示例旨在为…

Redis高可用之持久化,以及reids的性能管理

一、redis高可用&#xff1a; 在集群当中有一个非常重要的指标&#xff0c;提供正常服务的时间的百分比&#xff08;365天&#xff09;99.9% redis的高可用含义更加宽泛&#xff0c;正常服务是指标之一&#xff0c;数据容量的扩展&#xff0c;数据的安全性 在redis中实现高可…

多模态大模型(MM-LLMs)近期概述

《MM-LLMs: Recent Advances in MultiModal Large Language Models》 论文地址&#xff1a;https://arxiv.org/abs/2401.13601 GitHub地址&#xff1a;https://mm-llms.github.io/ 1.介绍 目的&#xff1a;MM-LLMs旨在减少计算费用并提高多模态预训练的效率, 因为从头开始训…

Data Augmentation数据增强

目录 数据增强是什么 为什么数据增强 数组增强分类 有监督数据增强 无监督数据增强 数据增强是什么 数据增强又称数据扩增&#xff0c;是一种通过应用合理且随机的变换&#xff08;例如图像位移、旋转&#xff09;来增加训练集多样性的技术。让有限的数据产生等价于更多数…

Jenkins集成JDK、git、gitee、maven逐步实现自动拉取,自动部署,自动启动

1. jenkins集成JDK 成功登录Jenkins后&#xff0c;选择Manage Jenkins&#xff0c;选择Tools 集成JDK 2. jenkins集成git 因为Jenkins自动从git远程仓库拉取代码 首先要在Jenkins所在的linux服务器上安装git yum install -y git然后&#xff0c;实行集成JDK的第一步 配置g…

C#:枚举及位标志周边知识详解(小白入门)

文章目录 枚举为什么要有枚举?枚举的性质设置默认类型和显式设置成员的值 位标志(重要)位标记是什么及作用位标志周边知识HasFlag判断是否有该功能枚举前面加Flags的好处 关于枚举的更多知识using static简化代码获取枚举成员的字面量 枚举 为什么要有枚举? 为了增加代码的…

FlowUs息流作为一款技术驱动的笔记和知识管理平台,其核心功能和技术优势为新媒体行业带来了革命性的工作效率提升

FlowUs息流作为一款技术驱动的笔记和知识管理平台&#xff0c;其核心功能和技术优势为新媒体行业带来了革命性的工作效率提升。以下是对其技术特色的深入解析&#xff1a; 本地化技术优化&#xff1a;FlowUs息流通过深入研究中文用户的操作习惯&#xff0c;实现了界面的本地化设…

【WRF安装第二期(Ubuntu)】搭建WRF编译所需系统-系统环境检验

WRF安装第二期&#xff1a;搭建WRF编译所需系统-系统环境检验 0 升级和安装基础环境1 系统环境检验&#xff08;System Environment Tests&#xff09;1.1 检验和安装基础包1.1.1 安装指令1.1.2 检验指令 1.2 WRF安装的目录结构1.2.1 WRF系统环境测试 1.3 测试编译器&#xff0…

Python文件加密库之cryptography使用详解

概要 在现代信息社会中,数据的安全性变得越来越重要。为了保护敏感信息,文件加密技术被广泛应用。Python的cryptography库提供了强大的加密功能,可以轻松实现文件加密和解密。本文将详细介绍如何使用cryptography库进行文件加密,包含具体的示例代码。 cryptography库简介 …

模型剪枝综述

目录 1 深度神经网络的稀疏性&#xff1a; 2 剪枝算法分类&#xff1a; 3 具体的剪枝方法包括&#xff1a; 4 剪枝算法流程&#xff1a; 5 几种常见的剪枝算法&#xff1a; 6 结构化剪枝和非结构化剪枝各有其优缺点&#xff1a; 7 剪枝算法对模型精度的影响 8 影响剪枝…