ssh更新


目前,不少 Linux 發行版本中集成的 SSH 軟件版本都比較老,存在一些漏洞和安全隱患,於是升級 SSH 服務成爲 Linux 系統安全中很是重要的一個環節。下面就根據近期的一次實例來說述如何升級SSH 服務。linux

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 文件。ssh

1、升級 Zlib
一、下載最新版本 Zlib
Zlib 官方網站:http://www.zlib.net/
目前最新版本的 Zlib 是 zlib-1.2.8.tar.gz
# cd /usr/local/src
# wget -c http://www.zlib.net/zlib-1.2.8.tar.gz測試

二、編譯安裝 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/zilib 中了。加密

2、升級 OpenSSL
 一、下載最新版本 OpenSSL
 OpenSSL 的官方網站:http://www.openssl.org
目前最新版的 OpenSSL 是 openssl-1.0.2c.net

# cd /usr/local/src
# wget -c http://www.openssl.org/source/openssl-1.0.1e.tar.gzrest

二、編譯安裝 OpenSSL
# tar xzvf openssl-1.0.2c.tar.gzxml

# cd openssl-1.0.2c中間件

# ./config --prefix=/usr/local/openssl
# make
# make test
# make install

make test (這一步很重要哦!是進行 SSL 加密協議的完整測試,若是出現錯誤就要必定先找出哪裏的緣由,不然一味繼續,可能最終致使 SSH 不能使用,後果很嚴重的!)

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

# cd /usr/local/src
# wget -c http://openbsd.org.ar/pub/OpenBSD/OpenSSH/portable/

二、編譯安裝 OpenSSH
# tar xzvf openssh-6.8p1.tar.gz

# cd openssh-6.8p1

# ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-zlib=/usr/local/zlib --with-ssl-dir=/usr/local/openssl --with-md5-passwords

若是configure提示未安裝openssl-devel和pam

須要執行如下命令:

 rpm -ivh   zlib-devel-1.2.3-29.el6.x86_64.rpm
 rpm -ivh libsepol-devel-2.0.41-4.el6.x86_64.rpm
 rpm -ivh libselinux-devel-2.0.94-5.3.el6.x86_64.rpm
 rpm -ivh libcom_err-devel-1.41.12-14.el6.x86_64.rpm
 rpm -ivh keyutils-libs-devel-1.4-4.el6.x86_64.rpm
 rpm -ivh krb5-devel-1.10.3-10.el6.x86_64.rpm

 rpm -ivh  openssl-devel-1.0.0-27.el6.x86_64.rpm


# 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 /usr/local/src/openssh-6.8p1/contrib/redhat/
#cp sshd.init /etc/init.d/sshd
#chmod +x /etc/init.d/sshd (直接覆蓋,權限會繼承)
#chkconfig --list |grep sshd  檢查ssh服務是否開機啓動,若是沒有,執行下面命令
#chkconfig --add sshd

退出機器後,使用root用戶沒法ssh登錄,我用普通用戶ssh登陸後,

一、修改SSHD服務的配置文件/etc/ssh/sshd_config

   將#PermitRootLogin no 改成PermitRootLogin yes

二、重啓sshd服務使配置生效

   /etc/rc.d/init.d/sshd restart


   最後,啓動 SSH 服務使修改生效:
# /etc/init.d/sshd restart 或者 service sshd restart

重啓後確認一下當前的 OpenSSH 和 OpenSSL 是否爲新版:
# ssh -V

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

相關文章
相關標籤/搜索