OpenSSH :
ssh : secure shell protocal , 22/tcp ,安全的遠程登陸
OpenSSH : ssh協議的開源實現;
dropbear : 另外一個開源實現;算法
SSH協議版本 v1 :基於CRR-32作MAC,不安全 :man-in-middle v2 :雙方主機協議選擇安全的MAC方式 基於DH算法作密鑰交換,基於RSA或DSA算法實現身份認證; 兩種方式的用戶登陸認證: 基於password 基於key
OpenSSH:
C/S
C:ssh , scp , sftp
Windows客戶端:
xshell ,putty , securecrt ,sshsecureshellclientshell
S:sshd 客戶端組件 : ssh ,配置文件 :/etc/ssh/ssh_config 格式 :ssh [user@]host [COMMAND] ssh [-l user] host [COMMAND] -p port:遠程服務器監聽的端口; Host PATTERN PARAMETER VALUE 基於密鑰的認證 : (1)在客戶端生產密鑰對兒 ssh -t rsa [-P ''] [-f "~/.ssh/id_rsa"] (2)把公鑰傳輸至遠程服務器對應 用戶的家目錄 ssh-copy=id [identity_file][user@machine] (3) 測試; scp命令 : scp [options] SRC... DEST/ 存在兩種形式: PULL : scp [options] [user@]host:/PATH/FROM/SOMEFILE /PATH/TO/SOMEWHERE PUSH : scp [options] /PATH/FROM/SOMEFILE [user@]host:/PATH/TO/SOMEWHERE 經常使用選項 : -r : 遞歸複製; -p :保證原文件的屬性信息; -q : 靜默模式 -p PORT : 指明remote host的監聽的端口 服務器端 : sshd ,配置文件 :/etc/ssh/sshd_config 經常使用參數 : Port 22022 ListenAddress ip PermitRootLogin yes 限制可登陸用戶的辦法 : AllowUsers user1 user2 uesr3 AllowGroups ssh服務的最佳實踐 一、不要使用默認端口; 二、禁止使用protocal version 1; 三、限制可登陸用戶; 四、設定空閒會話超時時長; 五、利用防火牆設置ssh訪問策略; 六、僅監聽特定的IP地址; 七、基於口令認證時,使用強密碼策略; # tr -dc A-Za-z0-9_ </dev/urandom | head -c 30 |xargs 八、使用基於密鑰的認證; 九、禁止使用空密碼; 十、禁止root用戶直接登陸; 十一、限制ss的訪問頻度和併發在線數; 十二、作好日誌,常常分析;
ssh協議的另外一個實現 :dropbear
(1) dropbearkey -T rsa -f /etc/dropbear_rsa_host_key -ss 2048
dropbearkey -t dss -f /etc/dropbear_dss_host_key
dropbear -p [ip:]port -F -E安全
OpenSSL :
三個組件:
openssl : 多用途的命令行工具;
libcrypte : 加密解密庫;
libssl : 是ssl協議的實現; 服務器
PKI () : Public Key Infrastructure
CA
RA
CRL
證書存取庫併發
創建私有CA :
OpenCA :
openssl : dom
證書申請及簽署步驟 :
一、生成申請請求 :
二、RA覈驗 :
三、CA簽署 :
四、獲取證書 :ssh
建立私有CA
openssl的配置文件 : /etc/pki/tls/openssl.cnftcp
(1)建立所須要的文件 # touch index.txt # echo 01 > serial # (2) CA自簽證書 # (umask 077 ; openssl genrsa -out /etc/pki/CA/private/cakey-pem 2048) # openssl req -new -x509 -key /etc/pki/CA/private/cakey.epm private/cakey.epm -days 7300 -out /etc/pki/CA/cacert.pem -new : 生成心證書籤署請求; -x509 : 生成自簽證書 ; -key : 生成請求時用到的私鑰文件; -out /PATH/TO/SOMCEREFILE :證書的保存路徑; (3) 發證 (a)用到證書的主機生成證書請求 : # (umask 077 ; openssl genrsa -out /etc/httpd/ssl/httpd.key 2048) # openssl req -new -key /etc/httpd/ssl/httpd.key -days 365 -out /etc/httpd/ssl/httpd.csr (b) 把請求文件傳輸給CA; (c) CA簽署證書, 並將證書發還給請求者; #openssl ca -in /tmp/httpd.csr -out /etc/pki/CA/certs/httpd.crt -day365 查看證書中的信息 : openssl x509 -in /PATH/FROM/CERT_FILE -noout -text|-subject|serial (4)吊銷證書 (a)客戶端獲取要吊銷的證書serial #openssl x509 -in /PATH/FROM/CERT_FILE -noout -serial -subject (b) CA 先根據客戶端提交的serial與subject信息,對比檢驗是否與index.txt 文件中的信息一致 ; 吊銷證書 : #openssl ca -revoke /etc/pki/CA/newcerts/SERIAL.pem (c) 生成吊銷證書的編號(第一次吊銷一個證書) #echo 01 > /etc/pki/CA/CRLNUMBER (d) 更新證書吊銷列表 #openssl ca -gencrl -out thisca.crl -noout -text 查看crl 文件 # openssl crl -in /PATH/FROM/CRL_FILE.crl -noout -text