Ich habe einen Server mit Ubuntu 14.04, habe aber ein Problem mit den PCI-Anforderungen. Ich habe OpenSSH 6.6p1 auf meinem Server installiert, dann habe ich es auf OpenSSH 7.2p aufgerüstet und den Code mit make kompiliert und direkt aus den Repositorys von OpenSSH installiert nachdem ich dpkg -l openssh\*
überprüft habe:
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
Der PCI-Scanner meldet weiterhin dasselbe Problem, dass ich die neueste Version von OpenSSH installieren muss.
Dies ist die CVI-ID der Ausgabe: CVE-2016-3115
Ich musste auch das neueste OpenSSH installieren, aber ich wollte es über ein Paket installieren, anstatt vom Quellcode zu kompilieren.
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
Es hat für mich funktioniert. (Technisch waren hier nur Haupt und Universum notwendig)
$ ssh -V
OpenSSH_7.3p1 Ubuntu-1, OpenSSL 1.0.2g 1 Mar 2016
Bearbeiten (04.10.2017): Diese Antwort hat in letzter Zeit einige Aufmerksamkeit erhalten und ist möglicherweise nicht mehr aktuell. Denken Sie daran, dass nur main
und universe
notwendig waren, und ich wollte dies speziell als Paket installieren, anstatt vom Quellcode zu kompilieren. Bitte seien Sie vorsichtig mit der Eingabe von zufälligen Befehlen aus dem Internet, egal wie gut der Fremde (in diesem Fall ich) ist!
Auf Ubuntu 16.04 getestet
aktualisiert den ssh-client auf die neueste Version. aktualisiert viele andere Sachen!
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
entfernen Sie das hinzugefügte Repository, damit später keine zusätzlichen Updates erfolgen:
Sudo apt-add-repository --remove 'deb http://old-releases.ubuntu.com/ubuntu yakkety main'
Sudo apt-get update
note: Für 17.04 ändern Sie yakety in pikante (ungeprüft)
Es gibt zwei Antworten, die bereits die Neukompilierung erwähnen. Die Art und Weise, wie sie vorschlagen, klingt vielleicht nicht nach einer sicheren Option, wenn Sie bereits mit ssh verbunden sind. Sie schlagen auch nicht vor, was mit OpenSSL 1.0.2 vs. 1.1.0 zu tun ist. Standardmäßig findet ./configure auf Ubuntu 14.04 LTS die 1.1.0-Version von OpenSSL. Zum Patchen von OpenSSL 7.7-Quellen für die Arbeit mit OpenSSL 1.1.0 verwenden Sie einen Patch:
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
Und hier kommt der Trick: Sie können ZWEI SSHDs haben, damit Sie die aktuelle Verbindung nicht verlieren. Wir installieren diese andere sshd in/opt und ihre Konfiguration befindet sich in/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
Bearbeiten Sie hier den Port, nehmen Sie ihn von 22 bis zum Beispiel 1888 (stellen Sie sicher, dass der Port weitergeleitet/geöffnet/etc ist)
Und jetzt können Sie die neue SSD starten
/opt/sbin/sshd
Stellen Sie sicher, dass beim Neustart (z. B. Systemd) auch diese andere SSH gestartet wird.
Die 2 sshds laufen jetzt gleichzeitig. Sie können versuchen, eine Verbindung mit dem neu erstellten Gerät herzustellen. Wenn Sie fertig sind, können Sie das veraltete und Sicherheitsupdate ohne openssh6.6 sicher aus apt entfernen oder zumindest den Dämon stoppen und den Dämon vom Systemstart entfernen.
Und Sie sind einem sicheren System einen Schritt näher.
Sie brauchen dies nicht, wenn Sie Ubuntu LTS verwenden. Es scheint, als ob das Ubuntu Security Team die Patches an Sie weitergibt! Eine ausführliche Antwort :
Tools wie Qualys und nmap sind nicht besonders klug, dies herauszufinden. Sie können das Ubuntu-Paket changelog page [In meinem Fall war das Paket openssh-server6.6] aufgerufen, um zu sehen, ob der Patch bereitgestellt wurde.
Um maximal sicher zu sein, führen Sie einfach Sudo apt-get install --only-upgrade openssh-server aus, um die Patches zu erhalten.
Dies ist eine Bearbeitung von @ dszakals Kommentar, da ich nicht genau die gleichen Dinge zu tun hatte (Ubuntu 16 hier).
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
Versuchen Sie dann, sich mit Ihren üblichen Anmeldeinformationen anzumelden, es sollte funktionieren.
Nmap-Bericht:
PORT STATE SERVICE VERSION
33333/tcp open ssh OpenSSH 7.7 (protocol 2.0)
Jetzt werden wir die neue SSH an Port 22 übertragen. Ich habe mich an Port 33333 angemeldet, um den alten SSH-Dienst zu deaktivieren, und 33333 in/opt/etc/sshd_config in 22 geändert
Sudo service ssh stop
Sudo nano /opt/etc/sshd_config
Port 22
# Then re-launch the service
Sudo /opt/sbin/sshd
Versuchen Sie dann, sich mit Ihren üblichen Anmeldeinformationen anzumelden, es sollte funktionieren.
Nmap-Bericht:
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.7 (protocol 2.0)
Funktioniert wie ein Zauber, großes Dankeschön an @dszakal !!