debian12拒绝海外ip连接

news2025/6/9 16:07:40

确保 nftables 已安装: Debian 12 默认使用 nftables 作为防火墙框架。检查是否安装:

sudo apt update
sudo apt install nftables

启用并启动 nftables 服务

sudo systemctl enable nftables
sudo systemctl start nftables

下载maxmind数据库
在这里插入图片描述
将文件解压后放在任意目录
在这里插入图片描述

# 安装iprange
sudo apt install iprange

# 备份 nftables.conf
sudo cp /etc/nftables.conf /etc/nftables.conf.bak

# 清空所有规则
sudo nft flush ruleset

# 停止服务
sudo systemctl stop nftables

删除原配置文件
sudo rm -rf /etc/nftables.conf

修改配置文件
sudo vim  /etc/nftables.conf

修改后配置文件如下

#!/usr/sbin/nft -f

flush ruleset

table inet filter {
    # 定义中国大陆 IPv4 地址集合
    set cn_ips {
        type ipv4_addr
        flags interval
        #CN_IPV4_ELEMENTS#
    }

    # 定义局域网 IPv4 地址集合
    set lan_ips {
        type ipv4_addr
        flags interval
        elements = { 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12 }  # 替换为你的局域网范围
    }

    chain input {
        type filter hook input priority 0; policy drop;

        # 允许本地回环接口
        iifname "lo" accept

        # 允许已建立和相关的连接
        ct state established,related accept

		# 允许局域网 IPv4 访问
        ip saddr @lan_ips accept

		# 允许局域网 IP 访问 ICMP Echo 请求 (ping)
	    ip saddr @lan_ips icmp type echo-request accept

		# 允许中国大陆 IPv4 地址访问指定 TCP 端口
		ip saddr @cn_ips tcp dport { 80, 3306, 8443, 25, 465, 587, 110, 995, 143, 993 } accept
		
		# 允许中国大陆 IP 访问 ICMP Echo 请求 (ping)
	    ip saddr @cn_ips icmp type echo-request accept

        # 记录被拒绝的连接(可选)
        log prefix "[nftables] Blocked: " flags all counter drop

        # 拒绝所有其他连接
        counter drop
    }

    chain output {
        type filter hook output priority 0; policy accept;
    }

    chain forward {
        type filter hook forward priority 0; policy drop;
    }
}

创建替换ip的脚本

sudo vim update_nftables.sh

脚本内容

#!/bin/bash

# 提取中国大陆 IPv4 地址
grep '1814991' GeoLite2-Country-Blocks-IPv4.csv | awk -F',' '{print $1}' > cn_ipv4.txt

# 优化 IPv4 地址范围
iprange cn_ipv4.txt > cn_ipv4_optimized.txt

# 转换为 nftables 集合格式(IPv4)
echo "elements = {" > cn_ipv4_nft.txt
awk '{print $1","}' cn_ipv4_optimized.txt >> cn_ipv4_nft.txt
echo "}" >> cn_ipv4_nft.txt

# 使用 sed 替换 IPv4 占位符
sudo sed -i '/#CN_IPV4_ELEMENTS#/r cn_ipv4_nft.txt' /etc/nftables.conf
sudo sed -i 's/#CN_IPV4_ELEMENTS#//' /etc/nftables.conf

# 应用规则
sudo nft -f /etc/nftables.conf

# 清理临时文件
sudo rm cn_ipv4.txt cn_ipv4_optimized.txt cn_ipv4_nft.txt

# 确保 nftables 服务启用
sudo systemctl enable nftables
sudo systemctl restart nftables

给权限

sudo chmod +x update_nftables.sh

执行脚本

sudo ./update_nftables.sh

检查规则

sudo nft list ruleset

查看被拒绝的信息

查看系统日志文件
sudo grep "\[nftables\] Blocked:" /var/log/syslog

示例输出:

Jun  8 22:30:45 hostname kernel: [nftables] Blocked: IN=eth0 OUT= MAC=... SRC=203.0.113.1 DST=192.168.1.100 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=12345 PROTO=TCP SPT=54321 DPT=22 WINDOW=65535 RES=0x00 SYN URGP=0

解释:

  • SRC=203.0.113.1:源 IP(被拒绝的外部 IP)。
  • DST=192.168.1.100:目标 IP(你的服务器)。
  • PROTO=TCP:协议类型。
  • SPT=54321 DPT=22:源端口和目标端口(例如,尝试访问 SSH 的 22 端口)。
  • IN=eth0:入站接口。

实时监控日志: 使用 tail 实时查看新记录的被拒绝连接:

sudo tail -f /var/log/syslog | grep "\[nftables\] Blocked:"

过滤特定信息: 如果日志量大,可以提取特定字段(如源 IP)

sudo grep "\[nftables\] Blocked:" /var/log/syslog | awk '{print $8}' | sort | uniq

这会提取被拒绝的源 IP(SRC=…)并去重。

查看 nftables 计数器
   sudo nft list ruleset
示例输出:
 table inet filter {
 chain input {
     type filter hook input priority 0; policy drop;
     iifname "lo" accept
     ct state established,related accept
     ip saddr @lan_ips accept
     ip6 saddr @lan_ips6 accept
     ip saddr @cn_ips accept
     ip6 saddr @cn_ips6 accept
     log prefix "[nftables] Blocked: " flags all counter packets 123 bytes 4560 drop
     counter packets 123 bytes 4560 drop
 }
...
}
  • counter packets 123 bytes 4560 drop:表示有 123 个数据包(共 4560 字节)被拒绝。
  • packets:被拒绝的数据包数量。
  • bytes:被拒绝的数据总字节数。

修改/etc/nftables.conf配置文件后只需要执行下面命令就可刷新规则

sudo nft flush ruleset
sudo nft -f /etc/nftables.conf
sudo systemctl restart nftables
#查看当前规则
sudo nft list ruleset

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

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

相关文章

70年使用权的IntelliJ IDEA Ultimate安装教程

安装Java环境 下载Java Development Kit (JDK) 从Oracle官网或OpenJDK。推荐选择JDK 11或更高版本。 运行下载的安装程序,按照提示完成安装。注意记录JDK的安装路径(如C:\Program Files\Java\jdk-11.0.15)。 配置环境变量: 右键…

MySQL的日志

就相当于人的日记本,记录每天发生的事,可以对数据进行追踪 一、错误日志 也就是存放错误信息的 二、二进制日志-binlog 在低版本的MySQL中,二进制日志是不会默认开启的 存放除了查询语句的其他语句 三、查询日志 查询日志会记录客户端的所…

低功耗高安全:蓝牙模块在安防系统中的应用方案

随着物联网(IoT)和智能家居的快速发展,安防行业正迎来前所未有的技术革新。蓝牙模块作为一种低功耗、高稳定性的无线通信技术,凭借其低成本、易部署和智能化管理等优势,在安防领域发挥着越来越重要的作用。本文将探讨蓝牙模块在安防系统中的应…

C++定长内存块的实现

内存池 内存池是指程序预先从操作系统 申请一块足够大内存 ,此后,当程序中需要申请内存的时候,不是直接向操作系统申请,而是 直接从内存池中获取 ; 同理,当 **程序释放内存 **的时候,并不真正将…

Unity使用代码分析Roslyn Analyzers

一、创建项目(注意这里不要选netstandard2.1会有报错) 二、NuGet上安装Microsoft.CodeAnalysis.CSharp 三、实现[Partial]特性标注的类,结构体,record必须要partial关键字修饰 需要继承DiagnosticAnalyzer 注意一定要加特性Diagn…

大数据CSV导入MySQL

CSV Import MySQL 源码主要特性技术栈快速开始1. 环境要求2. 构建项目3. 使用方式交互式模式命令行模式编程方式使用 核心组件1. CsvService2. DatabaseService3. CsvImportService 数据类型映射性能优化1. 连接池优化2. 批量操作优化3. MySQL配置优化 配置说明application.yml…

MySQL 索引优化(Explain执行计划) 详细讲解

🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 MySQL 索引优化(Explain执行计划…

Cad 反应器 cad c#二次开发

在 AutoCAD C# 二次开发中,DocumentCollectionEventHandler 是一个委托(delegate),用于处理与 AutoCAD 文档集合(DocumentCollection)相关的事件。它属于 AutoCAD .NET API 的事件处理机制,本质…

【websocket】安装与使用

websocket安装与使用 1. 介绍2. 安装3. websocketpp常用接口4. Websocketpp使用4.1 服务端4.2 客户端 1. 介绍 WebSocket 是从 HTML5 开始支持的一种网页端和服务端保持长连接的 消息推送机制。 传统的 web 程序都是属于 “一问一答” 的形式,即客户端给服务器发送…

【大模型】LogRAG:基于检索增强生成的半监督日志异常检测

文章目录 A 论文出处B 背景B.1 背景介绍B.2 问题提出B.3 创新点 C 模型结构D 实验设计D.1 数据集/评估指标D.2 SOTAD.3 实验结果 E 个人总结E.1 优点E.2 不足 A 论文出处 论文题目:LogRAG: Semi-Supervised Log-based Anomaly Detection with Retrieval-Augmented …

基于SpringBoot实现的大创管理系统设计与实现【源码+文档】

基于SpringBootVue实现的大创管理系统采用前后端分离架构方式,系统设计了管理员、学生、指导老师、院系管理员两种角色,系统实现了用户登录与注册、个人中心、学生管理、指导老师管理、院系管理员管理、优秀项目管理、项目类型管理、项目信息管理、项目申…

国产高云FPGA实现视频采集转UDP以太网输出,FPGA网络摄像头方案,提供2套Gowin工程源码和技术支持

目录 1、前言工程概述免责声明 2、相关方案推荐我已有的所有工程源码总目录----方便你快速找到自己喜欢的项目国产高云FPGA基础教程国产高云FPGA相关方案推荐我这里已有的以太网方案 3、设计思路框架工程设计原理框图输入Sensor之-->OV7725摄像头输入Sensor之-->OV5640摄…

Webpack依赖

Webpack到底怎么对我们的项目进行打包捏? 在webpack处理应用程序时,会根据命令或者配置文件找到入口文件 从入口开始,会生成一个依赖关系图,这个依赖关系图会包含应用程序中所需的所有模块(.js、css文件、图片、字体…

自动驾驶科普(百度Apollo)学习笔记

1. 写在前面 在过去的几年里,自动驾驶技术取得飞速发展,人类社会正逐渐走向一个新时代,这个时代中,汽车不仅仅是一个交通工具,更是一个智能的、能够感知环境、做出决策并自主导航的机器伙伴。现在正好也从事这块的工作…

leetcode_66.加一

题目链接 这道题归类在力扣的数学类中,应该算是一道思维的简单题吧 题是这样的,根据题目我们不难理解,这个题就是在最后一位加 1 然后返回,正如示例所说的那样,当然这很符合我们人的思维,写这种算法题最重要…

iview-admin静态资源js按需加载配置

iview-admin2.0版本默认加载所有组件的JS,实际情况下,用户访问后台并不会每个页面都浏览。这样就会造成流量及带宽的浪费。可通过修改配置文件vue.config.js来实现按需加载,具体配置如图 image © 著作权归作者所有,转载或内容合作请联系…

抖去推--短视频矩阵系统源码开发

一、开发短视频矩阵系统的源码需要以下步骤: 确定系统需求: 根据客户的具体业务目标,明确系统需实现的核心功能模块,例如用户注册登录、视频内容上传与管理、多维度视频浏览与推荐、用户互动(评论、点赞、分享&#xf…

Vue部署到Nginx上及问题解决

一、Vue打包 dist文件即打包文件 二、下载Nginx,将dist内容全部复制到Nginx的html下 三、修改Nginx的nginx.conf配置文件,添加try_files $uri $uri/ /index.html; try_files $uri $uri/ /index.html; 是 Nginx 配置中的一个重要指令,用于处理…

项目-- Json-Rpc框架

目录 项目简介环境搭建Ubuntu-22.04 第三方库使用JsonCppMuduo基础类EventLoop类TcpConnection类Buffer类TcpClient类TcpServer类 服务端基本搭建客户端基本搭建 future 项目设计通用模块设计Rpc功能模块设计发现者设计提供者设计服务注册中心设计 Topic功夫模块设计主题管理中…

因泰立科技H1X激光雷达:因泰立科技为智慧工业注入新动力

在当今工业领域,精准测量与高效作业是推动产业升级的关键因素。因泰立科技推出的H1X三维轮廓扫描激光雷达,凭借其卓越的性能和广泛的应用场景,正成为智慧工业中不可或缺的高科技装备。 产品简介 H1X三维轮廓扫描激光雷达是因泰立科技基于二维…