Linux 系統安全之 升級 OPENSSH

OpenSSH

OpenSSH 是 SSH (Secure SHell) 協議的免費開源實現。SSH協議族可以用來進行遠程控制, 或在計算機之間傳送文件。而實現此功能的傳統方式,如telnet(終端仿真協議)、 rcp ftp、 rlogin、rsh都是極爲不安全的,並且會使用明文傳送密碼。OpenSSH提供了服務端後臺程序和客戶端工具,用來加密遠程控制和文件傳輸過程中的數據,並由此來代替原來的類似服務。

網絡安全一刻也不能放鬆,爲了系統安全儘量將 OPENSSH 升級到最新版本,目前最新版本爲 8.2 P1,下面開始準備升級。

  • 實驗環境 CentOS 7.5
  • 爲了預防萬一升級失敗後,無法登陸遠程主機的問題,需要先安裝 、啓動Telnet 服務,確保可以遠程登錄。
  •  
  • 安裝、配置 Telnet 以及超級守護進程 xinetd 服務
  • 編輯 telnet 主配置文件 /etc/xinetd.d/telnet
  • vim /etc/xinetd.d/telnet

    service telnet
    {
        disable = no
        flags       = REUSE
        socket_type = stream
        wait        = no
        user        = root
        server      = /usr/sbin/in.telnetd
        log_on_failure  += USERID
    }
  • 配置telnet登錄的終端類型,在 /etc/securetty 文件末尾增加一些pts終端
    vim /etc/securetty
    pts/0
    pts/1
    pts/2
    pts/3
  • 啓動telnet服務
    systemctl start telnet.socket 

    查看服務狀態
    systemctl status telnet.socket 

    查看偵聽端口
    ss -atnl | grep 23 

    安裝完成後,將xinetd服務加入開機自啓動:
    systemctl enable xinetd.service

    將telnet服務加入開機自啓動:
    systemctl enable telnet.socket

  • 使用 telnet 測試登錄


  • 編譯、安裝無誤後,下面開始配置 OPENSSL

    設置 openssl 命令的軟鏈接
    ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
    ln -s /usr/local/openssl/include/openssl /usr/include/openssl
    ln -s /usr/local/openssl/lib/libssl.so /usr/lib64/libssl.so

    echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
    ldconfig -v
     
    openssl version


  • 開始安裝 openssh 前,先備份原先的 openssh 文件
  • mv /etc/ssh/* /bak/sshbak
  • tar xf openssh-8.2p1.tar.gz
  • ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/openssl --with-md5-passwords --mandir=/usr/share/man --with-pam=enable && make clean && make && make install
  • echo $? --> 0 確保編譯安裝無誤後,複製啓動腳本和PAM驗證文件
  • cp /home/gf/openssh/openssh-8.2p1/contrib/redhat/sshd.init /etc/init.d/sshd
    cp /home/gf/openssh/openssh-8.2p1/contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
  • 編輯 /etc/ssh/sshd.conf 配置文件
  • Port 22
    PermitRootLogin no
    PasswordAuthentication yes
    UsePAM yes
    UseDNS no
    Subsystem    sftp    /usr/libexec/sftp-server
  • chmod +x /etc/init.d/sshd
  • 把原先的 systemd 管理的 sshd 啓動腳本文件刪移或者移走,否則影響重啓 sshd 服務
    mv  /usr/lib/systemd/system/sshd.service  /bak/sshbak
    mv  /usr/lib/systemd/system/sshd.socket  /bak/sshbak
  • 重新加載服務配置文件後重啓 sshd 服務
  • systemctl daemon-reload
  • systemctl restart sshd
  • chkconfig sshd on
  • 重啓確認無誤後可以停掉 telnet 服務
  • systemctl disable telnet

  • 使用 ssh 測試重新登錄

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