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

相关推荐

  • Linux 用户, 组和权限

    用户, 组和权限 Linux登陆需要用户名、密码。/etc/passwd 文件保存用户名。登录linux时,Linux 先查找 /etc/passwd 文件中是否有这个用户名,没有则跳出,有则读取用户名的user ID 、 group ID 、用户名对应的根目录路径以及所使用的 shell ,最后在 /etc/shadow 中核对该 UI…

    2017-07-22
  • 马哥教育网络班22期+第4周课程练习

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。   cp -r /etc/skel /home/tuser1    chmod -R go=— /home/tuser1 2、编辑/etc/group文件,添加组hadoo…

    Linux干货 2016-09-19
  • Nginx七层反代服务器 (Blog 20)

    http反代、fastcgi反代

    Linux干货 2017-12-20
  • bash功能特性六 bash操作环境

    一、bash查找命令的顺序     1、以相对路径或绝对路径执行的命令;     2、由alias找到该命令来执行;     3、由bash内置的命令来执行;     4、通过$PATH这个变量的顺序找到的第一个命令来执…

    Linux干货 2015-04-22
  • 第四周作业

    1. 复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限 [root@localhost ~]# chmod -R g=,o=  /home/tuser1 [root@localhost home]# ll drwx——  3 root&…

    Linux干货 2016-12-26
  • shell脚本之选择与执行

    流程控制  过程式编程语言: 顺序执行 选择执行 循环执行 选择执行:if语句  注意:if语句可嵌套  单分支 if 判断条件:then 条件为真的分支代码 fi  双分支 if 判断条件; then 条件为真的分支代码 else 条件为假的分支代码 fi 多分支 if…

    Linux干货 2016-09-19

评论列表(2条)

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

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

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

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