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):この回答は最近注目を集めており、現在は古くなっている可能性があります。これからはmain
とuniverse
だけが必要だったことを思い出してください。ソースからコンパイルするのではなく、これをパッケージとしてインストールしたいと思いました。見知らぬ人(この場合は私)がどれほど上手くいくかに関係なく、インターネットからランダムにコマンドを入力するときは注意してください。
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)に変更します
再コンパイルについてはすでに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から安全に削除するか、少なくともデーモンを停止して、デーモンを起動から削除します。
安全なシステムに一歩近づきます。
これは、@ 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のおかげで魅力のように機能します!!