web-dev-qa-db-ja.com

Ubuntu 14.04でのopenSSH 7.2pのアップグレード

Ubuntu 14.04を実行しているサーバーがありますが、PCI要件に問題があります。サーバーにOpenSSH 6.6p1をインストールし、それをOpenSSH 7.2pにアップグレードして、コードを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

最新の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だけが必要だったことを思い出してください。ソースからコンパイルするのではなく、これをパッケージとしてインストールしたいと思いました。見知らぬ人(この場合は私)がどれほど上手くいくかに関係なく、インターネットからランダムにコマンドを入力するときは注意してください。

9
flanger001

buntu 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(untested)に変更します

6
oneklc

再コンパイルについてはすでに2つの回答があります。すでにsshに接続している場合、安全なオプションではないように思われるかもしれません。また、デフォルトでは./configureがUbuntu 14.04 LTSでOpenSSLの1.1.0バージョンを検出するため、OpenSSL 1.0.2と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

そして、ここに秘訣があります:現在の接続が失われないように、2つの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つのsshdが同時に実行されます。この新しく構築されたものと接続してみることができます。完了したら、openssh6.6が不足している古いセキュリティ更新プログラムをaptから安全に削除するか、少なくともデーモンを停止して、デーモンを起動から削除します。

安全なシステムに一歩近づきます。

3
dszakal

Ubuntu LTSを使用している場合は必要ありません。 Ubuntu Security Teamがパッチをプッシュしているようです!詳細 answer

Qualysやnmapのようなツールは、これを理解するのにそれほどスマートではありません。 ubuntuパッケージの変更ログ page [私の場合、パッケージはopenssh-server6.6でした]にアクセスして、パッチが提供されているかどうかを確認できます。

安全のために、パッチを入手するには、Sudo apt-get install --only-upgrade openssh-serverを実行するだけです。

0
Pikesh Prasoon

これは、@ 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のおかげで魅力のように機能します!!

0