跳到主內容

CentOS OpenSSH 更新到 9.8

  因最近 OpenSSH 有報資安問題 CVE-2024-6387 剛好有服務還是 CentOS 7 現在已沒有在維護所以需要手動編譯新版

運行環境


  環境都是在 「Proxmox VE 」 虛擬系統上架設,都是以 「 LXC 」模式為主,除非有特殊狀況會告知使用 「 VM 」 模式

  • 系統環境: CentOS 7

測試過程


  • 在更新服務之前先安裝 Telnet 相關服務
yum install -y telnet telnet-server xinetd
systemctl start xinetd
systemctl start telnet.socket
sed -i 's/^auth[[:space:]]\+required[[:space:]]\+pam_securetty.so/#&/' /etc/pam.d/remote
  • 在用 Telnet 方式去連線該站台

  • 下載相關套件

cd /usr/local/src
wget https://www.zlib.net/zlib-1.3.1.tar.gz
wget https://www.openssl.org/source/openssl-3.3.1.tar.gz
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.8p1.tar.gz
  • 解壓剛剛下載好的套件
tar -zxf openssh-9.8p1.tar.gz && tar -zxf openssl-3.3.1.tar.gz && tar -zxf zlib-1.3.1.tar.gz
  • 備份原本服務
cp -rf /etc/ssh /etc/ssh.20240711
cp -rf /usr/bin/openssl /usr/bin/openssl.20240711
cp -rf /etc/pam.d /etc/pam.d.20240711
cp -rf /usr/lib/systemd/system /system.20240711
  • 安裝相關套件
yum install -y perl-CPAN perl-IPC-Cmd pam-devel
  • 安装 zlib
cd /usr/local/src/zlib-1.3.1
./configure --prefix=/usr/local/src/zlib
make -j 4 && make install
  • 安装 openssl
cd /usr/local/src/openssl-3.3.1
./config --prefix=/usr/local/src/openssl
make -j 4 && make install
  • 設定 OpenSSL
rm -f /usr/bin/openssl
ln -s /usr/local/src/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/src/openssl/lib64/libssl.so.3 /usr/lib64/libssl.so.3
ln -s /usr/local/src/openssl/lib64/libcrypto.so.3 /usr/lib64/libcrypto.so.3
echo "/usr/local/src/openssl/lib64" >> /etc/ld.so.conf
ldconfig
  • 確認 OpenSSL 的版本
openssl version -v
  • 移除舊版的 OpenSSH
yum remove -y openssh
rm -rf /etc/ssh/*
  • 安裝新版的 OpenSSH
cd /usr/local/src/openssh-9.8p1
./configure --prefix=/usr/local/src/ssh --sysconfdir=/etc/ssh --with-pam --with-ssl-dir=/usr/local/src/openssl --with-zlib=/usr/local/src/zlib
make -j 4 && make install
  • 設定 OpenSSH
cp -rf /usr/local/src/openssh-9.8p1/contrib/redhat/sshd.init /etc/init.d/sshd
cp -rf /usr/local/src/openssh-9.8p1/contrib/redhat/sshd.pam /etc/pam.d/sshd
cp -rf /usr/local/src/ssh/sbin/sshd /usr/sbin/sshd
cp -rf /usr/local/src/ssh/bin/ssh /usr/bin/ssh
cp -rf /usr/local/src/ssh/bin/ssh-keygen /usr/bin/ssh-keygen
cp -rf /usr/local/src/ssh/bin/scp /usr/bin/scp
cp -rf /usr/local/src/ssh/bin/sftp /usr/bin/sftp
cp -rf /usr/local/src/ssh/bin/ssh-add /usr/bin/ssh-add
  • 修改 OpenSSH 配置
echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config
echo 'PasswordAuthentication yes' >> /etc/ssh/sshd_config
  • 啟動服務
/etc/init.d/sshd restart
/etc/init.d/sshd status
chkconfig --add sshd
  • 確認 OpenSSH 版本
ssh -V

補充說明


備註





參考相關網頁