linux dig域名DNS 查询与iptables域名ip访问流量限制;PTR 反向解析从 IP 地址到域名的映射

一、域名 dns查询

在 Linux 系统中,你可以使用多种工具和技术来进行 DNS 查询和 IP 限制。以下是一些常用的方法和工具:

DNS 查询

  1. dig 命令
    dig 是一个强大的命令行工具,用于查询 DNS 信息。

    dig example.com
    

    你可以指定查询类型,例如 A 记录、MX 记录等:

    dig example.com A
    dig example.com MX
    

直接输出ip信息

dig +short example.com

在这里插入图片描述
指定dns域名服务商

dig @114.114.114.114 example.com

8.8.8.8 谷歌
在这里插入图片描述
在这里插入图片描述

  1. nslookup 命令
    nslookup 是另一个常用的 DNS 查询工具。

    nslookup example.com
    
  2. host 命令
    host 命令也可以用于 DNS 查询。

    host example.com
    

在这里插入图片描述

二、域名IP 访问限制

在 Linux 系统中,你可以使用 iptablesnftables 来限制 IP 地址的访问。

1)使用 iptables

阻止特定 IP 地址

sudo iptables -A INPUT -s 192.168.1.100 -j DROP

这条命令会阻止来自 192.168.1.100 的入站流量。

iptables 是一个强大的命令行工具,用于配置 Linux 内核内置的防火墙,即 Netfilter。以下是一些常用参数的说明,以及如何使用 iptables 进行域名字符串匹配限制。

常用参数说明

  1. -I(插入规则)
    将规则插入到链的顶部(即第一个位置)。

    sudo iptables -I INPUT -s 192.168.1.100 -j DROP
    

    这条命令会将阻止来自 192.168.1.100 的入站流量的规则插入到 INPUT 链的顶部。

  2. -D(删除规则)
    从链中删除指定的规则。

    sudo iptables -D INPUT -s 192.168.1.100 -j DROP
    

    这条命令会删除 INPUT 链中阻止来自 192.168.1.100 的入站流量的规则。

  3. -A(追加规则)
    将规则追加到链的末尾。

    sudo iptables -A INPUT -s 192.168.1.100 -j DROP
    

    这条命令会将阻止来自 192.168.1.100 的入站流量的规则追加到 INPUT 链的末尾。

  4. -p(协议)
    指定要匹配的协议(如 tcpudpicmp 等)。

    sudo iptables -A INPUT -p tcp --dport 22 -j DROP
    

    这条命令会阻止所有到端口 22(SSH)的 TCP 入站流量。

  5. -s(源地址)
    指定要匹配的源 IP 地址或网络。

    sudo iptables -A INPUT -s 192.168.1.0/24 -j DROP
    

    这条命令会阻止来自 192.168.1.0/24 网络的所有入站流量。

  6. -d(目标地址)
    指定要匹配的目标 IP 地址或网络。

    sudo iptables -A OUTPUT -d 192.168.1.100 -j DROP
    

    这条命令会阻止所有到 192.168.1.100 的出站流量。

  7. --dport(目标端口)
    指定要匹配的目标端口。

    sudo iptables -A INPUT -p tcp --dport 80 -j DROP
    

    这条命令会阻止所有到端口 80(HTTP)的 TCP 入站流量。

  8. -j(跳转目标)
    指定匹配规则时要执行的操作(如 ACCEPTDROPREJECT 等)。

    sudo iptables -A INPUT -s 192.168.1.100 -j DROP
    

    这条命令会阻止来自 192.168.1.100 的所有入站流量。

域名字符串匹配
你的命令是使用 iptables 来阻止从源 IP 地址 192.168.2.9 发出的数据包,如果这些数据包中包含字符串 "qq.com"。以下是命令的详细解释:

sudo iptables -I OUTPUT -s 192.168.2.9 -m string --string "qq.com" --algo kmp -j DROP
  • -I OUTPUT:将规则插入到 OUTPUT 链的顶部。
  • -s 192.168.2.9:匹配源 IP 地址为 192.168.2.9 的数据包。
  • -m string:加载 string 模块。
  • --string "qq.com":匹配数据包中包含字符串 "qq.com" 的内容。
  • --algo kmp:指定字符串匹配算法为 kmp(Knuth-Morris-Pratt 算法)。
  • -j DROP:匹配到的数据包将被丢弃。

删除重复屏蔽规则
sudo iptables -nL OUTPUT --line-numbers ##查询规则索引显示

按索引号删除,注意要从最后往前索引号删除

def delete_iptables_rules(match_content):try:# 列出 INPUT 链中的所有规则及其行号result = subprocess.run(['sudo', 'iptables', '-nL', 'OUTPUT', '--line-numbers'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)lines = result.stdout.replace('"',"").split('\n')# 提取所有规则的行号line_numbers = []for line in lines:if line and not line.startswith('Chain'):line_number = line.split()if len(match_content)==2:if match_content[0] in line_number and match_content[1] in line_number:line_numbers.append(int(line_number[0]))if len(match_content)==1:if match_content[0] in line_number:line_numbers.append(int(line_number[0]))# 从最后一行开始逐条删除规则for line_number in sorted(line_numbers, reverse=True):subprocess.run(['sudo', 'iptables', '-D', 'OUTPUT', str(line_number)], check=True)## orgin_ip 是 -s源头ip,url 是字符串匹配的域名,d_url是访问服务器ip
delete_iptables_rules([orgin_ip,url])
delete_iptables_rules([orgin_ip,d_url])

在这里插入图片描述

使用场景

这个命令通常用于阻止特定 IP 地址发出的包含特定字符串的数据包。例如,如果你有一个 HTTP 请求从 192.168.2.9 发出,并且请求中包含 "qq.com" 字符串,这个命令会阻止该请求。

注意事项

  1. 应用层协议:这个命令主要用于应用层协议(如 HTTP、SMTP 等),因为这些协议的数据包中可能包含字符串内容。
  2. 协议匹配:你可能需要指定协议(如 -p tcp)来匹配特定的协议。

完整示例

假设你想阻止从 192.168.2.9 发出的 HTTP 请求中包含 "qq.com" 字符串的数据包,可以使用以下命令:

sudo iptables -I OUTPUT -s 192.168.2.9 -p tcp --dport 80 -m string --string "qq.com" --algo kmp -j DROP

这个命令会阻止从 192.168.2.9 发出的目标端口为 80(HTTP)的 TCP 数据包,如果这些数据包中包含 "qq.com" 字符串。

禁止所有网站访问:

在这里插入图片描述

2)使用 nftables

nftablesiptables 的继任者,提供了更灵活和高效的规则管理。

  1. 安装 nftables

    sudo apt-get install nftables
    
  2. 阻止特定 IP 地址

    sudo nft add rule ip filter input ip saddr 192.168.1.100 drop
    
  3. 允许特定 IP 地址

    sudo nft add rule ip filter input ip saddr 192.168.1.100 accept
    
  4. 阻止特定端口

    sudo nft add rule ip filter input tcp dport 22 drop
    
  5. 保存和恢复规则

    保存规则:

    sudo nft list ruleset > /etc/nftables.conf
    

    恢复规则:

    sudo nft -f /etc/nftables.conf
    

结合 DNS 查询和 IP 限制

你可以结合 DNS 查询和 IP 限制来实现更复杂的策略。例如,你可以先查询域名的 IP 地址,然后根据这些 IP 地址设置防火墙规则。

  1. 查询域名的 IP 地址

    dig +short example.com
    
  2. 根据查询结果设置防火墙规则

    假设查询结果为 192.168.1.100,你可以使用以下命令阻止该 IP 地址:

    sudo iptables -A INPUT -s 192.168.1.100 -j DROP
    

通过这些方法,你可以在 Linux 系统中实现灵活的 DNS 查询和 IP 限制策略。

三、PTR 反向解析从 IP 地址到域名的映射

参考:https://worktile.com/kb/ask/1850738.html
PTR记录(Pointer Record)是DNS(Domain Name System)中的一种资源记录,用于将IP地址映射到域名。与A记录(Address Record)和CNAME记录(Canonical Name Record)将域名映射到IP地址不同,PTR记录用于反向DNS查询,即从IP地址查找对应的域名。

PTR记录的作用

  1. 验证身份:在电子邮件系统中,PTR记录用于验证发送方的身份。许多邮件服务器会检查发送方的IP地址是否有对应的PTR记录,以判断邮件是否来自合法的域名。
  2. 提高邮件传递率:拥有有效的PTR记录可以提高电子邮件的传递率,因为许多邮件服务提供商会将没有PTR记录的IP地址标记为潜在的垃圾邮件发送者。
  3. 网络安全:PTR记录可以帮助识别和追踪网络攻击源,通过反向查找IP地址对应的域名,可以更好地了解攻击者的来源。

检查PTR记录

你可以使用以下命令来检查某个IP地址的PTR记录:

  • Linux/Unix

    host IP_ADDRESS
    

    例如:

    host 8.8.8.8
    
  • Windows

    nslookup -type=PTR IP_ADDRESS
    

    例如:

    nslookup -type=PTR 8.8.8.8
    

ubuntu
在这里插入图片描述
windows
在这里插入图片描述

示例

假设你有一个IP地址为192.0.2.1,你希望为其创建一个PTR记录,指向域名example.com。你需要联系你的ISP或IP管理机构,请求创建如下PTR记录:

1.2.0.192.in-addr.arpa.  IN  PTR  example.com.

注意事项

  • PTR记录的域名必须是有效的,并且指向的域名必须有对应的A记录或CNAME记录。
  • PTR记录的创建和修改可能需要一些时间来传播到全球的DNS服务器,通常需要几个小时到几天的时间。
  • 确保你提供的域名是正确的,并且你有权使用该域名,否则可能会导致邮件传递问题或其他安全问题。

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

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

相关文章

dockerfile搭建部署LNMP

目录 实验 架构: 实验步骤: nginx部分 mysql部分 php部分 实验 实验:用dockerfile搭建LNMP论坛 架构: 一台docker虚拟机 docker部署nginx 1.22 指定ip地址172.111.0.10 docker部署mysql 8.0.30 指定ip地址…

标准库标头 <execution> (C++17)学习

此头文件是算法库的一部分。本篇介绍策略类型的一些应用示例: 类 is_execution_policy (C17) 测试一个类是否表示某种执行策略 (类模板) 在命名空间 std::execution 定义 sequenced_policyparallel_policyparallel_unsequenced_policyunsequenced_policy (C17)(C1…

外排序之文件归并排序实现

外排序介绍 外排序是指能够处理极大量数据的排序算法。通常来说,外排序处理的数据不能一次装入内存,只能放在读写较慢的外存储器(通常是硬盘)上。外排序通常采用的是⼀种“排序-归并”的策略。在排序阶段,先读入能放在内存中的数据量&#x…

ACCESS 工具注入实战 凡诺靶场

简介 Access数据库注入攻击是一种常见的网络安全,通过注入SQL代码来获取未授权的数据访问权限。这种攻击利用了应用程序与数据库之间的交互漏洞,攻击者通过输入特定的SQL代码片段来操纵数据库查询,从而绕过应用程序的安全机制,获取…

基于x86 平台opencv的图像采集和seetaface6的人脸特征点功能

目录 一、概述二、环境要求2.1 硬件环境2.2 软件环境三、开发流程3.1 编写测试3.2 配置资源文件3.2 验证功能一、概述 本文档是针对x86 平台opencv的图像采集和seetaface6的人脸特征点功能,opencv通过摄像头采集视频图像,将采集的视频图像送给seetaface6的人脸特征点模块从而…

Selenium + Python 自动化测试19(补充-读取各种文件数据操作)

我们的目标是:按照这一套资料学习下来,大家可以独立完成自动化测试的任务。 上一篇我们讨论了数据驱动测试中如何完成重复的测试实例,今天我们补充一些读取各种文件的方法。 本篇文章我们讨论一下如何使用读取txt、CSV、Excel文件&#xff0…

多门店多端平台系统小程序源码

🔥【健身新纪元】多门店多端分开健身系统,打造你的个性化健身体验🌟 🏋️‍♀️ 一、告别单一,拥抱多元化健身时代 你还在为找不到合适的健身房而烦恼吗?或是想要随时随地开启健身模式,却受限…

xss靶场 pwnfunction WW3

目录 代码 代码分析 payload构造 结果 代码 <div><h4>Meme Code</h4><textarea class"form-control" id"meme-code" rows"4"></textarea><div id"notify"></div> </div><scri…

ubuntu上cmake3.30.2的安装

引言 安装下载安装包将安装包从windows拷贝到ubuntu解压进入解压后的文件夹执行boostrap编译CMake安装CMake查看是否安装成功 目前的ubuntu系统是20.04.4&#xff0c;用命令行安装了cmake的版本是3.16的&#xff0c;由于项目需要升级cmake到cmake3.22之上&#xff0c;使用命令行…

如何使用cornerstone3D渲染3D影像

&#x1f353; 前言 在日常开发中经常会遇到除了渲染MPR视图外&#xff0c;还需要渲染3D扫描影像&#xff0c;本文从具体的实现、viewport type解读、场景预设等方面来介绍3D具体的实现及涉及到的相关概念。 &#x1f951; 效果演示 点击查看完整代码 &#x1f352; 实现及概…

详细分析 el-progress的基本知识以及用法(附Demo)

目录 前言1. 基本知识2. Demo3. 实战 前言 由于实战项目中有所引用&#xff0c;对此记录基本的知识点&#xff0c;并且以Demo的形式呈现 1. 基本知识 el-progress 是 Element Plus UI 库中的一个进度条组件&#xff0c;用于显示任务的完成情况 可以帮助用户了解某个操作或任…

移动云电脑手机端3.0全新升级,畅享个人便捷管理,筑牢安全管控防线

在当今数字化飞速发展的时代&#xff0c;企业对于高效、便捷且安全的办公模式需求日益迫切。移动云电脑手机端3.0全新升级&#xff0c;迎来科技领域的又一突破。其基于企业管理平台为企业客户提供管理能力&#xff0c;实现对用户、终端、资源的全方位集中管控&#xff0c;助力提…

探索GitLab:从搭建到高效使用的实用指南

企业里为什么喜欢使用GitLab 一、GitLab简介二、搭建GitLab三、GitLab的权限管理3.1、用户注册3.2、创建用户组3.3、为用户组添加用户3.4、为工程添加访问权限 四、GitLab的code review五、团队知识管理六、总结 一、GitLab简介 GitLab是利用 Ruby on Rails 一个开源的版本管理…

Go开发桌面客户端软件小试:网站Sitemap生成

在前一篇【手把手教你用Go开发客户端软件&#xff08;使用Go HTML&#xff09;】中&#xff0c;我们详细介绍了如何通过Go语言开发一个简单的桌面客户端软件。本次&#xff0c;我们将继续这个系列&#xff0c;使用Go语言结合Sciter的Go绑定库——go-sciter&#xff0c;实战开发…

Linux虚拟机磁盘管理-新分区磁盘挂载

挂载mount 注意&#xff1a;挂载前一定要对磁盘进行文件系统创建&#xff0c;否则无法挂载磁盘 比如mkfs.ext4系统文件 磁盘挂载前和挂载后&#xff1a; linux系统重启后磁盘挂载没有了怎么办(不建议&#xff0c;哪怕输错一个字系统起不来&#xff0c;自己操作的时候出现过起不…

大语言模型-PDF文档解析

PDF解析能够提升大语言模型系统的信息处理能力和应用范围&#xff0c;为用户提供更加便捷、高效、个性化的服务体验。本文介绍三种常用的pdf解析方式&#xff1a;Open Parse、pdfplumber、PyMuPD。 一、Open Parse Open Parse是一个能够直观地识别文档布局并有效地对其进行分…

Qt 系统相关 - 网络与音视频

目录 一、Qt 网络 1. UDP Socket 1.1 核心 API 概览 1.2 回显服务器 1.3 回显客户端 2. TCP Socket 2.1 核心 API 概览 2.2 回显服务器 2.3 回显客户端 3. HTTP Client 3.1 核心 API 3.2 代码示例 二、Qt 音视频 1. Qt 音频 1.1 核心API概览 1.2 示例 2. Qt 视…

加速网络体验,Squid缓存代理:让浏览如飞,畅享无限网络速度!

作者简介&#xff1a;我是团团儿&#xff0c;是一名专注于云计算领域的专业创作者&#xff0c;感谢大家的关注 座右铭&#xff1a; 云端筑梦&#xff0c;数据为翼&#xff0c;探索无限可能&#xff0c;引领云计算新纪元 个人主页&#xff1a;团儿.-CSDN博客 目录 前言: squ…

订单到期关闭如何实现?

目录 一、被动关闭 二、定时任务 三、JDK自带的DelayQueue 四、Netty的时间轮 五、Kafka的时间轮 六、RocketMQ延迟消息 七、RabbitMQ死信队列 八、RabbitMQ插件 九、Redis过期监听 十、Redis的Zset 十一、Redisson 在电商、支付等系统中&#xff0c;一般都是先创建…

详解华为项目管理,附华为高级项目管理内训材料

&#xff08;一&#xff09;华为在项目管理中通过有效的沟通、灵活的组织结构、坚持不懈的努力、细致的管理和科学的考核体系&#xff0c;实现了持续的创新和发展。通过引进先进的管理模式&#xff0c;强调以客户需求为导向&#xff0c;华为不仅优化了技术管理和项目研发流程&a…