1、簡述常見加密算法及常見加密算法原理,最好使用圖例解說
加密算法類型
- 對稱加密:加密和解密同一密鑰;
- 非對稱加密:加密和解密使用一對兒密鑰;通信的人是我們期望通信的人;
- 單向加密:只能加密不能解密:提取數據的特征碼: 人–>指紋;指紋–>人? 完整性檢驗;
加密算法特性
一、對稱加密
特性
- 加密、解密使用同一密鑰;
- 將原始數據分割成固定大小的塊,以塊為單位進行加密;
缺陷
- 密鑰過多;服務器需要為每個人生成一個密鑰;
- 密鑰分發困難;服務器如何安全的給每個人發送密鑰;
加密:openssl enc -e 加密算法 -a -salt -in fstab -out fstab.ciphertext [-k PASS] 解密:openssl enc -d 加密算法 -a -salt -in fstab -out fstab.ciphertext [-k PASS] 加密算法列表獲?。簅penssl ? --> Cipher commands 下的所有;引用時需要在其前加 -
二、非對稱加密
特性
- 密鑰分為公鑰和與之配對的私鑰;
- 私鑰:通過工具創建,自己留存,必須保證其私密性;secure key
- 公鑰:從私鑰中提取產生;可公開給所有人;pubkey
- 用公鑰加密的數據,只能使用與之配對的私鑰解密;反之亦然;
用途
- 數字簽名:服務端私鑰加密指紋的結果,用于讓對方確認自己的身份;完整性檢驗、身份認證
- 密鑰交換:客戶端用對方公鑰加密一個對稱密鑰,并發送給對方;
- 數據加密:密鑰長度過長一般不用;
工作邏輯
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;
三、單向加密
特性
- 定長輸出:提取數據特征碼長度固定,與數據大小無關;
- 雪崩效應:初始條件纖微改變,結果發生巨大變化,避免比對;
- 避免密碼存儲文件中相同密碼出現結果相同;在密碼中加入salt;在下次登陸時,用給定的密碼和salt進行加密后的結果與密碼存儲文件中的字符比較;
- 完整性驗證;
加密格式:工具 文件 openssl dgst -md5 file md5sum file sha1sum file ...
2、搭建apache或者nginx并使用自簽證書實現https訪問,自簽名證書的域名自擬
apache https
nginx https
附上腳本
#!/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工作邏輯
- dns程序庫扮演客戶端;
- 查詢本機/etc/hosts文件;
- 根據/etc/resolv.conf中nameserver指令指向的IP(運營商緩存DNS),從上向下;向第一個DNS服務器發起 遞歸查詢請求;
- 運管商DNS 迭代查詢 查找根域,返回頂級域某個DNS的IP;
- 運營商DNS 迭代查詢 查找頂級域,返回三級域某個DNS的IP;
- 運營商DNS 迭代查詢 查找三級域,返回其域內某個主機的IP;
- 運營商DNS 返回遞歸請求
- dns程序庫返回給某進程其域名解析結果
- 真正的通信
域名注冊
在Top Level Domain的DNS服務器主機的解析庫中添加子域條目;子域指向的主機(IP)即為解析 子域 的dns服務器;子域DNS服務器:需要一個有公網IP的主機;
搭建主從服務器
4、搭建并實現智能DNS
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/91336
總結的很贊~DNS解析過程可以用圖來說明會清楚點;另外DNS智能解析遇到的問題、解決思路和實驗結果最好能描述的更細一點哈~加油~
@馬哥教育:好的,老師!我加一個圖。