DNS和openssl

本文主要讲述ssl以及使用openssl创建CA,DNS服务器的搭建

 一.数据在互联网上传输存在各种各样的分险,数据在传输的过程中可能会被篡改,被截取等,于是就不得不解决这些安全问题,为了解决这些问题,ssl协议也就诞生了,ssl(Secure Socket Layer),首先,它是一中协议,专用于对数据进行加密与解密,是一个应用层协议,该协议提供了两个基本服务:鉴别与保密。而Linux中的openssl则是该协议的开源实现,在套件中包括许多加密与解密的算法,使得用户能够利用该套件来实现一些安全机制,其中加密与解密算法就是其核心。

1.常见的加密与解密算法

(1)对称加密:加密与解密使用同一个密钥,常见的算法有:

DES,3DES,AES,Blowfish,Twofish,RC6,CAST5

对称加密的特点:

加密与解密使用同一个密钥,一旦密钥被窃取,数据的安全性就无从得到保障
把数据分块,然后逐个进行加密

对称加密的缺点:

每一份数据的传输都需要一个密钥,会导致密钥过多,密钥的分发就会变得十分的困难

(2)非对称加密:加密与解密使用不同的密钥,使用者需要实现生成两密钥,一个是公开的,叫做公钥,另一个是不公开的,叫做私钥,使用私钥加密的数据中能用公钥解密,密钥成对出现使用。常见的算法有:

RSA ,DSA

非对称加密的特点:

加密与解密使用不同的密钥

非对称加密的缺点:

密钥过长,加密与解密的过程消耗资源过大

(3)单向散列加密:只能用于加密,用于提取数据的特征码,常见的算法有:

MD5,SHA1,SHA256,SHA384,SHA512,CRC32

单向散列加密的特点:

定长输出:不管加密多大的数据,其特征码的长度是固定的位数
不可逆:得到特征码无法还原其原始数据
雪崩效应:数据的微小改变,也会对加密结果带来巨大的影响

单向散列加密的缺点:

只能用于加密。无法用于解密

2.密钥交换

从加密与解密的方式中可以看出,要完成加密与解密的过程,依赖于密钥交换,而密钥交换的方式有两种

(1)公钥加密:将公钥加密后发送给通信的另一方,但是如果一旦被别人截获了,那后续的整个通信过程全都会瘫痪,因此这种方式不常用。

(2)DH:通信的双方共有一些参数,共同协定一个加密算法,通过双方所拥有的参数的交换,再加上协商的算法就能得到密钥。

3.通过以上几种加密方式,为了实现通信双方的身份认证,信息完整性的保证,就需要将几种加密方式结合起来,用非对称加密方式来实现身份认证,使用单向散列加密来实现数据完整性的检验,于是一次完整的通信过程为:

发送方:

(1)先提取数据的特征码,获取源数据的hash值
(2)使用私钥加密特征码
(3)生成临时密钥,并使用此临时密钥加密数据
(4)使用对方的公钥加密临时密钥并附在数据的后方

接受方:

(1)使用私钥解密,获得密钥
(2)使用临时密钥获得数据的特征码
(3)使用发送方的公钥解密特征码
(4使用单向散列加密数据与解密来的数据做比较

通信过程.png

5.数字证书

从上述的过程中可以看出,通信过程中依赖于对方的公钥,因此需要一个保证公钥安全的方法,而实现这种方法的策略就是CA,CA就是安全证书的颁发机构,所以CA的实现过程为:

在证书签署端:

(1)创建私钥文件:(umask 077;openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)

(2)创建自签证书

    openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem 

(3)创建辅助文件:touch /etc/pki/CA/index.txt ; echo 01 > /etc/pki/CA/serial

在需要申请证书端:

(1)创建私钥文件:(umask 077;openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)

(2)创建证书签署请求: 

openssl req -new -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem

最后将签署请求发送到签署端,并由签署端来签署证书:

openssl ca in /path/to/cacertfile -out /path/to/crtfile -days 360

注意:创建自签证书和创建证书签署请求中的信息要一致


二.DNS

DNS:Domain Name System,是一个应用层协议,其作用是实现从FQDN(Full Qualified Domain Name)到IP地址的转换,DNS系统也是一个分布式的数据库系统。

1.DNS是从上到小分层的组织形式,从根开始,然后是顶级域,二级域等等,组织方式如下图:

dns.png

2.一次查询请求的过程

(1)客户端发出请求
(2)检查本地hosts文件中是否有对应的主机名和ip的记录,若有则根据此文件中的记录的ip进行通信
(3)若没有,则向DNS服务器发出请求,服务器先查询本地缓存
(4)若缓存没命中,则DNS服务器向互联网上的服务器发出查询

3.DNS的查询方式:

递归查询:只发出一次请求,当收到应答时就为最终答案
迭代查询:需要发出多次请求,每发出一次请求就能收到一个中间答案,最终的答案依赖于次中间答案

4.DNS服务器类型:

负责解析域:主DNS服务器(负责解析收到的查询请求)和从DNS服务器
不负责解析域:缓存名称服务器

5.查询答案:

肯定答案:DNS服务器中有查询请求中的条目
否定答案:DNS服务器中没有查询请求对应的条目
权威答案:由负责解析此域的主DNS直接返回的答案
非权威答案:有缓存服务器返回的答案

6.主-辅DNS服务器:

主DNS服务器:维护所负责解析的域数据库的那台服务器;读写操作均可进行;
从DNS服务器:从主DNS服务器那里或其它的从DNS服务器那里“复制”一份解析库;但只能进行读操作;

从DNS服务器从主DNS复制数据的实施:

序列号:serial,当此值发生改变时就说明主DNS服务器的内容发生改变
刷新时间间隔:refresh,从服务器多长时间向主DNS服务器同步数据
重试时间间隔:retry,当无法从主服务器同步数据后的重试时间
过期时长:expire,当从服务器一直无法向主服务器同步数据后,放弃重试的时间

7.区域传送:

全量传送:axfr, 传送整个数据库
增量传送:ixfr, 仅传送改变的数据

8.区域数据库:记录了次服务器负责解析的域的信息

资源记录类型有:

SOA(Start Of Authority):起始授权记录,一个区域只能有一条该记录
NS(Name Service):域名服务记录,一个区域解析库可以有多个NS记录;其中一个为主的;
A(Address):记录了FQDN到IP地址的对应条目
AAAA:地址记录, FQDN到IPv6对应的条目;
CNAME(Canonical Name):别名记录;
PTR(Pointer):实现IP到FQDN的记录
MX(Mail eXchanger):邮件交换器,用0-99表示优先级,数字越小优先级越高;

9.在CentOS中搭建DNS服务器

(1)安装bind及其工具包

yum -y install bind bind-utils bind-libs 

(2)配置一个正向域为test.com

a.编辑主配置文件:

配置文件.png

b.在/var/named/下创建解析库文件

正向解析库文件为:vim /var/named/magedu.com

final-z.png

c.在/var/named下面创建反向解析库文件

final-f.png

d.检查配置文件的语法,并重载服,即可完成正向和反向区域的解析。测试结果为

result.png


原创文章,作者:zhangbao,如若转载,请注明出处:http://www.178linux.com/62057

(0)
zhangbaozhangbao
上一篇 2016-12-11 19:01
下一篇 2016-12-11 19:28

相关推荐

  • 马哥教育网络班21期+第11周课程练习

    1、详细描述一次加密通讯的过程,结合图示最佳。 单向加密:只能加密,不能解密,提取数据指纹(特征码),来保证数据的完整性,如上图的第二步,单向加密的协议有MD5,SHA等 非对称加密:公钥和私钥成对出现,私钥必须本机器保存,用公钥加密的数据,只能使用与之配对儿的私钥解密;反之亦然,数字签名是私钥加密特征码,如上图的第三步;实现对称秘钥交换,如上图第五步 对称…

    Linux干货 2016-08-15
  • 进程管理(二)之计划任务

    进程管理(二)之计划任务   一、计划任务: 1、未来的某时间点执行一次任务: (1)at:跟一个时间点,到点了自动运行指定的任务 (2)batch:系统自行选择空闲时间去执行此处指定的任务 2、周期性运行某任务:cron 二、at命令: 1、at命令:at [option] TIME 注:当输入完成后,使用Ctrl+d结束,不能使用Ctrl+c …

    Linux干货 2016-09-10
  • 详解用户,组,权限管理

    详解用户,组,权限管理 M21-陆东贵 测试环境:CentOS 7.2 内容介绍: 我们要使用操作系统进行工作,就需要人机交互操作,这时候计算机就需要创建用户,通过用户来实现操作,而且随着用户的增加需要给用户分组,这时候就需要对文件进行权限管理。 需要使用的工具:       用户相关工具:useradd; …

    Linux干货 2016-10-25
  • linux命令格式及基础命令

    linux命令格式及基础命令介绍 命令格式 command [options] [arguments] * command:命令 * options: –单词 或 -单字 * argument:参数(档案名称或其他) 基础命令介绍 ifconfig 用于显示或设置网络设备 语法 ifconfig [网络设备][down up -allmulti -arp …

    Linux干货 2017-12-03
  • 第七周练习

    1、创建一个10G分区,并格式为ext4文件系统;   (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;   ~]# mke2fs -t ext4 -b 2048 -m 2 -L…

    Linux干货 2016-12-10
  • 一种强大的新型BIOS Bootkit病毒曝光

    近日,安全研究人员开发出一种新的BIOS bootkit,它可以窃取敏感数据,以及流行操作系统使用的PGP密钥。包括华硕、惠普、宏基、技嘉以及微星等在内的各大供应商的主板都受到该病毒影响。 BIOS bootkits是真实存在的。斯诺登在披露NSA ANT部门使用的监视工具集时,曾提到过BIOS bootkits。这些恶意软件能够入侵受害机器的BIOS,以此…

    2015-03-23

评论列表(1条)

  • 马哥教育
    马哥教育 2016-12-16 14:47

    清晰易懂~阅读起来很顺。能再深入一下会更好。
    继续加油~