当前位置: 首页 > news >正文

DNS安全与访问控制

一、DNS安全

1、DNSSEC原理

DNSSEC依靠数字签名保证DNS应答报文的真实性和完整性。权威域名服务器用自己的私有密钥对资源记录(Resource Record, RR)进行签名,解析服务器用权威服务器的公开密钥对收到的应答信息进行验证。如果验证失败,表明这一报文可能是假冒的,或者在传输过程、缓存过程中被篡改了。

一个支持DNSSEC的解析服务器(RFC4033中Security-Aware Resolver)向支持DNSSEC的权威域名服务器(Security-Aware Name Server)请求域名www.test.net.时,它除了得到一个标准的A记录(包含IPv4地址)以外,还收到一个同名的RRSIG记录,其中包含test.net这个权威域的数字签名,它是用test.net.的私有密钥来签名的。为了验证这一签名的正确性,解析服务器可以再次向test.net的域名服务器查询响应的公开密钥,即名为test.net的DNSKEY类型的资源记录。然后解析服务器就可以用其中的公钥验证上述www.test.net. 记录的真实性与完整性。

配置或布署DNSSEC有两种场景:

(1)配置安全的域名解析服务器(Resolver),该服务器可以保护使用它的用户,防止被DNS 欺骗攻击。这里只涉及数字签名的验证工作。

(2)配置安全的权威域名服务器(Name Server),对权威域的资源记录进行签名,保护服务器不被域名欺骗攻击。

2、配置安全解析服务器

首先,在BIND的配置文件(一般是/etc/named.conf)中打开DNSSEC选项,比如:

options {

directory “/var/named”;

dnssec-validation yes;

….

};

1)配置Trust anchor

其次,要给解析服务器配置可信锚(Trust Anchors),也就是你所信任的权威域的DNSKEY。理想情况下我们可以配置一个根的密钥就够了,但是目前DNSSEC还没有完全布署的情况下,我们需要配置很多安全岛(Secure Island)的密钥。可以从很多公开的网站下载这些可信域的DNSKEY文件,包括:

(1)Root Zone DNSSEC Trust Anchors:https://www.iana.org/dnssec/。2010年7月布署实施。如果DNSSEC全部布署成功,这一个公开密钥就足够了。

(2)The UCLA secspider : https://secspider.cs.ucla.edu,由美国加州大学洛杉矶分校(UCLA)张丽霞教授的实验室维护。

(3)The IKS Jena TAR:https://www.iks-jena.de/leistungen/dnssec.php

这些文件大概是这样的格式:

trusted-keys {

“test.net.”  256 3 5  “AQPzzTWMz8qS…3mbz7Fh

……

….fHm9bHzMG1UBYtEIQ==”;

“193.in-addr.arpa.” 257 3 5 “AwEAAc2Rn…HlCKscYl

kf2kOcq9xCmZv….XXPN8E=”;

};

假设上述trust anchors的文件为/var/named/trust-anchors.conf,则在/etc/named.conf中增加下面一行:

include “/var/named/sec-trust-anchors.conf”;

2)测试

在完成上述配置修改之后重新启动named进程,然后选择一个trust anchor文件中有的区或者它下一级的域名,在解析服务器上用dig测试一下,例如:

#dig @127.0.0.1 +dnssec   test.net.  SOA

如果配置正确,应该返回test.net的SOA记录和相应的RRSIG记录,另外返回的头部中应该包含AD标志位,表示DNSSEC相关的数字签名验证是正确的,类似下面的样子:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1397

;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 3

如果没有得到期望的结果,需要查看DNS的日志来找出问题。BIND为DNSSEC相关的事件增加了一个dnssec类别,可以在/etc/named.conf配置日志如下:

logging {

channel dnssec_log {

file “log/dnssec” size 20m;   // a DNSSEC log channel 20m;

print-time yes;                   // timestamp the entries

print-category yes;          // add category name to entries

print-severity yes;          // add severity level to entries

severity debug 3;         // print debug message <= 3 t

};

};

category dnssec { dnssec_log; };

3、配置权威服务器

1)生成签名密钥对

首先为你的区(zone)文件生成密钥签名密钥KSK:

# cd /var/named

# dnssec-keygen -f KSK -a RSASHA1 -b 512 -n ZONE test.net.

Ktest.edu.+005+15480

然后生成区签名密钥ZSK:

# dnssec-keygen -a RSASHA1 -b 512 -n ZONE test.net.

Ktest.edu.+005+03674

其中的-a 参数是签名算法,-b是密钥长度。上述命令共产生两对DNSKEY密钥(共四个文件),分别以.key和.private结尾,表明这个文件存储的是公开密钥或私有密钥。

2)签名

签名之前,你需要把上面的两个DNSKEY写入到区文件中

#cat “$INCLUDE Ktest.net.+005+15480.key” >> db.test.net

# cat “$INCLUDE Ktest.net.+005+03674.key” >> db.test.net

然后执行签名操作:

# dnssec-signzone -o test.net. db.test.net

db.test.net.signed

上面的-o选项指定代签名区的名字。生成的db.test.net.signed

然后修改/etc/named.conf如下:

options  {

directory “/var/named”;

dnssec-enable yes;

};

zone “test.net” {

type master;

file “db.test.net.signed”;

};

记住,你每次修改区中的数据时,都要重新签名:

# dnssec-signzone -o test.net -f db.test.net.signed.new db.test.net.signed

# mv db.test.net.signed db.test.net.signed.bak

# mv db.test.net.signed.new db.test.net.signed

# rndc reload test.net

3)发布公钥

要让其他人验证你的数字签名,其他人必须有一个可靠的途径获得你的公开密钥。DNSSEC通过上一级域名服务器数字签名的方式签发你的公钥。

用dnssec-signzone时,会自动生成keyset-文件和dsset-开头的两个文件,分别存储着KSK的DNSKEY记录和DS记录。作为test.net区的管理员,你需要把这两个文件发送给.net的管理员,.net的管理员需要把这两条记录增加到.net区中,并且用.net的密钥重新签名。

test.net.              86400   IN NS   ns.test.net.

86400   DS      15480 5 1 (

F340F3A05DB4D081B6D3D749F300636DCE3D

6C17 )

86400   RRSIG   DS 5 2 86400 20060219234934 (

20060120234934 23912   net.

Nw4xLOhtFoP0cE6ECIC8GgpJKtGWstzk0uH6

YWInWvWx12IiPKfkVU3F0EbosBA= )

二、DNS访问控制 

   因为安全和DNS服务器性能,如果没有ACL,那么任何人都可以到我们的DNS服务器上做递归查询,这样是非常危险的。而且DNS的区域传送是多主复制,如果不设置ACL,那么任何主机都可以到我们的DNS上来做完全区域传送,这也是很危险的。

1、BIND中常用4个常用的控制指令

allow-transfer { ip;|none;}; //允许做区域传送的指令。

allow-query { ip;|none;}; //允许做查询的指令。

allow-recursion { ip;|none;}; //允许做递归查询的ip列表,一般来说只允许给本地客户端做递归查询。

allow-update { ip;|none; }; //用于DDNS(动态DNS:与DHCP联动),比较危险,一般不允许更新数据文件。

以上4段可以放到全局配置中对全局配置生效,也可放在某个区域中,只针对于某个区域生效;而allow-recursion参数要加入到全局配置中,其他两项一般是放到区域配置中。

2、BIND的ACL

如果allow-transfer 和 allow-query 放到区域配置中一般后期修改ip地址会非常的麻烦,所以可以定义acl访问规则:

acl只有先定义才可以使用,因此acl定义必须在acl调用的最上方即放在配置文件的最上方。

acl  string  { address_match_element; ...};

acl acl_name {

ip;具体的ip地址

net/prelen;表示一个网段

};

例如:

acl mynet {

172.168.179.110

172.168.179.0/24

};

allow-query     { localhost; };

allow-query     { mynet; };

bind 内置的 acl:

none :没有一个主机

any :任意主机

localhost :本地主机

localnets:本机的IP同掩码

相关文章:

DNS安全与访问控制

一、DNS安全 1、DNSSEC原理 DNSSEC依靠数字签名保证DNS应答报文的真实性和完整性。权威域名服务器用自己的私有密钥对资源记录&#xff08;Resource Record, RR&#xff09;进行签名&#xff0c;解析服务器用权威服务器的公开密钥对收到的应答信息进行验证。如果验证失败&…...

【LMM 011】MiniGPT-5:通过 Generative Vokens 进行交错视觉语言生成的多模态大模型

论文标题&#xff1a;MiniGPT-5: Interleaved Vision-and-Language Generation via Generative Vokens 论文作者&#xff1a;Kaizhi Zheng* , Xuehai He* , Xin Eric Wang 作者单位&#xff1a;University of California, Santa Cruz 论文原文&#xff1a;https://arxiv.org/ab…...

WEB 3D技术 three.js 顶点交换

本文 我们来说 顶点的转换 其实就是 我们所有顶点的位置发生转变 我们整个物体的位置也会随之转变 这里 我们编写代码如下 import ./style.css import * as THREE from "three"; import { OrbitControls } from "three/examples/jsm/controls/OrbitControls.j…...

ROS学习笔记(11)进一步深入了解ROS第五步

0.前提 我在学习宾夕的ROS公开课的时候发现&#xff0c;外国的对计算机的教育和国内的是完全不一样的&#xff0c;当你接触了外国的课程后回头看自己学的会发现好像自己啥也没学。我这里可以放出来给大家看一下。 1.Python and C 2.Python PDB Tutorial&#xff1a;Python Deb…...

性能优化-OpenMP基础教程(四)-Android上运行OpenMP

本文主要介绍如何在一个常规的Android手机上调试OpenMP程序&#xff0c;包括Android NDK的环境配置和使用JNI编写一个OpenMP程序运行在Android手机中。 &#x1f3ac;个人简介&#xff1a;一个全栈工程师的升级之路&#xff01; &#x1f4cb;个人专栏&#xff1a;高性能&#…...

【转载】-财报-丈母娘教咱看财报(资产负债表-利润表-现金流量表)

写在前面 近期&#xff0c;在知乎看到“云峰金融”的一篇关于金融知识的文章《丈母娘教你看财报》&#xff0c;挺有意思的&#xff0c;挑出核心内容&#xff0c;又添加了一些内容的解释&#xff0c;特来分享一下。对于金融入门小白来讲&#xff0c;非常友好。如有不正确的地方&…...

HTML5大作业-精致版个人博客空间模板源码

文章目录 1.设计来源1.1 博客主页界面1.2 博主信息界面1.3 我的文章界面1.4 我的相册界面1.5 我的工具界面1.6 我的源码界面1.7 我的日记界面1.8 我的留言板界面1.9 联系博主界面 2.演示效果和结构及源码2.1 效果演示2.2 目录结构2.3 源代码 源码下载 作者&#xff1a;xcLeigh …...

数字IC后端设计实现之Innovus update_names和changeInstName的各种应用场景

今天吾爱IC社区小编给大家分享下数字IC后端设计实现innovus中关于update_names和changeInstName在PR中的具体使用方法。 update_names 1&#xff09;为了避免和verilog语法保留的一些关键词&#xff0c;比如input&#xff0c;output这些&#xff0c;是不允许存在叫这类名字的…...

1月6日,每日信息差

1、世界最大冰雪主题乐园&#xff01;哈尔滨冰雪大世界获吉尼斯世界纪录&#xff0c;吉尼斯世界纪录大中华地区首位认证官吴晓红宣布&#xff0c;哈尔滨冰雪大世界面积为816682.5平方米&#xff0c;是世界上最大的冰雪主题乐园&#xff0c;荣获一项新的吉尼斯世界纪录称号 2、…...

部署上传漏洞的靶场环境upload-labs

1、工具介绍 upload-labs是一个使用php语言编写的&#xff0c;专门收集渗透测试和CTF中遇到的各种上传漏洞的靶场。旨在帮助大家对上传漏洞有一个全面的了解。目前一共20关&#xff0c;每一关都包含着不同上传方式。 upload-labs靶场开源地址&#xff1a;&#xff1a;https://…...

Linux的压缩与解压

一、tar命令 语法&#xff1a;tar [-c -v -x -f -z -C] 参数1 参数2 参数3 ....-c&#xff1a;创建压缩文件&#xff0c;用于压缩模式-v&#xff1a;显示压缩、解压过程&#xff0c;用于查看进度-x&#xff1a;解压模式-f&#xff1a;要创建的文件&#xff0c;或者要解压的文件…...

互联网大厂面试题目

阿里篇 1.1.1 如何实现一个高效的单向链表逆序输出&#xff1f; 1.1.2 已知sqrt(2)约等于1.414&#xff0c;要求不用数学库&#xff0c;求sqrt(2)精确到小数点后10位 1.1.3 给定一个二叉搜索树(BST)&#xff0c;找到树中第 K 小的节点 1.1.4 LRU缓存机制 1.1.5 关于epoll和…...

单文件上传

随着Web应用的普及&#xff0c;文件上传功能成为许多网站和应用不可或缺的一部分。本文整理了个人学习过程中的笔记&#xff0c;为开发者提供全面的了解和实践经验。 单文件上传 在早期的html应用中&#xff0c;都是使用form标签中嵌套来实现文件上传的&#xff0c;具体代码如…...

美经济学家预测,明年美股或将大跌86%,你怎么看?

年初至今&#xff0c;标准普尔500指数上涨25%&#xff0c;道琼斯指数上涨13%&#xff0c;以科技股为主的纳斯达克指数大涨了44%。 美国经济学家哈里斯登特近日预测&#xff0c;这种牛市是“100%人为印钞的结果”&#xff0c;而这一巨大的泡沫将在2024年破灭&#xff0c;届时美…...

【BIAI】lecture 3 - GD BP CNN Hands-on

GD & BP & CNN & Hands-on 专业术语 gradient descent (GD) 梯度下降 back propagation (BP) 向传播 Convolutional Neural Network (CNN) 卷积神经网络 forward propagation 前向传播 biologically symmetry 生物对称性 synaptic 突触 axon 轴突 课程大纲 The go…...

计算机Java项目|基于SpringBoot+Vue的图书个性化推荐系统

项目编号&#xff1a;L-BS-GX-10 一&#xff0c;环境介绍 语言环境&#xff1a;Java: jdk1.8 数据库&#xff1a;Mysql: mysql5.7 应用服务器&#xff1a;Tomcat: tomcat8.5.31 开发工具&#xff1a;IDEA或eclipse 二&#xff0c;项目简介 图片管理系统是一个为学生和…...

lenovo联想小新Pro-13 2020 Intel IML版笔记本电脑(82DN)原装出厂Win10系统镜像

链接&#xff1a;https://pan.baidu.com/s/1bJpfXudYEC7MJ7qfjDYPdg?pwdjipj 提取码&#xff1a;jipj 原装出厂Windows10系统自带所有驱动、出厂主题壁纸、系统属性专属LOGO标志、Office办公软件、联想电脑管家等预装程序 所需要工具&#xff1a;16G或以上的U盘 文件格式&a…...

54、Softmax 分类器以及它的底层原理

下面开始介绍最后一个算法softmax。在前面介绍全连接算法或其他文章中,或多或少也提到了softmax。 在分类网络里,softmax的作用主要是将模型的原始输出映射到 0~1之间的概率分布。很多时候对于我们初学者而言,只知道softmax可以做概率映射,但并不了解它内部的原理是如何完…...

【React】class组件生命周期函数的梳理和总结(第一篇)

1. 前言 本篇梳理和总结一下React的生命周期函数&#xff0c;方便使用class组件的同学查阅&#xff0c;先上生命周期图谱。 2. 生命周期函数 生命周期函数说明constructor(props) 功能&#xff1a;如果不需要初始化state或不进行方法绑定&#xff0c;class组件可以不用实现构造…...

[每周一更]-(第49期):一名成熟Go开发需储备的知识点(答案篇)- 2

答案篇 1、Go语言基础知识 什么是Go语言&#xff1f;它有哪些特点&#xff1f; Go语言&#xff08;也称为Golang&#xff09;是一种由Google开发的开源编程语言。它于2007年首次公开发布&#xff0c;并在2012年正式推出了稳定版本。Go语言旨在提供简单、高效、可靠的编程解决…...

23种设计模式Python版

目录 创建型模式简单工厂模式工厂方法模式抽象工厂模式单例模式原型模式建造者模式 结构型模式适配器模式桥接模式组合模式装饰器模式外观模式享元模式代理模式 行为型模式职责链模式命令模式解释器模式迭代器模式中介者模式备忘录模式观察者模式状态模式策略模式模板方法模式访…...

2024年汉字小达人区级选拔备考——真题做一做:诗词连线

前面&#xff0c;六分成长介绍了汉字小达人区级选拔样题的第一大题看拼音写汉字&#xff0c;以及第二大题补充成语。这两道题都是填空题&#xff0c;通常在学校进行线下选拔的时候使用。这篇文章介绍第三大题&#xff1a;诗词连线。 诗词连线是2022年&#xff08;第九届&#x…...

Vite scss 如何引入本地 字体

Vite scss 如何引入本地 字体 最近在用 Vite 改造一个旧项目 Diary&#xff0c;遇到了好多从 Vue 转到 Vite 的问题。 这次这个问题是&#xff1a; scss 里本地字体引入的问题。 一、问题描述 可以看到下面的卡片字体&#xff0c;本来应该是 impact 的&#xff0c;但现在无法…...

扩展 apiserver 连接认证 ip, apiserver证书更新

本文来自我的博客地址 文章目录 问题场景:问题分析:问题解决:查看 apiserver 证书支持的 ip 或 host使用 openssl 生成证书:再次查看 apiserver 证书支持的 ip 或 host 再次尝试将 master 加点加入参考 问题场景: k8s 1.28.1 集群后期新增 vip apiserver 证书不支持 vip 引入…...

VUE--保留小数(过滤器)

1.cutOutNum.js export const cutOutNum (num, decimals) > {if (isNaN(num) || (!num && num ! 0)) {return "-";}function toNonExponential(_num) {var m Number(_num).toExponential().match(/\d(?:\.(\d*))?e([-]\d)/);return Number(_num).toF…...

书生·浦语大模型实战营第一次课堂笔记

书生浦语大模型全链路开源体系。大模型是发展通用人工智能的重要途径,是人工通用人工智能的一个重要途径。书生浦语大模型覆盖轻量级、重量级、重量级的三种不同大小模型,可用于智能客服、个人助手等领域。还介绍了书生浦语大模型的性能在多个数据集上全面超过了相似量级或相近…...

Mysql为什么只能支持2000w左右的数据量?

首先说明一下&#xff1a; MySQL并没有硬性规定只能支持到2000万左右的数据量。 其实&#xff0c;MySQL能够处理的数据量远远超过这个数字。无论是开源社区版还是商业版&#xff0c; MySQL在适当的硬件和配置下&#xff0c;都能够支持非常大的数据集。 通常所说的“MySQL只能…...

限制选中指定个数CheckBox控件(1/2)

限制选中指定个数CheckBox控件&#xff08;1/2&#xff09; 实例需求&#xff1a;工作表中有8个CheckBox控件&#xff08;下文中简称为控件&#xff09;&#xff0c;现在需要实现限制用户最多只能勾选4个控件。 Dim OnDic As Object Sub CheckboxeEvent()Dim oCB As CheckBox…...

QT中的信号与槽的讲解

文章目录 信号及其特点槽及其特点代码演示标准信号与标准槽函数方式一方式二 自定义信号和槽connect()函数信号和槽函数存在函数重载的情况下Qt的信号槽机制注意事项 信号及其特点 信号&#xff1a;是一种特殊的函数&#xff0c;又称信号函数&#xff0c;俗称信号&#xff0c;…...

RNN文本分类任务实战

递归神经网络 &#xff08;RNN&#xff09;&#xff1a; 定义&#xff1a;RNN 是一类专为顺序数据处理而设计的人工神经网络。 顺序处理&#xff1a;RNN 保持一个隐藏状态&#xff0c;该状态捕获有关序列中先前输入的信息&#xff0c;使其适用于涉及顺序依赖关系的任务。词嵌入…...

樟木头的建网站公司/网域名查询地址

内容简介 树莓派单板机(Raspberry Pi Single Computer)是一种极了不起的产品&#xff0c;用户可以以非常低的成本获得一个Linux环境并带GPIO硬件扩展的迷你计算机系统。新一代树莓派4B还提供了良好的工业物联网和AIoT支持。树莓派单板机拥有完整的生态链&#xff0c;软硬件资源…...

wordpress修改头部显示/青岛做网站推广

为什么80%的码农都做不了架构师&#xff1f;>>> MongoDB 1. 概念 SQL 与 NoSQL(MongoDB)的对比 关系型数据库 MongoDB 数据库 数据库 表 Table 集合 Collection 行 Row/Tuple 文档 Document 列 Column 字段 Field 表 Join 内嵌文档 Embedded Documen…...

校园二手交易网站值得做吗/专业培训

贵州大学计算机科学与技术学院计算机科学与技术系上机实验报告课程名称&#xff1a;Linux实验班级&#xff1a;实验日期&#xff1a;姓名&#xff1a;学号&#xff1a;指导教师&#xff1a;实验序号&#xff1a;一实验成绩&#xff1a;一、实验名称Shell编程方法二、实验目的及…...

盐城网站建设培训/郑州建网站的公司

PHP框架CI CodeIgniter 的log_message開啟日志記錄方法第一步&#xff1a;index.php文件&#xff0c;修改環境為開發環境define(‘ENVIRONMENT’, ‘development’);第二步&#xff1a;application/config/config.php文件修改$config[‘log_threshold’] 4; //0表示關閉&#…...

网站建设技术人员招聘/花关键词排名系统

一&#xff1a;连接MySQL数据库 首先导入模块&#xff1a;pymysql--> pip install pymysql 数据库连接步骤&#xff1a; 1.导包import pymysql2.打开数据库连接db pymysql.connect(localhost,用户名,密码,数据库名称)3.使用cursor()方法创建一个游标cursor db.cursor()4.使…...

上海软件系统开发公司/跨境电商seo什么意思

本文为德国卡尔斯鲁厄应用技术大学&#xff08;作者&#xff1a;Marcel Kurovski&#xff09;的硕士论文&#xff0c;共124页。 推荐系统是一种过滤引擎&#xff0c;它汇集各种意见&#xff0c;以个性化建议支持决策过程。它们被广泛使用并影响着几乎每个人在不同领域的日常生…...