< 自用文儿 > 下载 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 时代,还用密码攻击?
相关文章:
< 自用文儿 > 下载 MaxMind GeoIP Databases 对攻击的 IP 做 地理分析
起因 两个 VPM/VPS,安装了 fail2ban 去拦截密码穷举攻击。每天的记录都在增长,以前复制屏幕输出就行,一屏的内容还容易粘贴出来的。昨天已经过 500 条,好奇 fail2ban 是如何存储这些内容的?就发现它在使用 SQLite3 数…...
kubernetes 核心技术-集群安全机制 RBAC
随着 Kubernetes 在企业级应用中的广泛采用,确保集群的安全性变得至关重要。Kubernetes 提供了多种安全机制来保护集群及其资源免受未授权访问和潜在威胁的影响。其中,基于角色的访问控制(Role-Based Access Control, 简称 RBAC)是…...
排序算法--快速排序
快速排序是高效的排序算法,平均时间复杂度为 O(nlogn),适合大规模数据排序。 1.挖坑法 2左右指针法 3.前后指针法 // 交换两个元素的值 void swap(int* a, int* b) {int temp *a;*a *b;*b temp; }// 分区函数,返回分区点的索引 int par…...
npm知识
npm 是什么 npm 为你和你的团队打开了连接整个 JavaScript 天才世界的一扇大门。它是世界上最大的软件注册表,每星期大约有 30 亿次的下载量,包含超过 600000 个包(package)(即,代码模块)。来自…...
雷电等基于VirtualBox的Android模拟器映射串口和测试CSerialPort串口功能
雷电等基于VirtualBox的Android模拟器映射串口和测试CSerialPort串口功能 1. 修改VirtualBox配置文件映射串口 模拟器配置文件vms/leidian0/leidian.vbox。 在UART标签下增加(修改完成后需要将leidian.vbox修改为只读) <Port slot"1" enabled"true"…...
http请求中的headers和body内容设置
1.headers 1.1 内容相关 headers {Content-Type: application/json, # 或 application/x-www-form-urlencoded, multipart/form-dataContent-Length: 1234, # 内容长度Accept: application/json, # 期望的返回格式Accept-Encoding: gzip, deflate, # 支持的压缩方式Acce…...
Python语言的安全开发
Python语言的安全开发 引言 在信息技术迅速发展的今天,网络安全问题愈发凸显。随着Python语言的广泛应用,尤其是在数据分析、人工智能、Web开发等领域,其安全问题越来越受到重视。Python作为一门高效且易于学习的编程语言,虽然在…...
[LeetCode]day13 19.删除链表的倒数第n个结点
19. 删除链表的倒数第 N 个结点 - 力扣(LeetCode) 题目描述 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例 1: 输入:head [1,2,3,4,5], n 2 输出:[1,2,3,5]示例 2&a…...
进程的环境变量
export MUDUO_LOG_DEBUG1 ./testif (::getenv("MUDUO_LOG_TRACE"))return true;有时在程序运行前,我们希望设置环境变量。此处::表示全局命名空间。 在类 Unix 系统(如 Linux、macOS)中,环境变量并不直接存储在堆、栈或…...
《深度揭秘LDA:开启人工智能降维与分类优化的大门》
在当今人工智能蓬勃发展的时代,数据成为了驱动技术进步的核心要素。随着数据采集和存储技术的飞速发展,我们所面临的数据量不仅日益庞大,其维度也愈发复杂。高维数据虽然蕴含着丰富的信息,但却给机器学习算法带来了一系列严峻的挑…...
UE编辑器工具
如何自己制作UE小工具提高工作效率 在虚幻编辑器用户界面中,可以使用各种各样的可视化工具来设置项目,设计和构建关卡,创建游戏性交互等等。但有些时候,当你确定了需要编辑器执行的操作后,可能想要通过编程方式调用它…...
.找到字符串中所有字母异位词(滑动窗口)
给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。 示例 1: 输入: s "cbaebabacd", p "abc" 输出: [0,6] 解释: 起始索引等于 0 的子串是 "cba", 它是 "…...
力扣 121. 买卖股票的最佳时机
🔗 https://leetcode.cn/problems/best-time-to-buy-and-sell-stock 题目 nums 表示连续几天的股票价格,返回最大利润 思路 贪心,模拟 代码 class Solution { public:int maxProfit(vector<int>& prices) {int ans 0;int mi…...
c++ 冒泡排序
c 冒泡排序 冒泡排序是一种简单的排序算法,它通过重复遍历待排序的数列,比较每对相邻元素的大小,并在必要时交换它们的位置。这个过程会一直进行,直到没有需要交换的元素为止,这意味着数列已经排序完成。以下是用C实现…...
JMeter的详细学习路线
以下是一个适合新手的 **JMeter 详细学习路线**,从基础到实战逐步深入,帮助你系统掌握 JMeter 的核心功能和使用技巧。 --- ### **一、入门阶段:理解基础概念** 1. **了解性能测试基础** - 什么是性能测试? - 负载测…...
【C# 】图像资源的使用
在C#中,图像资源的使用方式方法主要依赖于你所使用的框架和库。以下是几种常见的使用图像资源的方法: Windows Forms 直接加载图像: 使用System.Drawing.Image.FromFile()方法可以直接从文件系统加载图像。 Image image Image.FromFile(&qu…...
3.PPT:华老师-计算机基础课程【3】
目录 NO12 NO34 NO56 NO789 NO12 根据考生文件夹下的Word文档“PPT素材.docx”中提供的内容在PPT.pptx中生成初始的6张幻灯片 新建幻灯片6张→ctrlc复制→ctrlv粘贴开始→新建幻灯片→幻灯片(从大纲)→Word文档注❗前提是:Word文档必须应用标题1、标题2…...
关于算尽圆周率
总有人提到圆周率算尽的问题,其实代码都已经在前面给出了,自己跑一下就明白了。 用语言描述的话,那就是: 前面几篇文章已经写清楚了,圆周率的本质就是无限分辨率前提下的可二分度量单位。 就像是自然对数底…...
动态获取脚本名称作为日志文件的名称
优点 独立性: 每个脚本的日志独立存储,避免日志混杂,便于排查问题。 灵活性: 支持动态获取脚本名称,无需手动指定日志记录器名称。 可扩展性: 可以轻松扩展日志格式、级别、存储路径等功能。 易用性&…...
JavaScript前后端交互-AJAX/fetch
摘自千峰教育kerwin的js教程 AJAX 1、AJAX 的优势 不需要插件的支持,原生 js 就可以使用用户体验好(不需要刷新页面就可以更新数据)减轻服务端和带宽的负担缺点: 搜索引擎的支持度不够,因为数据都不在页面上…...
2025 网络安全学习路线 非常详细 推荐学习
关键词:网络安全入门、渗透测试学习、零基础学安全、网络安全学习路线 首先咱们聊聊,学习网络安全方向通常会有哪些问题 1、打基础时间太长 学基础花费很长时间,光语言都有几门,有些人会倒在学习 linux 系统及命令的路上&#…...
尝试把clang-tidy集成到AWTK项目
前言 项目经过一段时间的耕耘终于进入了团队开发阶段,期间出现了很多问题,其中一个就是开会讨论团队的代码风格规范,目前项目代码风格比较混乱,有的模块是驼峰,有的模块是匈牙利,后面经过讨论,…...
04树 + 堆 + 优先队列 + 图(D1_树(D17_综合刷题练习))
目录 1. 二叉树的前序遍历(简单) 1.1. 题目描述 1.2. 解题思路 方法一:递归(推荐使用) 方法二:非递归(扩展思路) 2. 二叉树的中序遍历(中等) 2.1. 题目…...
C++ Primer 数组
欢迎阅读我的 【CPrimer】专栏 专栏简介:本专栏主要面向C初学者,解释C的一些基本概念和基础语言特性,涉及C标准库的用法,面向对象特性,泛型特性高级用法。通过使用标准库中定义的抽象设施,使你更加适应高级…...
Linux(Centos)安装allnnlp失败,jsonnet报错
Linux安装allnnlp失败,jsonnet报错 问题分析并解决1. 什么是 Software Collection (SCL)?2. 安装步骤2.1 安装 SCL 仓库支持2.2 安装 Devtoolset-7 提供的 C 编译器2.3 启用 Devtoolset-7 环境2.4 验证安装 3. 永久启用 Devtoolset-7 环境 问题 执行pip install al…...
小程序设计和开发:要如何明确目标和探索用户需求?
一、明确小程序的目标 确定业务目标 首先,需要明确小程序所服务的业务领域和目标。例如,是一个电商小程序,旨在促进商品销售;还是一个服务预约小程序,方便用户预订各类服务。明确业务目标有助于确定小程序的核心功能和…...
C#面试常考随笔12:游戏开发中常用的设计模式【C#面试题(中级篇)补充】
C#面试题(中级篇),详细讲解,帮助你深刻理解,拒绝背话术!-CSDN博客 简单工厂模式 优点: 根据条件有工厂类直接创建具体的产品 客户端无需知道具体的对象名字,可以通过配置文件创建…...
napalm ‘NXOSDriver‘ object has no attribute ‘port‘ 解决方案(随手记)
解决方案(仍然使用ssh作为访问方式) 使用napalm时,对于Cisco Nexus设备,默认采用的是443的api去访问获取数据,如果需要使用ssh的方式获取,需要特别指定get_network_driver(nxos_ssh) 使用443 https api的…...
顺序表与vector
一、顺序表的模拟实现 1.顺序表的实现方式 按照数组的申请方式,有以下两种实现方式: (1)数组采用静态分配,此时的顺序表称为静态顺序表。 (2)数组采用动态分配,此时的顺序表称为动…...
Spring 面试题【每日20道】【其三】
1、Spring 中的 Profile 注解的作用是什么? 中等 Profile 注解在Spring框架中用于根据不同的环境配置文件(profiles)来激活或忽略某些Bean的注册。它允许开发者定义逻辑以区分不同环境下的bean定义,例如开发、测试和生产环境。 …...
作业day7
请使用条件变量实现2生产者2消费者模型,注意1个生产者在生q产的时候,另外一个生产者不能生产 #include <stdio.h> #include <stdlib.h> #include <pthread.h> #include <unistd.h>#define BUFFER_SIZE 5int buffer[BUFFER_SIZE]…...
后盾人JS--继承
继承是原型的继承 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </hea…...
基于CY8CKIT-149 BLE HID设备实现及PC控制功能开发(BLE HID+CapSense)
目录 项目介绍硬件介绍项目设计开发环境总体流程图BLE HID触摸按键与滑条 功能展示项目总结 👉 【Funpack4-1】基于CY8CKIT-149 BLE HID设备实现及PC控制功能开发 👉 Github: EmbeddedCamerata/CY8CKIT-149_ble_hid_keyboard 项目介绍 基于英飞凌 CY8CK…...
工业级 激光测距 飞行时间法TOF 相位法 多频调制的本质!
激光测距仪中使用的相位法飞行时间(Phase-based Time-of-Flight, ToF)是一种通过测量调制光信号的相位差来计算距离的高精度方法。以下是详细解释: 一、核心原理:用“波的延迟”测距离 想象你向一堵墙拍手,通过回声的…...
014-STM32单片机实现矩阵薄膜键盘设计
1.功能说明 本设计主要是利用STM32驱动矩阵薄膜键盘,当按下按键后OLED显示屏上会对应显示当前的按键键值,可以将此设计扩展做成电子秤、超市收银机、计算器等需要多个按键操作的单片机应用。 2.硬件接线 模块管脚STM32单片机管脚矩阵键盘行1PA0矩阵键盘…...
flowable expression和json字符串中的双引号内容
前言 最近做项目,发现了一批特殊的数据,即特殊字符",本身输入双引号也不是什么特殊的字符,毕竟在存储时就是正常字符,只不过在编码的时候需要转义,转义符是\,然而转义符\也是特殊字符&…...
关于Internet Download Manager(IDM)强制下载合并相关二次开发
目录 前言 强制下载视频 强制合并 迁移下载列表 免责声明 附录 前言 那个下载工具IDM不说了,确实有很多便捷的功能,不过也有一些限制 常见的包括但不限于: 1.无法下载有版权保护的视频(不管真假) 2.有时候下载…...
在Vue3 + Vite 项目中使用 Tailwind CSS 4.0
文章目录 首先是我的package.json根据官网步骤VS Code安装插件验证是否引入成功参考资料 首先是我的package.json {"name": "aplumweb","private": true,"version": "0.0.0","type": "module","s…...
Notepad++消除生成bak文件
设置(T) ⇒ 首选项... ⇒ 备份 ⇒ 勾选 "禁用" 勾选禁用 就不会再生成bak文件了 notepad怎么修改字符集编码格式为gbk 如图所示...
[mmdetection]fast-rcnn模型训练自己的数据集的详细教程
本篇博客是由本人亲自调试成功后的学习笔记。使用了mmdetection项目包进行fast-rcnn模型的训练,数据集是自制图像数据。废话不多说,下面进入训练步骤教程。 注:本人使用linux服务器进行展示,Windows环境大差不差。另外࿰…...
汽车自动驾驶AI
汽车自动驾驶AI是当前汽车技术领域的前沿方向,以下是关于汽车自动驾驶AI的详细介绍: 技术原理 感知系统:自动驾驶汽车通过多种传感器(如激光雷达、摄像头、雷达、超声波传感器等)收集周围环境的信息。AI算法对这些传感…...
信息学奥赛一本通 2101:【23CSPJ普及组】旅游巴士(bus) | 洛谷 P9751 [CSP-J 2023] 旅游巴士
【题目链接】 ybt 2101:【23CSPJ普及组】旅游巴士(bus) 洛谷 P9751 [CSP-J 2023] 旅游巴士 【题目考点】 1. 图论:求最短路Dijkstra, SPFA 2. 动态规划 3. 二分答案 4. 图论:广搜BFS 【解题思路】 解法1:Dijkstra堆优化 …...
Day25 洛谷 提高- 1007
零基础洛谷刷题记录 Day01 2024.11.18 Day02 2024.11.25 Day03 2024.11.26 Day04 2024.11.28 Day05 2024.11.29 Day06 2024 12.02 Day07 2024.12.03 Day08 2024 12 05 Day09 2024.12.07 Day10 2024.12.09 Day11 2024.12.10 Day12 2024.12.12 Day13 2024.12.16 Day14 2024.12.1…...
minikube 的 Kubernetes 入门教程--Ollama
让我们在本地 Kubernetes 中部署 Ollama(llama3.2) Ollama 安装方式有多样,是可选的,因为有minikube环境,我在 Kubernetes 中Deployment它。调用Ollama镜像,也可以用 Ollama CLI 去运行(run&am…...
【字节青训营-7】:初探 Kitex 字节微服务框架(使用ETCD进行服务注册与发现)
本文目录 一、Kitex概述二、第一个Kitex应用三、IDL四、服务注册与发现 一、Kitex概述 长话短说,就是字节跳动内部的 Golang 微服务 RPC 框架,具有高性能、强可扩展的特点,在字节内部已广泛使用。 如果对微服务性能有要求,又希望…...
Docker技术相关学习三
一、Docker镜像仓库管理 1.docker仓库:用于存储和分发docker镜像的集中式存储库,开发者可以将自己创建的镜像推送到仓库中也可以从仓库中拉取所需要的镜像。 2.docker仓库: 公有仓库(docker hub):任何人都可…...
浏览器查询所有的存储信息,以及清除的语法
要在浏览器的控制台中查看所有的存储(例如 localStorage、sessionStorage 和 cookies),你可以使用浏览器开发者工具的 "Application" 标签页。以下是操作步骤: 1. 打开开发者工具 在 Chrome 或 Edge 浏览器中…...
生成式AI安全最佳实践 - 抵御OWASP Top 10攻击 (上)
今天小李哥将开启全新的技术分享系列,为大家介绍生成式AI的安全解决方案设计方法和最佳实践。近年来,生成式 AI 安全市场正迅速发展。据 IDC 预测,到 2025 年全球 AI 安全解决方案市场规模将突破 200 亿美元,年复合增长率超过 30%…...
mysql 学习8 函数,字符串函数,数值函数,日期函数,流程函数
函数 一 字符串函数 二 数值函数 三 日期函数 四 流程函数...
WSL2中安装的ubuntu搭建tftp服务器uboot通过tftp下载
Windows中安装wsl2,wsl2里安装ubuntu。 1. Wsl启动后 1)Windows下ip ipconfig 以太网适配器 vEthernet (WSL (Hyper-V firewall)): 连接特定的 DNS 后缀 . . . . . . . : IPv4 地址 . . . . . . . . . . . . : 172.19.32.1 子网掩码 . . . . . . . .…...