天天看點

linux更新ssh到6.6版本,centos6.6更新openssh到最新版本7.5.p1

本文主要簡單記錄下openssh更新步驟,及一鍵更新腳本。

安裝編譯所需工具包

yum install gcc pam-devel zlib-devel

一、更新原因

7.4以下openssh版本存在嚴重漏洞:

1.OpenSSH 遠端權限提升漏洞(CVE-2016-10010)

2.OpenSSH J-PAKE授權問題漏洞(CVE-2010-4478)

3.Openssh MaxAuthTries限制繞過漏洞(CVE-2015-5600)

OpenSSL>=1.0.1可以不用更新OpenSSL

二、安裝telnet服務

1.安裝軟體# yum -y install telnet-server* telnet

2.啟用telnet服務# vi /etc/xinetd.d/telnet

将其中disable字段的yes改為no以啟用telnet服務

# mv /etc/securetty /etc/securetty.old    #允許root使用者通過telnet登入

# service xinetd start                    #啟動telnet服務

# chkconfig xinetd on                     #使telnet服務開機啟動,避免更新過程中伺服器意外重新開機後無法遠端登入系統

3.測試telnet能否正常登入系統

三、更新OpenSSH

1.備份目前opensshmv /etc/ssh /etc/ssh.old

mv /etc/init.d/sshd /etc/init.d/sshd.old

2.解除安裝目前openssh# rpm -qa | grep openssh

openssh-clients-5.3p1-104.el6.x86_64

openssh-server-5.3p1-104.el6.x86_64

openssh-5.3p1-104.el6.x86_64

openssh-askpass-5.3p1-104.el6.x86_64

# rpm -e --nodeps openssh-5.3p1-104.el6.x86_64

# rpm -e --nodeps openssh-server-5.3p1-104.el6.x86_64

# rpm -e --nodeps openssh-clients-5.3p1-104.el6.x86_64

# rpm -e --nodeps openssh-askpass-5.3p1-104.el6.x86_64

# rpm -qa | grep openssh

注意:解除安裝過程中如果出現以下錯誤

[[email protected] openssh-7.5p1]# rpm -e --nodeps openssh-server-5.3p1-104.el6.x86_64

error reading information on service sshd: No such file or directory

error: %preun(openssh-server-5.3p1-104.el6.x86_64) scriptlet failed, exit status 1

解決方法:

# rpm -e --noscripts openssh-server-5.3p1-104.el6.x86_64

3.openssh安裝前環境配置# install -v -m700 -d /var/lib/sshd

# chown -v root:sys /var/lib/sshd

目前系統sshd使用者已經存在的話以下不用操作

# groupadd -g 50 sshd

# useradd -c 'sshd PrivSep' -d /var/lib/sshd -g sshd -s /bin/false -u 50 sshd

4.解壓openssh_7.5p1源碼并編譯安裝# tar -zxvf openssh-7.5p1.tar.gz

# cd openssh-7.5p1

# ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-zlib --with-openssl-includes=/usr --with-privsep-path=/var/lib/sshd

# make

# make install

5.openssh安裝後環境配置# 在openssh編譯目錄執行如下指令

# install -v -m755    contrib/ssh-copy-id /usr/bin

# install -v -m644    contrib/ssh-copy-id.1 /usr/share/man/man1

# install -v -m755 -d /usr/share/doc/openssh-7.5p1

# install -v -m644    INSTALL LICENCE OVERVIEW README* /usr/share/doc/openssh-7.5p1

# ssh -V              #驗證是否更新成功

6.啟用OpenSSH服務# 在openssh編譯目錄執行如下目錄

# echo 'X11Forwarding yes' >> /etc/ssh/sshd_config

# echo "PermitRootLogin yes" >> /etc/ssh/sshd_config   #允許root使用者通過ssh登入

# cp -p contrib/redhat/sshd.init /etc/init.d/sshd

# chmod +x /etc/init.d/sshd

# chkconfig  --add  sshd

# chkconfig  sshd  on

# chkconfig  --list  sshd

# service sshd restart

注意:如果更新操作一直是在ssh遠端會話中進行的,上述sshd服務重新開機指令可能導緻會話斷開并無法使用ssh再行登入(即ssh未能成功重新開機),此時需要通過telnet登入再執行sshd服務重新開機指令。

7.重新開機系統驗證沒問題後關閉telnet服務# mv /etc/securetty.old /etc/securetty

# chkconfig  xinetd off

# service xinetd stop

如需還原之前的ssh配置資訊,可直接删除更新後的配置資訊,恢複備份。

# rm -rf /etc/ssh

# mv /etc/ssh.old /etc/ssh

附件為一鍵更新腳本,先運作telnetserver.sh,而後在運作更新openssh腳本。