加密算法、https、dns(主从、视图)

第九周 2018/1/29

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

加密算法类型

  • 对称加密:加密和解密同一密钥;
  • 非对称加密:加密和解密使用一对儿密钥;通信的人是我们期望通信的人;
  • 单向加密:只能加密不能解密:提取数据的特征码: 人–>指纹;指纹–>人? 完整性检验;

加密算法特性

一、对称加密

1

特性

  1. 加密、解密使用同一密钥
  2. 将原始数据分割成固定大小的块,以块为单位进行加密

缺陷

  1. 密钥过多;服务器需要为每个人生成一个密钥;
  2. 密钥分发困难;服务器如何安全的给每个人发送密钥;
加密:openssl enc -e 加密算法 -a -salt -in fstab -out fstab.ciphertext [-k PASS]
解密:openssl enc -d 加密算法 -a -salt -in fstab -out fstab.ciphertext [-k PASS]
    加密算法列表获取:openssl ? --> Cipher commands 下的所有;引用时需要在其前加 -

二、非对称加密

 

2

特性

  1. 密钥分为公钥和与之配对的私钥;
  2. 私钥:通过工具创建,自己留存,必须保证其私密性;secure key
  3. 公钥:从私钥中提取产生;可公开给所有人pubkey
  4. 用公钥加密的数据,只能使用与之配对的私钥解密;反之亦然;

用途

  • 数字签名:服务端私钥加密指纹的结果,用于让对方确认自己的身份;完整性检验身份认证
  • 密钥交换:客户端用对方公钥加密一个对称密钥,并发送给对方;
  • 数据加密:密钥长度过长一般不用;

工作逻辑

Server 单向加密 –> 数字签名 –> 密钥加密数据 –> 对方公钥加密密钥
Client 自己私钥解密密钥 –> 密钥 –> 对方公钥 –> 单向加密

公钥

证书

 

 生成私钥:(umask 077; openssl genrsa -out private.key NUM_BITS)
 从私钥中提取公钥:openssl rsa -in private.key -pubout
    (): bash中特殊含义:在括号中运行的命令在当前shell的子shell进程中运行。若在子shell中定义的特性仅在子shell的生命周期中有效;
    NUM_BITS:密钥长度:2^n;

三、单向加密

 

3

特性

  1. 定长输出:提取数据特征码长度固定,与数据大小无关;
  2. 雪崩效应初始条件纤微改变,结果发生巨大变化,避免比对;
  3. 避免密码存储文件中相同密码出现结果相同;在密码中加入salt;在下次登陆时,用给定的密码和salt进行加密后的结果与密码存储文件中的字符比较;
  4. 完整性验证
加密格式:工具 文件
 openssl dgst -md5 file
 md5sum file
 sha1sum file
 ...

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

apache https

v1

s2

s3

nginx https

s4

附上脚本

#!/bin/bash
#
openssl version || exit
ntpdate 0.centos.pool.ntp.org
# ---------------------------- private CA ---------------------------------
dir='/etc/pki/CA'
mkdir -p ${dir}/{certs,crl,newcerts,private}
[ -f ${dir}/private/cakey.pem ] || (umask 077; openssl genrsa -out ${dir}/private/cakey.pem 2048)
[ -f ${dir}/cacert.pem ] || openssl req -new -x509 -key ${dir}/private/cakey.pem -out ${dir}/cacert.pem -days 7300
sleep 2
[ -f $dir/index.txt ] || touch $dir/index.txt
[ -f $dir/serial ] || echo "01" > $dir/serial

read -p 'nginx or httpd or haproxy? ' prog
[ -n "$prog" ] || exit
[ "$prog" == "nginx" -o "$prog" == "httpd" -o "$prog" == "haproxy" ] || exit 
echo -e "\033[1;31mInstall $prog ssl\033[0m"
# ----------------------------- $prog ssl ----------------------------------
ssl_dir="/etc/$prog/ssl"
#
mkdir -pv $ssl_dir
[ -f $ssl_dir/$prog.key ] || (umask 077; openssl genrsa -out $ssl_dir/$prog.key 2048)
[ -f ${ssl_dir}/$prog.csr ] || openssl req -new -key ${ssl_dir}/$prog.key -out ${ssl_dir}/$prog.csr -days 365
[ -f ${ssl_dir}/$prog.crt ] || openssl ca -in ${ssl_dir}/$prog.csr -out ${ssl_dir}/$prog.crt -days 365

http和nginx分别填入内容

CN HA MageEdu Ops ca.magedu.com caadmin@magedu.com

CN HA MageEdu Ops www.magedu.com webadmin@magedu.com

CN HA ZZ Ops nginx.magedu.com webadmin@magedu.com

3、简述DNS服务器原理,并搭建主-辅服务器

专业术语

  • 协议:是一种规范,http, ftp, smtp(邮件传输), pop3/imap4(邮件收取)
    • 规范;由特定具体的软件来实现
  • :无形的,逻辑的概念;正向解域区域 + 反向解析区域
  • 区域:物理,一个一个的解析库对应的主机; 正向解析区域 反向解析区域
  • 递归请求:发起一次查询,就会有结果
  • 迭代查询:发起N次查询,才有结果;缓存DNS;
  • 转发非我所负责的域,就转发;注意:接收请求的主机,应该为转发的主机递归;
    • 区域转发:解析非我所负责的域的主机,且解析此域内的主机才转发;
    • 全局转发:解析非我所负责的域的主机,统统转发;

DNS工作逻辑

  1. dns程序扮演客户端;
  2. 查询本机/etc/hosts文件;
  3. 根据/etc/resolv.conf中nameserver指令指向的IP(运营商缓存DNS),从上向下;向第一个DNS服务器发起 递归查询请求;
  4. 运管商DNS 迭代查询 查找根域,返回顶级域某个DNS的IP;
  5. 运营商DNS 迭代查询 查找顶级域,返回三级域某个DNS的IP;
  6. 运营商DNS 迭代查询 查找三级域,返回其域内某个主机的IP;
  7. 运营商DNS 返回递归请求
  8. dns程序库返回给某进程其域名解析结果
  9. 真正的通信

DNS

域名注册

在Top Level Domain的DNS服务器主机的解析库中添加子域条目;子域指向的主机(IP)即为解析 子域 的dns服务器;子域DNS服务器:需要一个有公网IP的主机;

 

搭建主从服务器

z1

z2

z3

z4

z5

z6

z7

z8

z9

z10

z11

4、搭建并实现智能DNS

q1

q2

q3

q4

q11

q6

q7

 

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

(2)
逆神阳逆神阳
上一篇 2018-01-29
下一篇 2018-01-29

相关推荐

  • yum前端工具与源码编译安装

    概述:本章内容重要讲解yum(rpm前端工具)和rpm源码编译安装,前者可以有效的解决软件安装过程中存在的依赖关系,从而提升我们使用系统的效率;后者是我们进阶Linux系统,了解程序包安装的过程本质 1、YUM: Yellowdog Update Modifier   Yum(全称为 Yellow dog Updater, Modified)是一个…

    Linux干货 2016-08-29
  • Nginx反向代理的常用调度算法

    upstream 调度算法 1.rr 按客户端请求顺序把客户端的请求逐一分配到不同的后端的服务器,这相当于lvs中的rr算法。如果后端服务器岩机(默认情况下只检测80端口,如果后端报502,404,403,503,还是会直接返给用户),岩机服务器会被自动剔除,使用户访问不受影响,请求会分配给正常的服务器 2.weight(权重) 在轮询算法的基础上加上权重(…

    Linux干货 2016-06-01
  • kickstart+http+dhcp+tftp实现centos7的无人值守安装

    环境:IP: 172.16.0.11 centos 7.2 一. tftp 安装tftp服务端和客户端 [root@localhost ~]# yum -y install tftp tftp-server 启动tftp [root@localhost ~]# systemctl start tftp.socket [root@localhost ~]# s…

    Linux干货 2017-06-03
  • 第二周作业

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 目录管理类命令: cd:变更目录   命令格式:cd [DIRECTORY] pwd:显示当前目录的绝对路径 ls:显示文件或目录内容     命令格式:ls [OPTION]… [FILE]… &…

    Linux干货 2017-01-08
  • 自制linux和内核编译

    自制linux和内核编译 1、分区并创建文件系统 fdisk /dev/sdb分两个必要的分区/dev/sdb1对应/boot /dev/sdb2对应根/mkfs.ext4 /dev/sdb1mkfs.ext4 /dev/sdb2 2、挂载boot mkdir/mnt/bootmount /dev/sdb1 /mnt/boot 3、安装grub grub-i…

    Linux干货 2016-09-16
  • 马哥网络教育班21期-第一周课程练习

      一、计算机的组成及其功能 1.1计算机的组成      1946年美籍匈牙利科学家冯·诺依曼提出存储程序原理,把程序本身当作数据来对待,程序和该程序处理的数据用同样的方式存储,并确定了存储程序计算机的五大组成部分,分别为运算器、控制器、存储器、输入设备和输出设备。 1.2计算机的组成 控制器(Contro…

    Linux干货 2016-07-12

评论列表(2条)

  • 马哥教育
    马哥教育 2018-01-31 22:33

    总结的很赞~DNS解析过程可以用图来说明会清楚点;另外DNS智能解析遇到的问题、解决思路和实验结果最好能描述的更细一点哈~加油~

    • 逆神阳
      逆神阳 2018-02-01 08:29

      @马哥教育好的,老师!我加一个图。