在ubuntu 14.04中升级openSSH 7.2p

时间:2016-04-06 14:21:38

标签: ubuntu ssh upgrade openssh pci-compliance

我有一台运行Ubuntu 14.04的服务器,但我有PCI要求的问题。我已经在我的服务器上安装了OpenSSH 6.6p1,然后我将其升级到OpenSSH 7.2p,使用 make编译代码并直接从OpenSSH的存储库进行安装,但似乎有些东西被打破,因为我继续得到检查dpkg -l openssh\*后的旧版本:

ii openssh-client 1:6.6p1-2ubunt amd64 secure shell (SSH) client, 
ii openssh-server 1:6.6p1-2ubunt amd64 secure shell (SSH) server,
ii openssh-sftp-serve 1:6.6p1-2ubunt amd64 secure shell (SSH) sftp server 

PCI扫描仪继续报告我必须安装最新版本的OpenSSH的相同问题。

这是问题的CVI ID:CVE-2016-3115

6 个答案:

答案 0 :(得分:9)

我也需要安装最新的OpenSSH,但我想通过包安装它而不是从源代码编译。

sudo apt-add-repository 'deb http://archive.ubuntu.com/ubuntu yakkety main universe multiverse'
sudo apt-get update
sudo apt-get install openssh-server=1:7.3p1-1

它对我有用。 (技术上只需要主要和宇宙)

$ ssh -V
OpenSSH_7.3p1 Ubuntu-1, OpenSSL 1.0.2g  1 Mar 2016

编辑(2017-10-04):这个答案最近受到了一些关注,现在可能已经过时了。请记住,此时只需要mainuniverse,我特别想将其作为包安装而不是从源代码编译。无论陌生人(在这种情况下是我)的意义如何,请小心从互联网输入随机命令!

答案 1 :(得分:5)

在Ubuntu 16.04上测试

将ssh-client升级到最新版本。 更新许多其他内容!

sudo apt-add-repository 'deb http://old-releases.ubuntu.com/ubuntu yakkety main universe multiverse'
sudo apt-get update
sudo apt-get install openssh-server=1:7.4p1-10

删除已添加的存储库,以免以后再进行其他更新:

sudo apt-add-repository --remove 'deb http://old-releases.ubuntu.com/ubuntu yakkety main'
sudo apt-get update

注意: 对于17.04,将yakety更改为zesty(未试用)

答案 2 :(得分:3)

有两个答案已经提到重新编译。如果你已经与ssh连接,他们建议它的方式听起来可能不是一个安全的选择。他们也没有建议如何处理OpenSSL 1.0.2 vs 1.1.0问题,默认情况下./configure在Ubuntu 14.04 LTS上发现了OpenSSL的1.1.0版本。要修补OpenSSL 7.7源以使用OpenSSL 1.1.0,这里有一个补丁:

http://www.linuxfromscratch.org/blfs/view/svn/postlfs/openssh.html

wget http://mirror.exonetric.net/pub/OpenBSD/OpenSSH/portable/openssh-7.7p1.tar.gz
tar -zxvf openssh-7.7p1.tar.gz
cd openssh-7.7p1
wget http://www.linuxfromscratch.org/patches/blfs/svn/openssh-7.7p1-openssl-1.1.0-1.patch
patch -Np1 -i ./openssh-7.7p1-openssl-1.1.0-1.patch

这就是诀窍:你可以拥有两个SSHD,这样你就不会失去当前的连接。我们将其他sshd安装到/ opt,其配置将在/ opt / etc

./configure --prefix=/opt
make ## in the end make will write where it will install, double check everything will go to /opt
make install
nano /opt/etc/ssh/sshd_config

在这里编辑端口,将它从22转到例如1888(确保端口被转发/打开/等)

现在你可以开始新的sshd

/opt/sbin/sshd

确保重新启动时(例如systemd)也会启动另一个ssh。

2个sshds现在同时运行。您可以尝试连接这个新建的。完成后,您可以安全地从apt中删除缺少openssh6.6的过时和安全更新,或者至少停止守护程序并从启动中删除守护程序。

您离安全系统更近了一步。

答案 3 :(得分:0)

这是来自@ dszakal评论的编辑,因为我没有完全相同的事情要做(这里是Ubuntu 16)。

cd
wget http://mirror.exonetric.net/pub/OpenBSD/OpenSSH/portable/openssh-7.7p1.tar.gz
tar -zxvf openssh-7.7p1.tar.gz
cd openssh-7.7p1
wget http://www.linuxfromscratch.org/patches/blfs/svn/openssh-7.7p1-openssl-1.1.0-1.patch
patch -Np1 -i ./openssh-7.7p1-openssl-1.1.0-1.patch
./configure --prefix=/opt
make
sudo make install
cp ~/openssh-7.7p1/sshd_config /opt/etc/
cp ~/openssh-7.7p1/ssh_config /opt/etc/

sudo nano /opt/etc/sshd_config

# Uncomment the lines I wrote below
---------------------------------------------
Port 33333 # You can change the port here
AddressFamily any
ListenAddress 0.0.0.0
ListenAddress ::

HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key

PasswordAuthentication yes
PermitEmptyPasswords no
---------------------------------------------

# Then launch the service
sudo /opt/sbin/sshd

然后尝试使用您的常规凭据登录,它应该可以正常工作。

Nmap报告:

PORT      STATE SERVICE VERSION
33333/tcp open  ssh     OpenSSH 7.7 (protocol 2.0) 

现在我们将新的SSH转移到端口22.我登录了端口33333以禁用旧的SSH服务&在/ opt / etc / sshd_config中将33333更改为22

sudo service ssh stop
sudo nano /opt/etc/sshd_config
Port 22

# Then re-launch the service
sudo /opt/sbin/sshd

然后尝试使用您的常规凭据登录,它应该可以正常工作。

Nmap报告:

PORT      STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 7.7 (protocol 2.0) 

非常感谢@dszakal !!

答案 4 :(得分:0)

如果您正在使用Ubuntu LTS,则不需要。似乎Ubuntu安全团队正在向您推送补丁!详细的answer

Qualys和nmap之类的工具并不聪明,无法弄清楚。您可以访问ubuntu软件包changelog page [对于我来说,该软件包是openssh-server6.6]以查看是否已提供补丁。

为了安全起见,只需执行sudo apt-get install --only-upgrade openssh-server即可获取补丁。

答案 5 :(得分:-5)

使用以下内容更新至最新版本:

wget http://mirror.exonetric.net/pub/OpenBSD/OpenSSH/portable/openssh-7.5p1.tar.gz
tar -zxvf openssh-7.5p1.tar.gz
cd openssh-7.5p1
./configure
make
sudo make install