加密算法、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

相关推荐

  • 程序包管理:rpm , yum ,与编译

    1.RPM,Redhat Package Manager。是Redhat和CentOS等Linux系统上常见的软件安装工具。 软件安装: 常见选项 -i                #install…

    Linux干货 2016-03-26
  • 马哥教育网络班21期-第六周课程练习

    1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#;  # :%s@^[[:space:]]\+@#&@g 2、复制/boot/grub/grub.conf至/tmp目录中,删除/tmp/grub.conf文件中的行首的空白字符; &nb…

    Linux干货 2016-08-15
  • linux 基础3

    linux 基础3

    Linux干货 2018-03-25
  • 计算机网络基础

    计算机网络基础 分层的网络模型 网络发展到今天,规模很庞大,内容很复杂,不利于网络的管理和教学。网络分层可以:降低网络结构的复杂性、把各层的接口标准化、简化模块设计、确保技术的互操作性、加快发展速度以及简化教学过程。 OSI模型——国际标准:根据国际标准化组织( ISO,International Standards Orgnization)提案,计算机网络…

    Linux干货 2016-11-22
  • 人志建,则无敌—磁盘、LVM2和简单脚本练习

    马哥网络班21期-第七周博客 1、创建一个10G分区,并格式为ext4文件系统;  disk /dev/sdb         Command (m for help): n    &nbs…

    Linux干货 2016-08-19
  • Find小总结及应用

    Find总结及应用 搜索命令:     locate命令:         在文件系统上查找符合条件的文件         非实时查找( 数据库查找)…

    Linux干货 2016-08-16

评论列表(2条)

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

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

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

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