1. 程式人生 > >RedHat Linux 下升級SSH服務

RedHat Linux 下升級SSH服務

目前,很多 Linux 發行版本中整合的 SSH 軟體版本都比較老,存在一些漏洞和安全隱患,因而升級 SSH 服務成為 Linux 系統安全中非常重要的一個環節。下面就根據近期的一次例項來講述如何升級SSH 服務。

SSH 有許多標準,通常 Linux 中(Redhat, CentOS, SuSE 等)使用的是開源的OpenSSH,所以我這裡也是對OpenSHH 進行升級。在升級 OpenSSH 之前,需要升級系統中的 OpenSSL (OpenSSL 可以為 OpenSSH 提供加密傳輸支援,是 OpenSSH 的一箇中間件)版本和 Zlib (提供壓縮傳輸支援)版本,以達到更好的安全性。

在開始升級前一定要確認系統中安裝了GCC 編譯器!rpm -qa |grep gcc ,如果沒有顯示gcc的包,就yum -y install gcc ,注意: redhat6的yum源在redhat5系統裡是不能用的,不過可以用redhat6的repodata生成redhat5的repodata.xml 檔案。

一、升級 Zlib
1、下載最新版本 Zlib
Zlib 官方網站:http://www.zlib.net/
目前最新版本的 Zlib 是 zlib-1.2.8.tar.gz

2、編譯安裝 Zlib

# tar xzvf zlib-1.2.8.tar.gz
# cd zlib-1.2.8
# ./configure --prefix=/usr/local/zlib
# make
# make install

這樣,就把 zlib 編譯安裝在 /usr/local/zlib 中了。

二、升級 OpenSSL
1、下載最新版本 OpenSSL
OpenSSL 的官方網站:http://www.openssl.org
目前最新版的 OpenSSL 是 openssl-1.0.1e

2、編譯安裝 OpenSSL

# tar xzvf openssl-1.0.1e.tar.gz
# cd openssl-1.0.1e
# ./config --prefix=/usr/local/openssl
# make
# make test 
# make install

make test (這一步很重要哦!是進行 SSL 加密協議的完整測試,如果出現錯誤就要一定先找出哪裡的原因,否則一味繼續,可能最終導致 SSH 不能使用,後果很嚴重的!)

三、升級 OpenSSH
1、下載最新版本 OpenSSH
OpenSSH 的官方網站:http://www.openssh.com
目前最新版的 OpenSSH 是 openssh-6.3p1

2、編譯安裝 OpenSSH

# tar xzvf openssh-6.3p1.tar.gz
# cd openssh-6.3p1
# ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-zlib=/usr/local/zlib --with-ssl-dir=/usr/local/openssl --with-md5-passwords

(注意,如果 configure 時提示 PAM 有錯誤,一般是因為系統中沒有安裝 pam-devel RPM 包,找到安裝光碟,安裝 pam-devel 就可以解決了,rpm -ivh pam-devel版本號)

# make
# make install

 這樣就完成了升級 SSH 的工作,在升級完成後,我們還需要修改一下 OpenSSH 的配置檔案來進一步提升安全性。通過以上步驟完成的升級工作,OpenSSH 的配置檔案在 /etc/ssh 下,其中 SSH Server 的配置檔案是 sshd_config。

# vi /etc/ssh/sshd_config

找到:
#Protocol 2,1修改為:
Protocol 2這樣就禁用了 ssh v1 協議,只使用更安全的 ssh v2 協議。
找到:
X11Forwarding yes 修改為:
X11Forwarding no  (禁用 X11 轉發。)
修改後儲存退出。
生成ssh服務管理指令碼:
  進入ssh解壓目錄

#cd /contrib/redhat 
#cp sshd.init /etc/init.d/sshd
#chmod +x /etc/init.d/sshd (直接覆蓋,許可權會繼承)
#chkconfig --list |grep sshd  檢查ssh服務是否開機啟動,如果沒有,執行下面命令
#chkconfig --add sshd


最後,啟動 SSH 服務使修改生效:

# /etc/init.d/sshd restart 或者 service sshd restart

重啟後確認一下當前的 OpenSSH 和 OpenSSL 是否為新版:

# ssh -V

其實在我編譯安裝完成ssh後,執行ssh -V 命令,顯示已是新版本了。

附:安裝編譯器:yum -y install gccyum -y install gcc-c++

安裝PAM:yum install pam-devel