SSH遠程登錄

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 ,sshsecureshellclient

                      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服務的最佳實踐
                1、不要使用默認端口;
                  2、禁止使用protocal version 1;
                  3、限制可登錄用戶;
                    4、設定空閒會話超時時長;
                    5、利用防火牆設置ssh訪問策略;
                    6、僅監聽特定的IP地址;
                        7、基於口令認證時,使用強密碼策略;
                               # tr -dc A-Za-z0-9_ </dev/urandom | head -c 30 |xargs
                        8、使用基於密鑰的認證;
                        9、禁止使用空密碼;
                        10、禁止root用戶直接登錄;
                        11、限制ss的訪問頻度和併發在線數;
                        12、做好日誌,經常分析;

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 :

證書申請及簽署步驟 :
1、生成申請請求 :
2、RA覈驗 :
3、CA簽署 :
4、獲取證書 :

創建私有CA
openssl的配置文件 : /etc/pki/tls/openssl.cnf

        (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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章