ssh服務的配置使用

  • open-ssh服務
  • ssh實驗

  • open-ssh
    遠程服務工具Telnet、sshd等,Telnet傳輸基於明文,認證等均爲非加密;ssh協議開源的實現:centos 6 7默認安裝,Secure remote shell,允許認證加密方式登錄。

    • 服務安裝配置
      系統默認安裝:
      [root@xt ~]# rpm -qa | grep ssh
      libssh2-1.4.3-10.el7.x86_64
      openssh-6.6.1p1-22.el7.x86_64
      openssh-server-6.6.1p1-22.el7.x86_64
      openssh-clients-6.6.1p1-22.el7.x86_64

      配置文件:

      server:/etc/ssh/sshd_config
      client:/etc/ssh/ssh_config

      服務腳本:
      CentOS 6:
      服務腳本:/etc/rc.d/init.d/sshd
      CentOS 7:
      Systemd Unit File:/usr/lib/systemd/system/sshd.service

    • 客戶端工具
      Windows: xshell, securecrt, putty...;
      openssh-clients使用:
      ssh [options] [user@]host [command]
      ssh [-l user] [options] host [command]:省略用戶名錶示使用當前用戶名作爲遠程登錄的用戶名
      常用選項:
      -P port :用於指定遠程服務的端口
      -X :支持X11轉發,在本地顯示遠程主機上的圖形窗口,但   前提:本地是X圖形界面,或者提供了x service;

      sh遠程連接服務器時的配置選項,定義在/etc/ssh/ssh_config配置文件中

    • 認證方式
      1.基於口令認證:即每次ssh交互輸入登錄密碼
      2.基於密鑰認證:非對稱加密
      • 在本地主機生成一對密鑰
        ssh-keygen [-q] [-b bits] [-t type] [-f output_keyfile] [-P passphrase]
        -t {rsa|ecdsa|dsa}: 公鑰加密算法,默認rsa 2048
        -b bits:密鑰長度
        -P passphrase :私鑰加密密碼
        -f output_keyfile:生成密鑰的保存位置
      • 在本地主機將公鑰複製到遠程主機的用戶家目錄
        ssh-copy-id -i identity_file [-p port] [user@]host
        ssh-copy-id -i .ssh/id_rsa.pub [email protected]
    • scp基於ssh實現跨主機文件複製
      複製文件到遠程主機:scp [options] /PATH/TO/SOMEFILE [user@]host:/PATH/TO/SOMEFILE
      複製文件到本地主機:scp [options] [user@]host:/PATH/TO/SOMEFILE /PATH/TO/SOMEFILE
      常用選項:
      -r:遞歸
      -p:保持源文件權限
      -q: 靜默模式
      -P port:指定遠程服務的端口

    • 最佳實踐
      1、不要使用默認端口;
      2、禁止使用protocol version 1;Protocol 2
      3、限制可登錄的用戶;
          在配置文件中配置:
          AllowUsers  user1 user2 ...
          AllowGroups group1 group2...
          DenyUsers  user1 user2...
          DenyGroups group1 group2
      4、設定空閒會話超時時長;
      5、利用防火牆設置ssh訪問策略;
      6、僅監聽特定的IP地址;
      7、基於口令認證時,使用強密碼策略(可以禁止)
          # tr -dc A-Za-z0-9_ < /dev/urandom | head -c 20 | xargs
      8、使用基於密鑰的認證;
      9、禁止使用空密碼;
      10、禁止root用戶直接登錄;
      11、限制ssh的訪問頻度和併發在線數;
      12、做好日誌,經常分析;
      13、設置TCP Wrappers
          用TCP Wrappers可以阻止或允許應用服務僅對某些主機開放,給系統在增加一道安全屏障。這部分設置共涉計到兩個文件:hosts.allow和 hosts.deny
          eg: 在白名單中允許特定的主機訪問
          sshd:192.168.0.100 192.168.0.200

實驗環境:
ssh服務的配置使用

實驗1:模擬中間人attack
首先客戶端與server建立ssh通信,客戶端從服務端下載公鑰保存在家目錄.ssh/known_hosts文件,此時可以基於密碼或者密鑰遠程登錄server。修改server的密鑰文件模擬server attacked:
ssh服務的配置使用

ssh服務的配置使用
ssh服務的配置使用
實驗2:密鑰互信實驗
ssh服務的配置使用

[root@xt .ssh]# ls
id_rsa  id_rsa.pub  known_hosts
[root@xt .ssh]# ssh [email protected] hostname
node1.xuetong.com

這樣就實現了免密登錄,由於使用空密鑰,id_rsa* 這兩個文件有可能被竊取,僞裝成客戶端,可以使用對文件加密。

ssh服務的配置使用
此時同樣把公鑰發送給node1
ssh服務的配置使用
但此時還是要交互輸入密碼。此密碼保證了文件的安全性,僅在此機器有效。可以通過使用ssh-agent作爲代理,免去輸入密碼。
ssh服務的配置使用

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