SSL:Secure Socket Layer
特點:
保密性:數據保密性,隱私性
完整性:數據完整性,系統完整性
可用性:加密能夠解密。
OSI:x.800定義了安全***機制
現代互聯網安全服務的基礎安全框架叫做PKI機制:Public Key Infrastructure
PKI:
簽證機構:CA
註冊機構:RA
證書吊銷列表:CRL
證書存取庫:
DSS:Digital Siganature Standard
加密協議種類
對稱加密:加密解密用同一個密鑰:3des,aes
公鑰加密:密鑰成對出現:公鑰-私鑰,加密速度慢,常用於數字簽名和密鑰交換。
RSA,DSA(DSS)
單向加密:主要用於提取數據指紋或特徵碼。
MD5,sha1
密鑰交換:DH:Deffie-Hellman算法
SSL是一種庫,是TCP/IP協議層中的半層,基於TCP實現的,必須要有虛擬電路支持。
請求服務器中的數字證書:其中是使用者的公鑰
CA:證書籤證機構
數字證書格式:
版本號version:
序列號serial number:CA用於唯一標識此證書
簽名算法標識:
發行者名稱:CA自己名稱
有效期:起止日期
證書主體名稱:證書擁有者的名稱:
證書主體公鑰信息:證書擁有者自己的公鑰
發行商的唯一標識:
證書主體的唯一標識:
擴展信息:
簽名:CA對此證書的數字簽名
證書的用途:
用戶證書:用戶之間通信用的
主機證書 (httpd):服務器的進程間通信用的
Open SSL 的組成部分:
libcrypto:加密解密庫文件
libssl:ssl協議實現
openssl:多用途命令行工具,每種功能都使用專用的子命令來實現
openssl:子命令分類:
標準命令
消息摘要命令
加密,解密相關命令
加密 openssl enc -e加密 -a以文本模式輸出 -salt:加些隨機數進來 -in加密哪個文件 -out放在哪 -des3密碼
解密 openssl enc –d
單向加密 openssl dgst –CIPHER file
生成用戶密碼:openssl passwd –1 –salt 8bit 隨機數
不知爲啥生出了一堆
生成隨機數:openssl rand –hex|-base64 NUM
公鑰加密
數字簽名:RSA/DSA
密鑰交換DH:
操作過程:私鑰能提取出公鑰
openssl genrsa –out 文件 位數
(umask 077;openssl genrsa –out 文件 位數)在括號中運行的表示在子shell中運行
私鑰中提取公鑰
openssl rsa –in 私鑰文件 –pubout
公鑰加密爲了完成密鑰交換
私鑰機密爲了完成身份驗證
隨機數生成器:
random,urandom
熵池:保存硬件中斷產生的隨機數
/dev/random:從熵池中取隨機數,熵池裏的隨機數耗盡,取隨機數的進程會被阻塞
/dev/urandom:從熵池中取隨機數,熵池裏的隨機數耗盡,會用僞隨機數生成器替代,不安全。
構建私有CA
1、生成私鑰;
2、生成自簽署證書;
查看CA_Default
dir:定義CA工作目錄
certs:$dir引用dir的值:爲客戶端發放的證書存取庫
crl_dir:吊銷文件
database:數據庫
new_certs_dir:剛生成的證書
certificate:CA自己的證書
serial:會不斷加一
crlnumber:吊銷編號
private_key:存放私鑰的
步驟:
自己生成
1、在CA工作目錄裏生成自己的私鑰, 私鑰的位置是private_key
2、生成自簽證書:
openssl req –new –x509 –key /etc/pki/CA/private/cakey.pem –out /etc/pki/CA/cacert.pem –days
-new 生成新證書的簽署請求
-key私鑰文件路徑,提取公鑰用的
-days N:證書有效時長,單位是天
-out輸出文件保存位置:
-x509:直接輸出自簽署的證書文件,通常只有構建CA才這麼用
3、提供輔助文件
touch /etc/pki/CA/index.txt
echo 01> serial
1
2、3
給節點發證書:
1、節點申請
1.1 生成私鑰:
(umask 077; openssl genrsa -out privatekey.key 2048)
1.2 生成證書請求req -new -key privatekey.key -out privatekey.csr -days 365
2、CA簽發證書:
openssl ca –in file –out file –days N
3、把簽署好的證書發還給請求者
建立文件夾
生成證書
發送請求
OpenSSH:
CS架構協議:
Server需要sshd: /stc/ssh/sshd_config
Client需要ssh,xshell,putty /stc/ssh/ssh_config
scp:安全跨主機複製工具,基於ssh實現
sftp
sshsecure shell,用來取代telnet(23/tcp)
telnet是有xinetd這個超級守護進程來管理的:
打開telnet,他是明文的,容易被盜
chkconfig telnet on
service xinetd restart
ss –tnl 查找23tcp端口
iptables -F清空防火牆規則
ssh protocol
v1不安全 v2安全
兩種方式認證:
基於口令認證:
基於密鑰認證:基於DH
在客戶端生成一對密鑰,私鑰自己留着,公鑰通過私密方式保存到遠程服務器某用戶的家目錄專用於ssh通信的文件中
命令行用法:
ssh [選項] –l user host,不指定用戶名就以自己當前用戶名代入
ssh [選項] user@host
也可以通過ssh一次執行一條命令然後返回
私鑰登錄:
1、創建私鑰
ssh [選項] [user]@[local] -p指明端口號
2、複製到服務器上
scp:遠程複製文件:
push:scp –r(目錄遞歸) –p(權限)自己的文件 user@host:/path -P指明端口號
pull:scp user@host:/path 位置
服務器端配置sshd:/etc/ssh/sshd_config
1、port默認是22,儘量不使用默認,大家都愛用22022
2、protocol 2,1不安全
3、限制可登錄用戶:禁用root登入,
PermitRootLogin,默認是yes
AllowUsers user1 user2,白名單
AllowGroups grp1
DenyUsers user1黑名單
4、僅監聽需要監聽的ip地址:
ListenAddress
5、強密碼策略:
建議隨機數
6、禁止使用空密碼登入:
7、限制登入頻度:默認是6次