< 自用文儿 > 下载 MaxMind GeoIP Databases 对攻击的 IP 做 地理分析

起因

两个 VPM/VPS,安装了 fail2ban 去拦截密码穷举攻击。每天的记录都在增长,以前复制屏幕输出就行,一屏的内容还容易粘贴出来的。昨天已经过 500 条,好奇 fail2ban 是如何存储这些内容的?就发现它在使用 SQLite3 数据库,有数据库就方便多了。

IP 地理分析实践

1. 从哪里下载? 地理位置 IP 数据

我用这个链接: https://www.maxmind.com/en/accounts/1121608/geoip/downloads

介绍:

每个连接到互联网的设备都会被分配一个独一无二的 IP 地址,Geo IP 数据库通过收集这些而成,建立起 IP 地址与地理位置之间的对应关系。

Geo IP 数据的应用:

  • 根据用户的地理位置,实现本地化内容。
  • 分析用户的 IP 地址位置,可以识别出欺骗行为。
  • 根据用户的地理位置,精准广告投放。像百度、美团这些大公司,它们都在干这个,特擅长。
  • 分析用户地理位置,可以推算出地域特征,可做为市场调研的数据,向政府、商业提供决策提数据支持。
  • 识别标注出恶意 IP 地址,可以采取相应的安全措施。比如 fail2ban 
  • 中华的伟大防火墙也使用 IP 来过滤
  • 应用有很多,不编了。

免费的地理IP数据库

对个人使用而言,国外有几家公司或机构提供 Lite 版的数据库下载。

  • MaxMind GeoLite2
  • P2Location LITE
  • DB-IP Lite

有的需要注册,才能下载使用。我找时, MaxMind 在第一个,顺利注册并下载,就没再看其它的。

2. Fail2Ban

应用介绍 :

1)fail2ban 数据库

安装并配置后,数据库文件在: /var/lib/fail2ban/fail2ban.sqlite3

如果在 Ubuntu 中使用数据库,需要安装 sqlite3

apt update
apt install sqlite3

打开 fail2ban 数据库:

sqlite3 /var/lib/fail2ban/fail2ban.sqlite3

数据库的中结构查看:

a. 哪些表:
sqlite> SELECT name FROM sqlite_master WHERE type='table';
fail2banDb
jails
logs
bans
bips
sqlite> 
b. 各个表的,记录个数:
SELECT 'jails' AS table_name, COUNT(*) AS row_count FROM jails
UNION ALL
SELECT 'logs' AS table_name, COUNT(*) AS row_count FROM logs
UNION ALL
SELECT 'bans' AS table_name, COUNT(*) AS row_count FROM bans
UNION ALL
SELECT 'bips' AS table_name, COUNT(*) AS row_count FROM bips;
结果:
jails|3
logs|5
bans|80
bips|592
c. 看来 f2bstate 输出用的 bips 表

我最早用的 bans 表内容,在 DashBoard 中显示。

2)MM GeoLite2 数据库

注册后就可以到下载界面:

分类:

三种精度: ASN ,City,Counrty

数据调用方式: APIs ,数据库,CSV
 

我用的版本是 GeoLite2-City_20250131 ,数据库不大,文件不到 56MB。中国区的数据是含糊的,你知道的原因,只有国家名。

使用:

GeoLite2-City.mmdb 可以在 Pyhone 用 geoip2 

pip install geoip2

例,打开数据库:

reader = geoip2.database.Reader('GeoLite2-City.mmdb')

具体看:

Geolocate an IP address using Databases | MaxMind Developer Portal

或者问 AI 

3. 应用 Dashboard 

工作原理:

从服务器上用 scp 下载 fail2ban 数据库,用 sqlite 找出 fail2ban.bips 表中的 ip 列内容,在 GeIP 数据库中找到对应的地理位置,分析并统计,最后显示在页面上。

附带功能是,显示安装 fail2ban 后的记录天数 “ Uptime (Days)”,因为要统计 2 台主机,设计在主页右上角有2个按键来切换主机。

如下:

很好奇:伊朗排第五

AI 时代,还用密码攻击?

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

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

相关文章

SpringCloudGateWay和Sentinel结合做黑白名单来源控制

假设我们的分布式项目,admin是8087,gateway是8088,consumer是8086 我们一般的思路是我们的请求必须经过我们的网关8088然后网关转发到我们的分布式项目,那我要是没有处理我们绕过网关直接访问项目8087和8086不也是可以&#xff1…

C#面试常考随笔12:游戏开发中常用的设计模式【C#面试题(中级篇)补充】

C#面试题(中级篇),详细讲解,帮助你深刻理解,拒绝背话术!-CSDN博客 简单工厂模式 优点: 根据条件有工厂类直接创建具体的产品 客户端无需知道具体的对象名字,可以通过配置文件创建…

数字人|通过语音和图片来创建高质量的视频

简介 arXiv上的计算机视觉领域论文: AniPortrait: Audio-Driven Synthesis of Photorealistic Portrait Animation AniPortrait:照片级真实感肖像动画的音频驱动合成 核心内容围绕一种新的人像动画合成框架展开。 研究内容 提出 AniPortrait 框架&a…

数据结构实战之线性表(三)

目录 1.顺序表释放 2.顺序表增加空间 3.合并顺序表 4.线性表之链表实现 1.项目结构以及初始代码 2.初始化链表(不带头结点) 3.链表尾部插入数据并显示 4.链表头部插入数据 5.初始化链表(带头结点) 6.带头结点的链表头部插入数据并显示 7.带头结…

Docker使用指南(一)——镜像相关操作详解(实战案例教学,适合小白跟学)

目录 1.镜像名的组成 2.镜像操作相关命令 镜像常用命令总结: 1. docker images 2. docker rmi 3. docker pull 4. docker push 5. docker save 6. docker load 7. docker tag 8. docker build 9. docker history 10. docker inspect 11. docker prune…

C++基础day1

前言:谢谢阿秀,指路阿秀的学习笔记 一、基础语法 1.构造和析构: 类的构造函数是一种特殊的函数,在创建一个新的对象时调用。类的析构函数也是一种特殊的函数,在删除所创建的对象时调用。 构造顺序:父类->子类 析…

尝试ai生成figma设计

当听到用ai 自动生成figma设计时,不免好奇这个是如何实现的。在查阅了不少资料后,有了一些想法。参考了:在figma上使用脚本自动生成色谱 这篇文章提供的主要思路是:可以通过脚本的方式构建figma设计。如果我们使用ai 生成figma脚本…

【PyQt】pyqt小案例实现简易文本编辑器

pyqt小案例实现简易文本编辑器 分析 实现了一个简单的文本编辑器,使用PyQt5框架构建。以下是代码的主要功能和特点: 主窗口类 (MyWindow): 继承自 QWidget 类。使用 .ui 文件加载用户界面布局。设置窗口标题、状态栏消息等。创建菜单栏及其子菜单项&…

【电脑系统】电脑突然(蓝屏)卡死发出刺耳声音

文章目录 前言问题描述软件解决方案尝试硬件解决方案尝试参考文献 前言 在 更换硬盘 时遇到的问题,有时候只有卡死没有蓝屏 问题描述 更换硬盘后,电脑用一会就卡死,蓝屏,显示蓝屏代码 UNEXPECTED_STORE_EXCEPTION 软件解决方案…

【大模型LLM面试合集】大语言模型架构_Transformer架构细节

Transformer架构细节 1.Transformer各个模块的作用 (1)Encoder模块 经典的Transformer架构中的Encoder模块包含6个Encoder Block. 每个Encoder Block包含两个⼦模块, 分别是多头⾃注意⼒层, 和前馈全连接层. 多头⾃注意⼒层采⽤的是⼀种Scaled Dot-Pr…

【华为OD-E卷 - 113 跳格子2 100分(python、java、c++、js、c)】

【华为OD-E卷 - 跳格子2 100分(python、java、c、js、c)】 题目 小明和朋友玩跳格子游戏,有 n 个连续格子组成的圆圈,每个格子有不同的分数,小朋友可以选择以任意格子起跳,但是不能跳连续的格子&#xff…

国防科大:双目标优化防止LLM灾难性遗忘

📖标题:How to Complete Domain Tuning while Keeping General Ability in LLM: Adaptive Layer-wise and Element-wise Regularization 🌐来源:arXiv, 2501.13669 🌟摘要 🔸大型语言模型(LLM…

Verilog基础(一):基础元素

verilog基础 我先说,看了肯定会忘,但是重要的是这个过程,我们知道了概念,知道了以后在哪里查询。语法都是术,通用的概念是术。所以如果你有相关的软件编程经验,那么其实开启这个学习之旅,你会感受到熟悉,也会感受到别致。 入门 - 如何开始 欢迎来到二进制的世界,数字…

多无人机--强化学习

这个是我对于我的大创项目的构思,随着时间逐渐更新 项目概要 我们的项目平台来自挑战杯揭绑挂帅的无人机对抗项目,但是在由于时间原因,并未考虑强化学习,所以现在通过大创项目来弥补遗憾 我们项目分为三部分,分为虚…

Python----Python高级(并发编程:进程Process,多进程,进程间通信,进程同步,进程池)

一、进程Process 拥有自己独立的堆和栈,既不共享堆,也不共享栈,进程由操作系统调度;进程切换需要的资源很最大,效率低。 对于操作系统来说,一个任务就是一个进程(Process)&#xff…

在Mapbox GL JS中“line-pattern”的使用详解

在Mapbox GL JS中,line-pattern 是一种用于在地图上绘制带有图案的线条的样式属性。通过 line-pattern,你可以使用自定义的图像作为线条的图案,而不是使用纯色或渐变。 1. 基本概念 line-pattern: 该属性允许你指定一个图像作为线条的图案。…

C++ Primer 算术运算符

欢迎阅读我的 【CPrimer】专栏 专栏简介:本专栏主要面向C初学者,解释C的一些基本概念和基础语言特性,涉及C标准库的用法,面向对象特性,泛型特性高级用法。通过使用标准库中定义的抽象设施,使你更加适应高级…

【大数据技术】本机PyCharm远程连接虚拟机Python

本机PyCharm远程连接虚拟机Python 注意:本文需要使用PyCharm专业版。 pycharm-professional-2024.1.4VMware Workstation Pro 16CentOS-Stream-10-latest-x86_64-dvd1.iso写在前面 本文主要介绍如何使用本地PyCharm远程连接虚拟机,运行Python脚本,提高编程效率。 注意: …

MyBatis-Plus笔记-快速入门

大家在日常开发中应该能发现,单表的CRUD功能代码重复度很高,也没有什么难度。而这部分代码量往往比较大,开发起来比较费时。 因此,目前企业中都会使用一些组件来简化或省略单表的CRUD开发工作。目前在国内使用较多的一个组件就是…

Maven jar 包下载失败问题处理

Maven jar 包下载失败问题处理 1.配置好国内的Maven源2.重新下载3. 其他问题 1.配置好国内的Maven源 打开⾃⼰的 Idea 检测 Maven 的配置是否正确,正确的配置如下图所示: 检查项⼀共有两个: 确认右边的两个勾已经选中,如果没有请…