如何通过iptables配置URL过滤白名单?

news2024/10/5 14:15:39

84176ef41c0179fa46ecb9d432e68697.gif

正文共:1111 字 18 图,预估阅读时间:1 分钟

我们刚刚测完了iptables配置URL黑名单过滤如何通过iptables配置URL过滤黑名单?,整体效果还算不错。但是,在很多时候,可能我们还会用到白名单,也就是默认拒绝所有请求,仅允许匹配白名单域名的请求通过。

首先,这个动作就比较简单,仅需要将DROP(丢弃)动作调整为ACCEPT(接受)就可以了。但是,我们还是要考虑一下这中间的数据处理逻辑问题。

接着上次的实验结果来看。

8d5f1fbcf95b6f9e406f2be7027c1df0.png

我们现在拒绝了所有访问guotiejun.com相关HTTP页面和HTTPS页面的请求,还拒绝了所有访问sdwan.guotiejun.com相关HTTPS页面的请求。那如果我们单独加一条放通访问https://i.guotiejun.com页面的规则会怎样呢?操作命令如下:

iptables -I FORWARD -p tcp --dport 443 -m string --string i.guotiejun.com --algo bm -j ACCEPT

452273aa9d7ee1a9f689eeddc6b11936.png

再次测试,发现访问成功。

5742f9a162ba9874764a36e1f4d5d187.png

查看规则匹配情况,也可以看到命中了ACCEPT的转发策略。

127302a1cb174f22fbc7e413930f35c8.png

首先判断是不是最长匹配的关系,我们将拒绝https://*guotiejun.com*的策略移动到允许https://i.guotiejun.com策略上面。

81d3ca2fb0a9dafd1b009aabd6842322.png

然后清空缓存,刷新页面。

8496ce273d080c576da5bf8b3eeb6b92.png

请求失败,无法访问。再看一下策略匹配情况。

df3b4f36138d7d77c5fe8394799899d9.png

可以发现,最上面的策略有报文命中,第二条策略没有被命中。这么看,策略是按照顺序依次匹配的,和匹配长度没有关系。

为了验证,我们先删除之前的策略,再重新配置几条策略。删除策略可以将前面插入命令中的-I参数修改为-D,例如:

iptables -D FORWARD -p tcp --dport 443 -m string --string i.guotiejun.com --algo bm -j ACCEPT
iptables -D FORWARD -p tcp --dport 443 -m string --string guotiejun.com --algo bm -j DROP

258ee978fc7259cdf3796aba3f1dcc1e.png

也可以使用-F命令,能够逐个删除指定表或链中的所有规则;如果没有指定任何链,则表中所有链的规则都将被删除。例如:

iptables -t filter -F FORWARD

6122c253b96e463be39bf4140677394d.png

然后我们依次配置4条规则,分别是拒绝所有HTTPS、接受https://i.guotiejun.com、拒绝https://*guotiejun.com*、接受https://sdwan.guotiejun.com。

iptables -I FORWARD -p tcp --dport 443 -j DROP
iptables -I FORWARD -p tcp --dport 443 -m string --string i.guotiejun.com --algo bm -j ACCEPT
iptables -I FORWARD -p tcp --dport 443 -m string --string guotiejun.com --algo bm -j DROP
iptables -I FORWARD -p tcp --dport 443 -m string --string sdwan.guotiejun.com --algo bm -j ACCEPT

c4272dc2797f1d2dcd2adf2af90c6723.png

理论上讲,结果应该是只有最上面的https://sdwan.guotiejun.com可以访问,其他所有页面均被拒绝,接下来我们验证一下。

9dc562b19f7cf16217a52f3ee8009d69.png

但结果是所有的HTTPS页面均无法访问,我们查看一下策略匹配情况。

cb236460f5a3ab5b5f56a8042b23e35f.png

发现只有拒绝所有的策略被命中了,其他策略都没有命中,难道是不带target扩展的匹配方式不一样?我们将拒绝所有的命令也调整一下,所有的域名中肯定要带点号,我们就替换成如下命令:

iptables -I FORWARD -p tcp --dport 443 -m string --string . --algo bm -j DROP

3b904f82a5129d224d71bfe6749281fc.png

再次测试一下。

5ce4bd3a18106f9ef175aea426db4b9d.png

这就比较神奇了,第一条策略被命中了,但是页面还是无法打开。

4764fbbfd27d1cf2d461e8da7089351b.png

分析过程,可以看到状态是200,正常,但是无法加载资源。我们把最下面的策略移除试一下。

ab7cbb1c1fc1b95f8393c59586971e3a.png

这次就正常了,看来还是最后一条策略匹配的太过分了。那如果我们把默认规则调整为匹配.com呢?

iptables -I FORWARD -p tcp --dport 443 -m string --string .com --algo bm -j DROP

b026df14ffda6057d7cf43bab1c2e40d.png

现在测试就正常了,规则匹配也是正常的。

791d70e625599c45948a7275aa1595d6.png

那不是.com的域名怎么办呢?

还记得我们之前有一篇介绍过域名的文章吗域名.com是什么意思?95%的人都不知道吧??顶级域名主要包括.gov、.edu、.com、.mil、.org以及ISO-3166“国家名称表示代码”标准中标识国家/地区的英文两字母代码后缀。

不过5个顶级域名加上247个国家/地区代码,要添加252个规则,貌似有点多。不知道各位专家有没有什么好的解决方法?

9ba1571161ce676b13fc3fa874a083a9.gif

长按二维码
关注我们吧

e3dc3343c58612cd679b25e9eebfb563.jpeg

bc8109a67534ad61deccdb2271696915.png

如何通过iptables配置URL过滤黑名单?

iptables命令简介

iptables扩展项之target扩展

iptables扩展项之match扩展

听说最近时间不准了?是NTP出问题了吗?

vCenter 7.0数据中心集群配置指南

vCenter 7.0数据中心集群资源池配置指南

iperf命令简介

iperf3命令简介

79.55 Gbps!已经初步测得VMWare ESXi 6.7的vSwitch转发性能

还得是华为,OpenEuler打流能到37 Gbps

羡慕!大佬的VPP能达到180G性能,而我的却只有13.5G

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

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

相关文章

体验MouseBoost PRO,让Mac操作更高效

还在为Mac的右键功能而烦恼吗?试试MouseBoost PRO for Mac吧!这款强大的鼠标右键增强软件,能让你通过简单操作即可激活多种实用功能,让你的工作变得更加轻松。其高度定制化的设计,更能满足你的个性化需求。赶快下载体验…

Spring STOMP-消息处理流程

一旦STOMP的接口被公布,Spring应用程序就成为连接客户端的STOMP代理。本节描述服务端消息处理的流程。 spring-messaging模块包含消息类应用的基础功能,这些功能起源于Spring Integration项目。并且,后来被提取整合到Spring框架,…

<MySQL> 数据库基础

目录 一、数据库概念 (一)什么是数据库 (二)数据库存储介质 (三)常见数据库 二、数据库基本操作 (一)连接数据库 (二)使用数据库 (三&…

排除对象属性序列化的三种方式

说明:在项目里,经常可以看到以下日志内容,将对象序列化后直接打印出来,观察对象数据,判断当前处理逻辑正确与否。 (以下信息来自:https://www.tl.beer/randbankcard.html生成器,信息…

ChatGPT付费创作系统软件开发

uni-app框架:使用Vue.js开发跨平台应用的前端框架,编写一套代码,可编译到Android、小程序等平台。 框架支持:springboot/Ssm/thinkphp/django/flask/express均支持 前端开发:vue.js 可选语言:pythonjavanode.jsphp均支持 运行软件…

考研踩坑经验分享

文章目录 写在前面自身情况简介自身学习路线优点坑点 学习路线建议1、2和3月份3、4和5月份6、7和8月份9、10月份11、12月份 一些私货建议结尾 写在前面 考研是一件非常有盼头的事,但绝对不是一件容易的事。 如果你不能做好来年三月份出成绩时,坦然接受…

【Obsidian】视频笔记插件Media Extended的强大功能

我将开设一个专栏,介绍当下最好用的笔记软件Obsidian的使用经验和技巧。欢迎持续关注。 摘要:本文将首先向您介绍一款功能强大的笔记软件Obsidian,然后为您详细解析Obsidian的一款实用插件——Media Extended,帮助您更好地利用Obs…

【HarmonyOS】笔记八-图片处理

概念 开发者经常需要在应用中显示一些图片,例如:按钮中的icon、网络图片、本地图片等。在应用中显示图片需要使用Image组件实现,Image支持多种图片格式,包括png、jpg、bmp、svg和gif,该接口通过图片数据源获取图片&am…

Java | Leetcode Java题解之第85题最大矩形

题目&#xff1a; 题解&#xff1a; class Solution {public int maximalRectangle(char[][] matrix) {int m matrix.length;if (m 0) {return 0;}int n matrix[0].length;int[][] left new int[m][n];for (int i 0; i < m; i) {for (int j 0; j < n; j) {if (mat…

Leetcode—100274. 从魔法师身上吸取的最大能量【中等】

2024每日刷题&#xff08;135&#xff09; Leetcode—100274. 从魔法师身上吸取的最大能量 实现代码 class Solution { public:int maximumEnergy(vector<int>& energy, int k) {int n energy.size();int arr[n];int ans;for(int i n - 1; i > 0; i--) {arr[i…

Adobe After Effects AE v24.3.0 解锁版 (视频合成及视频特效制作)

Adobe系列软件安装目录 一、Adobe Photoshop PS 25.6.0 解锁版 (最流行的图像设计软件) 二、Adobe Media Encoder ME v24.3.0 解锁版 (视频和音频编码渲染工具) 三、Adobe Premiere Pro v24.3.0 解锁版 (领先的视频编辑软件) 四、Adobe After Effects AE v24.3.0 解锁版 (视…

使用LLaMA Factory来训练智谱ChatGLM3-6B模型

使用LLaMA Factory来训练智谱ChatGLM3-6B模型时&#xff0c;以下是一个训练过程&#xff1a; 1. 环境搭建 a. 安装Python和Anaconda 下载并安装适合你操作系统的Python版本&#xff08;推荐Python 3.10或更高版本&#xff09;。安装Anaconda&#xff0c;以管理Python环境和依…

最简单的Winapi编程窗口程序

以下是一个简单的使用 WinAPI 创建窗口的程序示例&#xff0c;大致了解下win32的一个窗口编程大致流程&#xff1a; #include <Windows.h>// 窗口过程函数 LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {switch (uMsg){case WM_DES…

【校园生活小程序_超详细部署】

校园生活小程序 1 完整小程序源码2 运行环境3 初次运行3.1 启动后端程序3.1.1 导入项目&#xff0c;找到项目的pom.xml文件&#xff0c;点击ok进行打开。3.1.2 创建数据库并插入内容 3.1.3 配置项目结构信息3.1.4 配置Tomcat服务器3.1.5 正式启动后端项目3.1.6出现BUG3.1.7 解决…

DLP数据防泄密产品选型时 要注意哪些要素?

DLP&#xff08;Data Loss Prevention&#xff0c;数据丢失防护&#xff09;产品是一套用于防止敏感数据泄露的技术解决方案。它们通过监控、检测和阻止敏感数据的传输来保护企业的信息资产。所以很多企业会选择DLP数据防泄密产品来保护数据安全。 DLP数据防泄密产品的核心功能…

快手短剧,和爱优腾踏入同一条河流

文丨黄小艺 “我们定制短剧的重心排序分别是抖音、淘宝、快手。”MCN机构从业者周明&#xff08;化名&#xff09;说道&#xff0c;“无论是单条还是品牌冠名剧&#xff0c;我们在快手短剧拿到的收益都相对偏低。” 近期&#xff0c;商业数据派和多家机构创作者沟通后发现&am…

PC的体系结构

冯诺依曼体系结构 冯诺依曼体系结构&#xff0c;也称为冯诺依曼架构&#xff0c;是一种计算机架构的设计概念&#xff0c;由20世纪中叶的数学家和物理学家约翰冯诺依曼提出。这种架构的核心特点是将程序指令和数据存储在同一块可读写的存储器中。这样做的优点是简化了计算机的…

如何在计算机上安装两个系统并引导?这里有详细步骤

序言 大多数计算机附带一个操作系统&#xff0c;但你可以在一台电脑上安装多个操作系统。安装两个操作系统&#xff0c;并在启动时在它们之间进行选择。 谷歌和微软终止了英特尔的双启动Windows和Android PC计划&#xff0c;但你可以在安装Windows 7的同时安装Windows 8.1&am…

【计算机网络】计算机网络体系结构

&#x1f6a9;本文已收录至专栏&#xff1a;计算机网络学习之旅 一.常见的三种结构 (1) OSI参考模型 为了使不同体系结构的计算机网络都能互连起来&#xff0c;国际标准化组织于1977年成立了专门机构研究该问题&#xff0c;提出了著名的开放系统互连基本参考模型&#xff0c…

Java后端实现对象与文件接收数据(minio测试)

实现思路&#xff1a; 1. 两个接口实现&#xff0c;一个接对象数据(file)&#xff0c;一个接文件数据(json)。 2. json对象(base64String) 实体类信息 &#xff0c;请求体统一接收 3. file, String name ,String password ,String name &#xff0c; Controller层接收 统一…