Linux安全、域名解析

1、画出TLS链路的通信图

TLS链路图

TLS:Transport Layer Security 安全传输层协议,用于在两个通信应用程序之间提供保密性和数据完整性

  • TLS会话主要三步:
    • 1、客户端向服务器端索要并验证证书
    • 2、双方协商生产“会话密钥”
    • 3、双方采用“会话密钥”进行加密通信
  • 又分为如下阶段:
    • 第一阶段:ClientHello
      告知服务端当前客户端支持的协议版本,比如tls 1.2
      客户端并生产一个随机数,发送给服务端,该随机数稍后用户生产“会话密钥”
      告知服务端当前客户端支持的支持的加密算法,比如AES,3DES,RSA
      告知服务端当前客户端支持的支持的支持的压缩算法

    • 第二阶段:ServerHello
      确认使用的加密通信协议版本,并告诉客户端,比如tls 1.2
      服务端也生产一个随机数,发送给客户端,该随机数也是稍后用于生产“会话密钥”
      确认使用的加密方法,并告知客户端
      发送服务段证书,给到客户端
      请求客户端提供证书(该步可以省略)

    • 第三阶段:
      客户端验证服务端证书,在确认无误后取出其公钥(发证机构,证书完整性,证书持有者,证书有效期,吊销列表)
      发送一下信息给服务端:
      一个随机数
      编码变更通知
      客户端握手结束通知
      发送客户端证书(该步依赖服务端是否请求证书)

    • 第四阶段:
      服务端收到客户端发来的第三个随机数后,计算生成本次会话所用到的“会话密钥”
      客户端根据这三个随机数,计算生成本次会话所用到的“会话密钥”
      向客户端发送如下信息:
      编码变更通知,表示随后的信息都将用双方商定的加密方法和密钥发送
      服务端握手结束通知

2、如何让浏览器识别自签的证书

  • 1、搭建私有CA服务器
1、生成私钥
[root@node01 ~]# cd /etc/pki/CA/private/
[root@node01 private]#  (umask 077;openssl genrsa -out cakey.pem 4096) 
[root@node01 private]# ls
cakey.pem

2、生成自签证书   
-new:生成新证书签署请求
-x509:生成自签格式证书,专用于创建私有CA时
-key:生成请求时用到的私有文件路径
-out:生成的请求文件路径,如果自签操作将直接生成签署过的证书
-days:证书的有效时长,单位是day这里是10年
[root@node01 ~]# openssl  req -new -x509 -key /etc/pki/CA/private/cakey.pem  -out /etc/pki/CA/cacert.pem -days  3650
[root@node01 ~]# ls -l /etc/pki/CA/cacert.pem 
-rw-r--r--. 1 root root 2130 2月  14 10:13 /etc/pki/CA/cacert.pem

3、为CA提供所需要的目录及文件
[root@node01 ~]# mkdir -pv /etc/pki/CA/{certs.crl.newcerts}
[root@node01 ~]# touch /etc/pki/CA/{serial,index.txt}
[root@node01 ~]# echo 01>/etc/pki/CA/serial
  • httpd服务器向CA请求签署证书
1、用到证书的主机生成证书签署请求
[root@node01 ~]# mkdir -pv   /etc/httpd/ssl
[root@node01 ~]# cd  /etc/httpd/ssl   
[root@node01 ssl]# (umask 077;openssl genrsa -out testweb.key 2048)
2、生成证书签署请求
[root@node01 ssl]# openssl req -new -key testweb.key -out testweb.crs -days 365
#将请求通过可靠方式发送给CA主机,我这里是同一台主机,不同主机可以用scp
3、在CA主机上签署证书
[root@node01 ~]# openssl ca -in /etc/httpd/ssl/testweb.crs -out /etc/pki/CA/certs/testweb.crt -days 365
4、查看证书中的信息:
[root@node01~]# openssl x509 -in testweb.crt  -noout -serial -subject
serial=02
subject= /C=CN/ST=shenzhen/O=peaoguo.com/OU=ops/CN=www.xiaofeng.com/emailAddress=mail.xiaofeng.com
[root@nodeo1 ~]#
  • 3 浏览器导入CA服务器自签证书到受信任的根证书颁发机构

    • 导入证书


      安装导入CA服务器自签证书
    • 查看证书


      image.png
  • 4 配置httpd服务器支持https并使用私有服务器颁发的证书

1、配置httpd服务修改ssl.conf中认证配置
[root@node01 ~]# vim /etc/httpd/conf.d/ssl.conf
SSLCertificateFile /etc/httpd/ssl/testweb.crt
SSLCertificateKeyFile /etc/httpd/ssl/testweb.key
[root@node01 ~]# systemctl restart httpd
  • 5 window客户端配置
    编辑window客户端hosts文件通过域名访问 www.xiaofeng.com
    注意:域名一定是CA服务器签证时的域名,可以在CA服务器查看证书
[root@node01~]# openssl x509 -in testweb.crt  -noout -serial -subject
serial=02
subject= /C=CN/ST=shenzhen/O=peaoguo.com/OU=ops/CN=www.xiaofeng.com/emailAddress=mail.xiaofeng.com
[root@nodeo1 ~]#
  • 6 window客户端浏览器访问https://www.xiaofeng.com
    • 查看是否获认证


      www.xiaofeng.com已获得认证
    • 查看证书信息及证书路径


      网站证书信息

      证书路径

3、搭建DNS服务器

  • 简介
    DNS(Domain Name Server,域名服务器)是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器。DNS中保存了一张域名(domain name)和与之相对应的IP地址 (IP address)的表,以解析消息的域名。 域名是Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。域名是由一串用点分隔的名字组成的,通常包含组织名,而且始终包括两到三个字母的后缀,以指明组织的类型或该域所在的国家或地区。

  • 类型

    • 主域名服务器:
      负责维护一个区域的所有域名信息,是特定的所有信息的权威信息源,数据可以修改。
    • 辅助域名服务器:
      当主域名服务器出现故障、关闭或负载过重时,辅助域名服务器作为主域名服务器的备份提供域名解析服务。辅助域名服务器中的区域文件中的数据是从另外的一台主域名服务器中复制过来的,是不可以修改的。
    • 缓存域名服务器
      从某个远程服务器取得每次域名服务器的查询回答,一旦取得一个答案就将它放在高速缓存中,以后查询相同的信息就用高速缓存中的数据回答,缓存域名服务器不是权威的域名服务器,因为它提供的信息都是间接信息。
    • 转发域名服务器
      负责所有非本地域名的本地查询。转发域名服务器接到查询请求后,在其缓存中查找,如找不到就将请求依次转发到指定的域名服务器,直到查找到结果为止,否则返回无法映射的结果。
  • DNS解析过程

    DNS解析过程

    我们已浏览输入访问www.163.com为例

    • 1、查询本地hosts及本地缓存,如没有得到IP地址则进行第二步
    • 2、查询本地配置的DNS服务器,如果没有得到IP地址则访问根域名服务器(默认可配置)
    • 3、根域名服务器告诉本地DNS服务器关于.com顶级域名的服务器地址
    • 4、本地DNS服务器得到.com顶级域名的服务器地址,并访问
    • 5、.com域名服务器告诉本地DNS你去问163.com的主区域服务器,我告诉你163.com区域服务器地址
    • 6、本地DNS服务器再去访问163.com主区域服务器
    • 7、本地DNS服务器经查询163.com主区域服务器,得知www.163.com的IP地址是1.1.1.1
    • 8、本地DNS服务器缓存该对应关系,并告知本地主机。
  • 搭建主从DNS域名服务器

    • 环境 centos 7
      10.192.2.222 主
      10.192.2.221 从
    • 主从服务器均安装、启动named服务
    [root@node01 ~]# yum -y install bind
    [root@node01 ~]# systemctl start named
    
    • 主服务器配置解析一个正向区域,以peaoguo.com域为例
    1、修改监听IP为本机
    [root@node01 ~]# vim /etc/named.conf
    listen-on port 53 { 127.0.0.1; 10.192.2.222; };
    2、定义区域
    在主机配置文件中或主机配置文件辅助配置文件中实现
    [root@node01 ~]# vim /etc/named.rfc1912.zones
    zone "peaoguo.com" IN {
      type master;
      file "peaoguo.com.zone";
      allow-update { 10.192.2.221; };
      allow-transfer { 10.192.2.221; };
    };
    3、建立区域数据文件
    在 /var/named目录下建立区域数据文件,文件为:/var/named/peaoguo.com.zone
    [root@node01 named]# vim peaoguo.com.zone
    $TTL 3600
    $ORIGIN peaoguo.com.
    @   IN  SOA     ns1.peaoguo.com.    dnsadmin.peaoguo.com. (
          2019012907
          1H
          10M
          3D
          1D )
        IN  NS  ns1
        IN  NS  ns2
    ops IN  NS  ns3.ops
        IN  MX  10  mx1
        IN  MX  20  mx2
    ns1 IN  A   10.192.2.222
    ns2 IN  A   10.192.2.221
    mx1 IN  A   10.192.2.166
    mx2 IN  A   10.192.2.161
    www IN  A   10.192.2.222
    web IN  CNAME   www
    bbs IN  A   10.192.2.162
    bbs IN  A   10.192.2.163
    pop3    IN  A   10.192.2.164
    ns3.ops IN  A   10.192.1.163
    4、权限及属组修改
    [root@node01 named]# chgrp named /var/named/peaoguo.com.zone 
    [root@node01 named]# chmod o= /var/named/peaoguo.com.zone 
    5、检查语法错误
    [root@node01 named]# named-checkzone peaoguo.com peaoguo.com.zone 
    zone peaoguo.com/IN: loaded serial 2019012907
    OK
    [root@node01 named]# named-checkconf 
    6、重新reload服务
    [root@node01 named]# rndc reload
    server reload successful
    7、解析测试
    [root@node01 named]# dig -t A www.peaoguo.com @10.192.2.222
    ; <<>> DiG 9.9.4-RedHat-9.9.4-73.el7_6 <<>> -t A www.peaoguo.com @10.192.2.222
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42320
    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
    
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 4096
    ;; QUESTION SECTION:
    ;www.peaoguo.com.     IN  A
    
    ;; ANSWER SECTION:
    www.peaoguo.com.  3600    IN  A   10.192.2.222
    
    ;; AUTHORITY SECTION:
    peaoguo.com.      3600    IN  NS  ns1.peaoguo.com.
    peaoguo.com.      3600    IN  NS  ns2.peaoguo.com.
    
    ;; ADDITIONAL SECTION:
    ns1.peaoguo.com.  3600    IN  A   10.192.2.222
    ns2.peaoguo.com.  3600    IN  A   10.192.2.221
    
    ;; Query time: 0 msec
    ;; SERVER: 10.192.2.222#53(10.192.2.222)
    ;; WHEN: 四 2月 14 17:14:24 CST 2019
    ;; MSG SIZE  rcvd: 128
    
    [root@node01 named]# 
    
    
    • 从服务配置
    1、定义一个从区域
    [root@node02 ~]# vim /etc/named.rfc1912.zones
    zone "peaoguo.com" IN {
          type slave;
          file "slaves/peaoguo.com.zone";
          masters { 10.192.2.222; };
          allow-transfer { none; };
          allow-update { none; };
    };
    2、语法检查并reload
    [root@node02 ~]# named-checkconf 
    [root@node02 ~]# systemctl reload named
    3、主服务器添加mail.peaoguo.com的A记录,并重启named服务
    mail IN  A   10.192.2.223
    [root@node01 ~]# systemctl restart named 
    4、从服务器查看是否有记录同步
    [root@node02 slaves]# ls -l /var/named/slaves/peaoguo.com.zone 
    -rw-r--r-- 1 named named 783 2月  14 17:26 /var/named/slaves/peaoguo.com.zone
    [root@node02 slaves]# 
    5、从服务器测试A记录解析
    [root@node02 slaves]# dig -t A mail.peaoguo.com @10.192.2.221
    
    ; <<>> DiG 9.9.4-RedHat-9.9.4-73.el7_6 <<>> -t A mail.peaoguo.com @10.192.2.221
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 65158
    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
    
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 4096
    ;; QUESTION SECTION:
    ;mail.peaoguo.com.        IN  A
    
    ;; ANSWER SECTION:
    mail.peaoguo.com. 3600    IN  A   10.192.2.223
    
    ;; AUTHORITY SECTION:
    peaoguo.com.      3600    IN  NS  ns2.peaoguo.com.
    peaoguo.com.      3600    IN  NS  ns1.peaoguo.com.
    
    ;; ADDITIONAL SECTION:
    ns1.peaoguo.com.  3600    IN  A   10.192.2.222
    ns2.peaoguo.com.  3600    IN  A   10.192.2.221
    
    ;; Query time: 1 msec
    ;; SERVER: 10.192.2.221#53(10.192.2.221)
    ;; WHEN: 四 2月 14 17:32:48 CST 2019
    ;; MSG SIZE  rcvd: 129
    
    [root@node02 slaves]# 
    
    

    主从配置注意:
    1、确保区域数据文件中为每个从服务器配置NS记录,并其在正向区域文件需要每个从服务器的NS记录的主机名配置一个A记录,并且A后面的地址为真正的从服务器的IP地址。
    2、时间要同步

4、熟悉DNSPOD的解析类型

DNSPod是国内提供智能DNS产品的网站,致力于为各类网站提供高质量的电信、网通、教育网双线或者三线智能DNS免费解析。目前DNSPod已经是国内最大的免费DNS解析产品提供商

  • A记录
    如果需要将域名指向一个ip地址,就需要添加A记录
  • CNAME记录
    如果需要将域名指向另一个域名,再由另一个域名提供ip地址,就需要添加CNAME记录
    最常用到CNAME的情况包括:做CDN,做企业邮局
  • MX记录
    如果需要设置邮箱,让邮箱能收到邮件,就需要添加MX记录
  • TXT记录
    如果希望对域名进行标识和说明,可以使用TXT记录,绝大多数的TXT记录是用来做SPF记录(反垃圾邮件)
  • 隐/显性URL记录
    将一个域名指向另外一个已经存在的站点,就需要添加URL记录
  • AAAA记录
    当您希望访问者通过IPv6地址访问您的域名时,可以使用AAAA记录
  • NS记录
    如果需要把子域名交给其他DNS服务商解析,就需要添加NS记录
  • SRV记录
    SRV记录用来标识某台服务器使用了某个服务,常见于微软系统的目录管理
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,558评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,002评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,036评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,024评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,144评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,255评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,295评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,068评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,478评论 1 305
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,789评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,965评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,649评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,267评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,982评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,223评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,800评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,847评论 2 351

推荐阅读更多精彩内容

  • 1. 概述 在网络环境中一般用户只需要在浏览器中输入url如www.sunny.com就可以到对应服务器获取相应的...
    ghbsunny阅读 2,880评论 0 7
  • 一、实现从根,com,rj.com 模拟互联网的DNS架构 DNS(Domain Name System,域名系统...
    ssjinyao阅读 1,422评论 0 7
  • DNS DNS:Domain Name Service 应用层协议(C/S,53/udp, 53/tcp) 域名 ...
    毛利卷卷发阅读 6,810评论 0 6
  • 目录(持续更新) 基础-第0章-安装基础-第1章-基本操作基础-第2章-磁盘及文件系统管理基础-第3章-获得帮助基...
    sky92archangel阅读 848评论 0 1
  • 一、BIND是什么 BIND是互联网应用最为广泛的DNS软件。 二、BIND的安装与使用 以下内容转自 http:...
    0_0啊阅读 3,085评论 0 0