第九周周作业(7.2–7.8)

1、简述常见加密算法及常见加密算法原理,最好使用图例解说
2、搭建apache或者nginx并使用自签证书实现https访问,自签名证书的域名自拟
3、简述DNS服务器原理,并搭建主-辅服务器
4、搭建并实现智能DNS

1、简述常见加密算法及常见加密算法原理,最好使用图例解说

对称加密

  • 加密和解密使用同一个密钥;
  • DES:Data Encryption Standard
  • 3DES:Triple DES
  • AES:Advanced Encryption Standard(128bits,192bits,256bits,384bits)
  • Blowfish
  • Twofish
  • IDEA
  • RC6
  • CAST5
  • 特性:
  • 加密,解密使用同一个密钥
  • 将原始数据分隔成为固定大小的块,组个加密;
  • 缺陷:
  • 密钥过多;
  • 密钥分发困难;
  • 工具:openssl enc,gpg支持的算法:3des,aes,blowfish,towfishenc命令:

    加密:~]#openssl enc -e -des3 -a -salt -in fstab -out fstab.ciphertext

    解密:~]#openssl enc -d -des3 -a -salt -out fstab -in fstab.ciphertext

公钥加密

  • 公钥加密:密钥分为公钥与私钥
  • 公钥:从私钥中提取产生;可公开给所有人;pubkey
  • 私钥:通过工具创建,使用者自己留存,必须保证其私密性;secret key
  • 特点:用公钥加密的数据,只能使用与之配对的私钥解密;反之亦然;
  • 用途:
  • 数字签名:主要在于让接收方确认发送方的身份;
  • 密钥交换:发送方用对方公钥加密一个对称密钥,并发给对方;
  • 数据加密:
  • 公钥加密常用算法:RSA,DSA,ELGamal
  • DSS:digital signature standard
  • DSA:digital signature algorithm
  • 生成密钥:(umask 077; openssl genrsa -out /PATH/TO/PRIVATE_KEY_FILE NUM)提出公钥:

    opensl rsa -in /PATH/TO/PRIVATE_KEY_FILE -pubout

单向加密

  • 即提出数据指纹:只能加密,不能解密;
  •   特征:定长输出,雪崩效应;
  •   功能:完整性;
  •   算法:
  •    md5:Message Digest5,128bits
  •    sha1:Secure Hash Algorithm1,160bits sha224,sha256,sha384,sha512
  • 单向加密:工具:openssl dgst,md5sum,sha1sum,sha224sum,…dgst命令:

    openssl dgst -md5 /PATH/TO/SOMEFILE

认证协议

2、搭建apache或者nginx并使用自签证书实现https访问,自签名证书的域名自拟

  • 必须的目录和文件
  • [root@yinwei CA]# pwd
    /etc/pki/CA
    [root@yinwei CA]# ls
    cacert.pem certs crl index.txt newcerts private serial
  • 生成私钥
  • [root@yinwei private]# (umask 077; openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096)
    Generating RSA private key, 4096 bit long modulus
    ……………………….++
    ….++
    e is 65537 (0x10001)
    [root@yinwei private]# ls
    cakey.pem
  • 生成自签证书
  • [root@yinwei private]# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3655
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter ‘.’, the field will be left blank.
    —–
    Country Name (2 letter code) [XX]:CN
    State or Province Name (full name) []:HN
    Locality Name (eg, city) [Default City]:ZZ
    Organization Name (eg, company) [Default Company Ltd]:sr
    Organizational Unit Name (eg, section) []:Ops
    Common Name (eg, your name or your server’s hostname) []:ca.sr.com
    Email Address []:caadmin@sr.com
    [root@yinwei private]#
  • 证书生成
  • [root@yinwei CA]# ls
    cacert.pem certs crl index.txt newcerts private serial
  • 安装httpd
  • yum -y install httpd
    mkdir /etc/httpd/ssl ##创建ssl目录
  • [root@yinwei ssl]# (umask 077; openssl genrsa -out ./httpd.key 2048)##为httpd生成私钥
    Generating RSA private key, 2048 bit long modulus
    …..+++
    ……………………………………………………………………………………………………………………+++
    e is 65537 (0x10001)
  • 生成证书签署请求
    • [root@yinwei ssl]# openssl req -new -key ./httpd.key -out httpd.csr -days 365
      You are about to be asked to enter information that will be incorporated
      into your certificate request.
      What you are about to enter is what is called a Distinguished Name or a DN.
      There are quite a few fields but you can leave some blank
      For some fields there will be a default value,
      If you enter ‘.’, the field will be left blank.
      —–
      Country Name (2 letter code) [XX]:CN
      State or Province Name (full name) []:HN
      Locality Name (eg, city) [Default City]:ZZ
      Organization Name (eg, company) [Default Company Ltd]:sr
      Organizational Unit Name (eg, section) []:Ops
      Common Name (eg, your name or your server’s hostname) []:srkg.com
      Email Address []:admin@srkg.com
  • 因为CA和httpd服务器同一台主机,直接签署证书
    • [root@yinwei ssl]# openssl ca -in /etc/httpd/ssl/httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 365
      Using configuration from /etc/pki/tls/openssl.cnf
      Check that the request matches the signature
      Signature ok
      Certificate Details:
      Serial Number: 1 (0x1)
      Validity
      Not Before: Jul 6 10:39:51 2018 GMT
      Not After : Jul 6 10:39:51 2019 GMT
      Subject:
      countryName = CN
      stateOrProvinceName = HN
      organizationName = sr
      organizationalUnitName = Ops
      commonName = test.srkg.com
      emailAddress = admin@test.srkg.com
      X509v3 extensions:
      X509v3 Basic Constraints:
      CA:FALSE
      Netscape Comment:
      OpenSSL Generated Certificate
      X509v3 Subject Key Identifier:
      2F:5B:B1:18:2C:DB:27:6D:B5:57:91:FA:ED:A5:AE:2E:62:8E:E8:6C
      X509v3 Authority Key Identifier:
      keyid:82:C8:17:96:11:6D:62:DA:CB:53:AB:7D:D3:DE:F6:C8:EB:39:50:F2Certificate is to be certified until Jul 6 10:39:51 2019 GMT (365 days)
      Sign the certificate? [y/n]:y
    • 1 out of 1 certificate requests certified, commit? [y/n]y
      Write out database with 1 new entries
      Data Base Updated
  • 把签订好的整数放到httpd/ssl目录
    • [root@yinwei ssl]# cp /etc/pki/CA/certs/httpd.crt ./
      [root@yinwei ssl]# ls
      httpd.crt httpd.csr httpd.key
    • OK 这就完成了SSL自签证书
  • 3、简述DNS服务器原理,并搭建主-辅服务器
    • 主~辅DNS服务器:
        主DNS服务器:维护所负责解析的域数据库的那台服务器;读写操作均可进行;
        从DNS服务器:从主DNS服务器哪里或从其他的从DNS服务器哪里复制一份解析库;但只能进行读操作;
         复制操作的实施方式:
          序列号:serial,也即是数据库的版本号;主服务器数据库内容发生变化时,其版本号递增;
          刷新时间间隔:refresh,从服务器每多久到主服务器检查序列号更新状况;
          重试时间间隔:retry,从服务器从主服务器请求同步解析库失效时,再次发起尝试请求的时间间隔;
          过期时长:expire,从服务器时钟联系不到主服务器,多久之后放弃从主服务器同步数据;停止提供服务;
          否定答案的缓存时长;
        主服务器通知从服务器随时更新数据;
        区域传送:
         全量传送:axfr,传送整个数据库;
         增量传送:lxfr,仅传送变量的数据;
       区域(zone)和域(domain)
        magedu.com域:
         FQDN–>IP 正向解析库;区域
         IP–>FQDN 反向解析库;区域
       区域数据库文件:
        资源记录:Resource Record,简称rr:
         记录有类型:A,AAAA,PTR,SOA,NS,CNAME,MX
        SOA:Start Of Authority,起始授权记录;一个区域解析库有且只能由一个SOA记录,而且必需放在第一条;
        NS:Name Service,域名服务记录;一个区域解析库可以由多个NS记录;其中一个为主的;
        A:Address,地址记录,FQDN–>IPV4;
        AAAA:地址记录,FQDN–>IPV6;
        CNAME:Canonical Name,别名记录;
        PTR:Pointer,IP–>FQDN
        MX:Mail exchanger,邮件交换器
         优先级:0–99,数字越小优先级越高;
         资源记录的定义格式;
          语法: Name [TTL] IN RR_TYPE value
          SQA: name:当前区域的名字;例如magedu.com.”或者2.3.4.in-addr.arpa.”;
            value:有多部分组成
             1.当前区域的区域名称(也可以使用主DNS服务器名称);
             2.当前区域管理员的邮箱地址;但地址中不能使用@符号,一种使用.代替;
             3.(主从服务协调属性的定义以及否定答案的TTL)
            例如:
             mageedu.com 86400 IN SOA magedu.com admin.magedu.com. (
                   2017010801 ;serial
                   2H ;refresh
                   10M ;retry
                   1W ;expire
                   1D ;negative answer ttl
                )
          NS:
           name:当前区域的区域名称
           value:当前区域的某DNS服务器的名字,例如ns.magedu.com;
            注意:一个区域可以由多个ns记录;
            例如:
             magedu.com. 86400 IN NS ns1.magedu.com.
             magedu.com. 86400 IN NS ns2.magedu.com.
          MX:
           name:当前区域的区域名称
           value:当前区域某邮件交换器的主机名;
            注意:MX记录可以由多个;但每个记录的value之前应该由一个数字标识其优先级;
             例如:
              magedu.com. IN MX 10 mx1.magedu.com
              magedu.com. IN MX 20 mx2.magedu.com.
          A:
           name:某FQDN,例如www.magedu.com.
           value:某IPV4地址
           例如:
            www.magedu.com. IN A 1.1.1.1
            mail.magedu.com. IN A 1.1.1.2
            bbs.magedu.com. IN A 1.1.1.3
          AAAA:
           name:FQDN
           value:IPV6
          PTR:
           name:IP地址,有特定格式,IP反过来写,而且加特定后缀;例如1,2,3,4的记录应该写为4.3.2.1.in-addr.arpa.;
           value:FQDN
           例如:
            4.3.2.1.in-addr.arpa. IN PTR www.magedu.com
          CNAME:
           name:FQDN格式的别名;
           value:FQDN格式的正式名字;
           例如:
            web.magedu.com. IN CNAME www.magedu.com
    • DNS and BIND

      sockets:

      c/s:

      client:发起应用请求的程序;

      server:响应请求(提供服务)的程序;

      LISTEN:Socket

      传输层协议:TCP,UPD,SCTP

      tcp:transmission control protocol

      面向连接的协议:双方通信之前需要事先建立虚连接;

      udp:user datagram protocol

      无连接的协议:双方无须通信之前建立虚连接;

      DNS:domain name service,应用层协议

      c/s

      53/udp,53/tcp

      www.magedu.com:FQDN(full qualified domain name)

      tld:Top Level Domain

      组织域:com,net,org,gov,edu,mail

      国家域:iq,tw,hk,jp,cn

      DNS查询类型:

      递归查询:

      迭代查询:

      DNs名称解析方式:

      名称–>IP:正向解析

      IP–>名称:反向解析

      注意:二者的名称空间,非为同一个空间,即非为同一棵树;因此,也不是同一个解析库;

      一次完整的查询请求经过的路程

      client–>hosts文件–>

      DNS and Bind(2)

      BIND的安装配置:

      BIND:Berkeley internet name domain,ISC.org

      dns:协议

      bind:dns协议的一种实现

      named:bind程序的运行的进程名

      程序包:

      bind-libs:被bind和bind-utils包中的程序共同用到的库文件;

      bind-utils:bind客户端程序集,例如dig,host,nslookup等;

      bind:提供的dns server程序,以及几个常用的测试程序;

      bind-chroot:选装,让named运行于jail模式下;

      bind:

      主配置文件:/etc/named.conf

      或包含进来其他文件;

      /etc/named.iscdlv.key

      /etc/named.rfc1912.zones

      /etc/named.root.key

      解析库文件:

      /var/named/目录下;

      一般名字为:ZONE_NAME.zone

      注意:

      1.一台DNS服务器可同时为多个区域提供解析;

      2.必须要有根区域解析库文件:named.ca;

      3.还应该有两个区域解析库文件:localhost和127.0.0.1的正反向解析库;

      正向:named.localhost

      反向:named.loopback

      rndc:remote name domain contoller

      953/tcp,但默认监听于127.0.0.1地址,因此仅允许本地使用;

      bind程序安装完成之后,默认即可做缓存名称服务器使用;如果没有专门负责解析的区域,直接即可启动服务;

      service named start

      systemctl start named.service

      主配置文件格式:

      全局配置段:

      options {….}

      日志配置段:

      logging {….}

      区域配置段:

      zone {….}

      那些由本机负责解析的区域,或转发的区域;

      缓存名称服务器的配置:

      监听能与外部主机通信的地址;

      listen-on port 53;

      listen-on port 53 {172.16.100.67;};

      学习时,建议关闭dnssec

      dnssec-enable no;

      dnssec-validation no;

      dnssec-lookaside no;

      检查配置文件语法错误;

      named-checkconf [/etc/named.conf]

      测试工具:

      dig,host,nslookup等

      dig命令:

      dig [-t RR_TYPE] name [@SERVER] [query options]

      用于测试dns系统,因此其不会查询hosts文件;

      查询选项:

      +[no]trace:跟踪解析过程;

      +[no]recurse:进行递归解析;

      注意:反向解析测试

      dig -x IP

      模拟完全区域传送:

      dig -t axfr NOMAIN [@server]

      host命令:

      host [-t RR_TYPE] name SERVER_IP

      nslookup命令:

      nslookup [-options] [name] [server]

      交互式模式:

      nslookup>

      server IP:以指定的IP为DNS服务器进行查询;

      set q=RR_TYPE:要查询的资源记录类型;

      name:要查询的名称;

      rndc命令:named服务控制命令

      rndc status

      rndc flush

      配置解析一个正向区域:

      1.定义区域

      在主配置文件中或主配置文件辅助配置文件中实现;

      zone “ZONE_NAME” IN {

      type {master|slave|hint|forward};

      file “ZONE_NAME.zone”;

      }

      注意:区域名字即为域名;

      2.建立区域数据文件(主要记录为A或AAAA记录)

      在/var/named目录下建立区域数据文件;

      文件为:/var/named/magedu.com.zone

      $TTL 3600

      $ORIGIN magedu.com.

      @ IN SOA ns1.magedu.com. dnsadmin.magedu.com.(

      2017010801

      1H

      10M

      3D

      1D

      )

      IN NS ns1

      IN MX 10 mx1

      IN MX 20 mx2

      ns1 IN A 172.16.100.67

      mx1 IN A 172.16.100.68

      mx2 IN A 172.16.100.69

      www IN A 172.16.100.67

      web IN CNAME www

      bbs IN A 172.16.100.70

      bbs IN A 172.16.100.71

      权限及属组修改:

      chgrp named /var/named/magedu.com.zone

      chomd o= /var/named/magedu.com.zone

      检查语法错误:

      named-checkzone ZONE_NAME ZONE_FILE

      named-checkconf

      3.让服务器重载配置文件和区域数据文件

      rndc reload

      systemctl reload named.service

      配置解析一个反向域

      1.定义区域

      在主配置文件中或主配置文件辅助配置文件中实现;

      zone “ZONE_NAME” IN {

      type {master|slave|hint|forward};

      file “ZONE_NAME.zone”;

      }

      注意:区域名字即为域名;

      配置文件/etc/named.rfc1912.zones

      2.定义区域解析库文件(主要记录为PTR)

      示例,区域名称为100.16.172.in-addr.arpa;

      $TTL 3600

      $ORIGIN 100.16.172.in-addr.arpa.

      @ IN SOA ns1.magedu.com. nsadmin.magedu.com.(

      2017010801

      1H

      10M

      3D

      1D)

      IN NS ns1.magedu.com.

      67IN PTR ns1.magedu.com.

      68IN PTR mx1.magedu.com.

      69IN PTR mx2.magedu.com.

      70IN PTR bbs.magedu.com.

      71IN PTR bbs.magedu.com.

      67IN PTR www.magedu.com.

      权限及属组修改:

      chgrp named /var/named/172.16.100.zone

      chomd o= /var/named/172.16.100.zone

      检查语法错误:

      named-checkzone ZONE_NAME ZONE_FILE

      named-checkconf

      3.让服务器重载配置文件和区域数据文件

      rndc reload

      systemctl reload named.service

    • 主从服务器:
       注意:从服务器时区域级别的概念;
       配置一个从区域:
        on slave
        1.定义区域
         定义一个从区域;
          zone”ZONE_NAME” IN {
           type slave;
           file “slaves/ZONE_NAME.zone”;
           masters { MASTER_IP; };
          };
          配置文件语法检查:named-checkconfig
        2.重载配置
         rndc reload
         systemctl reload named.service
        on master
         1.确保区域数据文件中为每个从服务器配置NS记录;并且在正向区域文件需要每个从服务器的NS记录的主机名配置一个A记录,且此A后面的地址为真正的从服务器的IP地址;
         注意:时间要同步;
          ntpdate 命令 设置时钟同步服务器
      子域授权:
       正向解析域授权子域的方法:
        ops.magedu.com. IN NS ns1.ops.magedu.com
        ops.magedu.com. IN NS ns2.ops.magedu.com
        ns1.ops.magedu.com. IN A IP address
        ns2.ops.magedu.com. IN A IP address
      定义转发:
       注意:被转发的服务器必需允许为当前服务器做递归;
        1.区域转发:仅转发某特定区域的解析请求;
         zone “ZONE_NAME” IN {
           type forward;
           forward {first|only};
           forwarders {SERVER_IP;};
              };
         first:首先转发:转发器不响应时,自行去迭代查询;
         only:只转发;
        2.全局转发:针对凡本地没有通过zome定义的区域查询请求,通通过转给某转发器;
         options {
         ……
         forward {first|only};
           forwarders {SERVER_IP;};
         …..
             };
  • 4、搭建并实现智能DNS
    • bind中的安全相关的配置:
       acl:访问控制列表;把一个或多个地址归为一个命名的集合,随后通过此名称即可对此集全内的所有主机实现统一调用;
        acl acl_name {
         ip:
         net/prelen;
        };
        示例:
         acl mynet {
          172.16.0.0/16;
         };
        bind由四个内置的acl
         none:没有一个主机;
         any任意主机;
         local:本机;
         localnet:本机所在的IP所属的网络;
      访问控制指令:
       allow-query {};允许查询的主机;白名单
       allow-transfer{};允许向那些主机做区域传送;默认为向所有主机;
       allow-recursion {};允许那些主机向当前DNS服务器发起递归查询请求;
       allow-update {};DDNS,允许动态更新区域数据库文件中内容;
      bind view:
       视图:
        view VIEW_NAME {
          zone
          zone
          zone
        }
         view internal {
          match-clents { 172.16.0.0/8; };
          zone “magedu.com” IN {
          type master;
          file “magedu.com/internal”;
          };
         };
         view external{
          match-clients { any; };
          zone “magedu.com” IN {
           type master;
           file “magedu.com/external”;
          };
         };

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/102307

发表评论

登录后才能评论

This site uses Akismet to reduce spam. Learn how your comment data is processed.

评论列表(1条)

  • 马哥教育
    马哥教育 2018-07-11 20:15

    总结的挺好,只是格式看上去有点乱,还有命令最好格式化显示。

联系我们

400-080-6560

在线咨询:点击这里给我发消息

邮件:1823388528@qq.com

工作时间:周一至周五,9:30-18:30,节假日同时也值班