Linux---防火墙

文章目录

  • 目录

    文章目录

    前言

    一.静态防火墙:iptables

    iptables五链

    iptables 四表

     iptables控制类型

    iptables命令配置


前言

这儿主要介绍Linux系统本身提供的软件防火墙的功能,即数据包过滤机制。 数据包过滤,也就是分析进入主机的网络数据包,将数据包的头部数据提取出来进行分析,以决定该连接为放行或抵挡的机制。由于这种方式可以直接分析数据包头部数据,包括硬件地址,软件地址,TCP、UDP、ICMP等数据包的信息都可以进行过滤分析,因此用途非常广泛。


一.静态防火墙:iptables

        iptables 不是防火墙,而是客户端代理,用户通过iptables这个代理,将用户的安全设定执行到对应的安全框架netfilter中。

iptables 特点:

  • netfilter位于内核空间中,而iptables是控制netfilter的工具,位于用户空间。
  • 通过iptables可以编写某些规则并保存到netfilter中,从而起到防护效果。
  • netfilter/iptables组成Linux平台下的包过滤防火墙,可以完成包过滤,NAT等功能。
  • iptables默认默认允许访问,需要拒绝的采取限制。

iptables五链

        五链实际是五规则链的简称,而每个规则链由多个规则组成;每个数据包被iptables过滤时都要经过如下五个规则链的筛选:

规则链位置作用场景
PREROUTING链数据包进入网络接口后,路由决策前可以用于修改数据包的目的地址(DNAT),改变数据包的路由路径用户目标NAT
INPUT链数据包在被路由到本地系统之后过滤进入本地服务器的数据包防火墙规则,允许或拒绝进入本地系统的流量
FORWARD链数据包在路由决策之后控制通过本地系统转发的数据包路由器或网关上,用于控制数据包的转发
OUTPUT链数据包由本地系统产生,经过路由决策之前控制本地系统发出的数据包允许或拒绝本地系统发送的流量
POSTROUTING链据包离开网络接口之前可以用于修改数据包的源地址,改变数据包离开系统时的地址信息用户源NAT

iptables 四表

        在Linux中的iptables中,表(tables)是用于组织规则链的结构。iptables包含四个主要的表,每个表专门用于不同类型的数据包处理。以下是主要的四个表:

功能默认链应用场景作用
filter表主要用于数据包过滤INPUT、FORWARD、OUTPUT根据定义的规则决定是否接受、拒绝或丢弃数据包防火墙规则
nat表用于网络地址转换(NAT)PREROUTING、POSTROUTING、OUTPUT改数据包的源地址或目的地址,以实现地址映射和端口转发NAT
mangle表用于对数据包进行修改PREROUTING、POSTROUTING、INPUT、OUTPUT、FORWARD可以修改数据包的TTL值等需要对数据包的服务质量(QoS)进行控制或流量整形时
raw表对数据包的状态跟踪机制PREROUTING、OUTPUT可以决定数据包是否被状态跟踪机制处理,通常用于实现高性能的处理需要对状态跟踪机制进行细粒度控制时

 数据包到达防火墙根据下图进行匹配:

 iptables控制类型

        iptables的每张表包含不同的控制类型,不同的控制类型允许管理员对数据包执行不同的操作。以下是iptables的主要控制类型:

  •  Accept:允许数据包通过
  • Drop:丢弃数据包
  • Reject:拒绝数据包通过
  • Snat:修改数据包源IP
  • Dnat:修改目标IP
  • Masquerade:伪装成一个非固定的公网IP
  • Log:在/var/log/messages文件中记录日志信息,然后将数据包传递给下一条规则

iptables命令配置

基本语法:

iptables [选项] 命令 [链] [匹配条件] [目标]iptables -t 表名 【参数】 规则链名  -p 协议名 -s 源IP --sport 源端口 -d 目标IP --dport 目标端口 -j 动作参数:
-A:在指定链的末尾插入指定的规则
-D:在指定的链中删除 一个或多个指定规则
-I: 在指定链中的指定位置插入一条或多条 规则
-R: 替换/修改第几条规则

常见选项:

 演示案例:

#允许所有IP访问3306端口
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT#允许指定IP访问3306端口
sudo iptables -A INPUT -p tcp -s 192.168.1.100 --dport 3306 -j ACCEPT#显示规则
iptables -L#保存规则#删除INPUT链表中的规则
iptables -D INPUT -p tcp --dport 3306 -j ACCEPT

注意:iptables的匹配规则是自上而下匹配,当遇见如下情况:如Mysql数据库的3306端口已经开放,但是仍然无法通过3306端口远程连接,此时可能是在开放3306的规则之前的某些规则阻止了连接。

上述情况解决办法如下:在INPUT链表首部插入规则

iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

 或者可以逐一在每条规则之前插入规则来测试阻止连接的规则是哪一条

#在在 INPUT 链的第2个位置插入一条允许所有 IP 地址访问 3306 端口的规则
iptables -I INPUT 2 -p tcp --dport 3306 -j ACCEPT

找到阻止连接的规则后可以删除阻止连接的规则

#删除链表指定位置的规则
sudo iptables -D INPUT 2

 


总结

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

cve_2022_0543-redis沙盒漏洞复现 vulfocus

1. 原理 该漏洞的存在是因为Debian/Ubuntu中的Lua库是作为动态库提供的。自动填充了一个package变量,该变量又允许访问任意 Lua 功能。 2.复现 我们可以尝试payload: eval local io_l package.loadlib("/usr/lib/x86_64-linux-gnu/liblua5.1.so…

DeepSpeed MoE

MoE概念 模型参数增加很多;计算量没有增加(gating小FNN,比以前的大FNN计算量要小);收敛速度变快; 效果:PR-MoE > 普通MoE > DenseTransformer MoE模型,可视为Sparse Model&…

表的设计与查询

目录 一、表的设计 1.第一范式(一对一) 定义: 示例: 2.第二范式(一对多) 定义: 要求: 示例: 3.第三范式(多对多) 定义: 要求…

**《Linux/Unix系统编程手册》读书笔记24章**

D 24章 进程的创建 425 24.1 fork()、exit()、wait()以及execve()的简介 425 . 系统调用fork()允许父进程创建子进程 . 库函数exit(status)终止进程,将进程占用的所有资源归还内核,交其进行再次分配。库函数exit()位于系统调用_exit()之上。在调用fo…

ffmpeg常见命令

一、ffmpeg的安装 ffmpeg的安装 一、ffmpeg常用命令 二、ffprobe

浅解Reids持久化

Reids持久化 RDB redis的存储方式: rdb文件都是二进制,很小,里面存的是数据 实现方式 redis-cli链接到redis服务端 使用save命令 注:不推荐 因为save命令是直接写到磁盘里面,速度特别慢,一般都是redis…

遗传算法笔记:基本工作流程

1 介绍 遗传算法有5个主要任务,直到找到最终的解决方案 2 举例 2.1 问题描述 比如我们有 5 个变量和约束,其中 X1、X2、X3、X4 和 X5 是非负整数且小于 10(0、1、2、4、5、6、7、8、9)我们希望找到 X1、X2、X3、X4 和 X5 的最…

go语言后端开发学习(三)——基于validator包实现接口校验

前言 在我们开发模块的时候,有一个问题是我们必须要去考虑的,它就是如何进行入参校验,在gin框架的博客中我就介绍过一些常见的参数校验,大家可以参考gin框架学习笔记(四) ——参数绑定与参数验证,而这个其实也不是能够完全应对我…

Android JobService启动系统源码分析

以下就JobService的执行流程,系统层实现进行详解 入口点在JobScheduler.scheduler 系统层JobScheduler是个抽象类,它的实现类是JobScheduler mBinder,一看就知道这里面肯定是跨进程了。它的服务端在JobSchedulerService里面,具体 为什么请看系统服务器启动流程相关文章,…

Python算法于强化学习库之rlax使用详解

概要 在强化学习领域,开发和测试各种算法需要使用高效的工具和库。rlax 是 Google 开发的一个专注于强化学习的库,旨在提供一组用于构建和测试强化学习算法的基础构件。rlax 基于 JAX,利用 JAX 的自动微分和加速计算功能,使得强化学习算法的实现更加高效和简洁。本文将详细…

堡垒机的自动化运维,快速安全提升运维效率

随着信息技术的突飞猛进,企业对于IT系统的依赖程度日益加深,不仅希望可以提高运维效率,也希望能保障IT系统的安全。因此堡垒机与自动化运维技术的结合应运而生,堡垒机的自动化运维,快速安全提升运维效率。今天我们就来…

CTE-6作文

第一段 现象 引出原因 第二段 感受 举例 意义 危害 第三段 建议 展望

2024年数字化经济与智慧金融国际会议(ICDESF 2024)

2024 International Conference on Digital Economy and Smart Finance 【1】大会信息 大会时间:2024-07-22 大会地点:中国成都 截稿时间:2024-07-10(以官网为准) 审稿通知:投稿后2-3日内通知 会议官网:h…

day27回溯算法part03| 39. 组合总和 40.组合总和II 131.分割回文串

39. 组合总和 题目链接/文章讲解 | 视频讲解 本题是 集合里元素可以用无数次&#xff0c;那么和组合问题的差别 其实仅在于 startIndex上的控制 class Solution { public:int sum;vector<int> path;vector<vector<int>> result;void backtracking(vector<…

W25Q64简介

W25Q64介绍 本节使用的是&#xff1a;W25Q64&#xff1a; 64Mbit / 8MByte。存储器分为易失性存储器和非易失性存储器&#xff0c;易失性存储器一般是SRAM&#xff0c;DRAM。非易失性存储器一般是E2PROM&#xff0c;Flash等。非易失性存储器&#xff0c;掉电不丢失。 字库存储…

分布式一致性理论

分布式一致性理论 1.数据库事务ACID理论 为保证事务正确可靠而必须具备的四个核心特性。这四个特性分别是&#xff1a;原子性&#xff08;Atomicity&#xff09;、一致性&#xff08;Consistency&#xff09;、隔离性&#xff08;Isolation&#xff09;和持久性&#xff08;D…

k8s——pod控制器

一、pod控制器定义 Pod控制器&#xff0c;又称之为工作负载&#xff08;workload&#xff09;&#xff0c;是用于实现管理pod的中间层&#xff0c;确保pod资源符合预期的状态&#xff0c;pod的资源出现故障时&#xff0c;会尝试进行重启&#xff0c;当根据重启策略无效&#xf…

攻防演练之-动员大会

清晨的阳光透过薄雾洒在甲方的攻防演练中心。由于国家对于重点行业的数据灾备的要求。因此每一家企业都会选择在不同的地理位置建多个数据中心&#xff0c;包括一个生产中心、一个同城灾难备份中心、一个异地灾难备份中心。通过这种方式将业务分布在不同地理位置的数据中心&…

Makefile:从零开始入门Makefile

目录 1.前言 2.Makefile的简单介绍 3.Makefile中的指令规则 4.Makefile的执行流程 5.Makefile中的变量类型 6.Makefile中的模式匹配 7.Makefile中的函数 8.Makefile补充知识 前言 在Linux中编译CPP文件&#xff0c;我们能够使用GCC命令进行编译&#xff0c;但当项目文件多且繁杂…

不能访问huggingface、与GPU配置

不能访问huggingface解决方法 如果是从 huggingface.co 下载模型&#xff0c;由于国内不能访问&#xff0c;所以建议先配置一下环境变量&#xff0c; 通过访问国内镜像站点 https://hf-mirror.com来下载模型。 &#xff08;1&#xff09;Linux系统设置环境变量&#xff1a; e…