Ich habe einen gefährlich veralteten Server geerbt. Wie plane ich ein sicheres Upgrade?

11

Apticron läuft jede Nacht auf der Box und sagt mir, dass ich ungefähr 150 Updates habe, die vorgenommen werden müssen. Auf dem Server werden einige wichtige Dienste ohne echte Sicherung ausgeführt, daher habe ich Angst, nur mit der Aktualisierung zu beginnen. Wie soll ich das planen?

Edit: lsb_release:
Distributor ID: Ubuntu
Beschreibung: Ubuntu 8.04.3 LTS
Release: 8.04
Codename: hardy

The following packages are currently pending an upgrade:

apache2 2.2.8-1ubuntu0.25
apache2.2-common 2.2.8-1ubuntu0.25
apache2-mpm-prefork 2.2.8-1ubuntu0.25
apache2-utils 2.2.8-1ubuntu0.25
apparmor 2.1+1075-0ubuntu9.3
apparmor-utils 2.1+1075-0ubuntu9.3
apt 0.7.9ubuntu17.6
apt-utils 0.7.9ubuntu17.6
base-files 4.0.1ubuntu5.8.04.8
bind9-host 1:9.4.2.dfsg.P2-2ubuntu0.12
bsdutils 1:2.13.1-5ubuntu3.1
bzip2 1.0.4-2ubuntu4.2
clamav 0.97.8+dfsg-1ubuntu1.08.04.1
clamav-base 0.97.8+dfsg-1ubuntu1.08.04.1
clamav-freshclam 0.97.8+dfsg-1ubuntu1.08.04.1
curl 7.18.0-1ubuntu2.4
dhcp3-common 3.0.6.dfsg-1ubuntu9.3
dnsutils 1:9.4.2.dfsg.P2-2ubuntu0.12
dpkg 1.14.16.6ubuntu4.2
dpkg-dev 1.14.16.6ubuntu4.2
fuse-utils 2.7.2-1ubuntu2.3
gnupg 1.4.6-2ubuntu5.2
gpgv 1.4.6-2ubuntu5.2
grub 0.97-29ubuntu21.2
gzip 1.3.12-3.2ubuntu0.1
klibc-utils 1.5.7-4ubuntu5
krb5-user 1.6.dfsg.3~beta1-2ubuntu1.8
ldap-utils 2.4.9-0ubuntu0.8.04.5
libapache2-mod-fcgid 1:2.2-1ubuntu0.8.04.1
libapache2-mod-php5 5.2.4-2ubuntu5.27
libapache2-svn 1.5.1dfsg1-1ubuntu2~hardy3
libapr1 1.2.11-1ubuntu0.2
libaprutil1 1.2.12+dfsg-3ubuntu0.3
libbind9-30 1:9.4.2.dfsg.P2-2ubuntu0.12
libbz2-1.0 1.0.4-2ubuntu4.2
libc6 2.7-10ubuntu8.3
libc6-dev 2.7-10ubuntu8.3
libc6-i686 2.7-10ubuntu8.3
libclamav6 0.97.8+dfsg-1ubuntu1.08.04.1
libcupsys2 1.3.7-1ubuntu3.16
libcurl3 7.18.0-1ubuntu2.4
libcurl3-gnutls 7.18.0-1ubuntu2.4
libdbus-1-3 1.1.20-1ubuntu3.9
libdns35 1:9.4.2.dfsg.P2-2ubuntu0.12
libdns36 1:9.4.2.dfsg.P2-2ubuntu0.12
libexpat1 2.0.1-0ubuntu1.2
libexpat1-dev 2.0.1-0ubuntu1.2
libfreetype6 2.3.5-1ubuntu4.8.04.10
libfreetype6-dev 2.3.5-1ubuntu4.8.04.10
libfuse2 2.7.2-1ubuntu2.3
libgc1c2 1:6.8-1.1ubuntu0.1
libgd2-xpm 2.0.35.dfsg-3ubuntu2.1
libgd2-xpm-dev 2.0.35.dfsg-3ubuntu2.1
libgnutls13 2.0.4-1ubuntu2.9
libhtml-parser-perl 3.56-1ubuntu0.1
libisc35 1:9.4.2.dfsg.P2-2ubuntu0.12
libisccc30 1:9.4.2.dfsg.P2-2ubuntu0.12
libisccfg30 1:9.4.2.dfsg.P2-2ubuntu0.12
libkadm55 1.6.dfsg.3~beta1-2ubuntu1.8
libklibc 1.5.7-4ubuntu5
libkrb53 1.6.dfsg.3~beta1-2ubuntu1.8
libkrb5-dev 1.6.dfsg.3~beta1-2ubuntu1.8
liblcms1 1.16-7ubuntu1.3
libldap-2.4-2 2.4.9-0ubuntu0.8.04.5
liblwres30 1:9.4.2.dfsg.P2-2ubuntu0.12
libmysqlclient15off 5.0.96-0ubuntu3
libpam0g 0.99.7.1-5ubuntu6.5
libpam-modules 0.99.7.1-5ubuntu6.5
libpam-runtime 0.99.7.1-5ubuntu6.5
libpango1.0-0 1.20.5-0ubuntu1.2
libpango1.0-common 1.20.5-0ubuntu1.2
libperl5.8 5.8.8-12ubuntu0.8
libpng12-0 1.2.15~beta5-3ubuntu0.7
libpng12-dev 1.2.15~beta5-3ubuntu0.7
libpq5 8.3.23-0ubuntu8.04.1
libsnmp15 5.4.1~dfsg-4ubuntu4.4
libsnmp-base 5.4.1~dfsg-4ubuntu4.4
libssl0.9.8 0.9.8g-4ubuntu3.20
libssl-dev 0.9.8g-4ubuntu3.20
libsvn1 1.5.1dfsg1-1ubuntu2~hardy3
libsvn-perl 1.5.1dfsg1-1ubuntu2~hardy3
libtasn1-3 1.1-1ubuntu0.1
libthai0 0.1.9-1ubuntu0.2
libthai-data 0.1.9-1ubuntu0.2
libtiff4 3.8.2-7ubuntu3.16
libtomcat5.5-java 5.5.25-5ubuntu1.3
libwww-perl 5.808-1ubuntu0.1
libxml2 2.6.31.dfsg-2ubuntu1.12
libxml2-dev 2.6.31.dfsg-2ubuntu1.12
libxslt1.1 1.1.22-1ubuntu1.4
libxslt1-dev 1.1.22-1ubuntu1.4
linux-image-2.6.24-32-server 2.6.24-32.107
linux-image-server 2.6.24.32.34
linux-libc-dev 2.6.24-32.107
linux-server 2.6.24.32.34
linux-ubuntu-modules-2.6.24-32-server 2.6.24-32.52
logrotate 3.7.1-3ubuntu0.8.04.1
mount 2.13.1-5ubuntu3.1
mysql-client-5.0 5.0.96-0ubuntu3
mysql-common 5.0.96-0ubuntu3
mysql-server 5.0.96-0ubuntu3
mysql-server-5.0 5.0.96-0ubuntu3
nagios-plugins 1.4.11-1ubuntu5.1
nagios-plugins-basic 1.4.11-1ubuntu5.1
nagios-plugins-extra 1.4.11-1ubuntu5.1
nagios-plugins-standard 1.4.11-1ubuntu5.1
nfs-common 1:1.1.2-2ubuntu2.4
nscd 2.7-10ubuntu8.3
ntp 1:4.2.4p4+dfsg-3ubuntu2.3
ntpdate 1:4.2.4p4+dfsg-3ubuntu2.3
openssh-client 1:4.7p1-8ubuntu3
openssh-server 1:4.7p1-8ubuntu3
openssl 0.9.8g-4ubuntu3.20
perl 5.8.8-12ubuntu0.8
perl-base 5.8.8-12ubuntu0.8
perl-doc 5.8.8-12ubuntu0.8
perl-modules 5.8.8-12ubuntu0.8
php5 5.2.4-2ubuntu5.27
php5-cli 5.2.4-2ubuntu5.27
php5-common 5.2.4-2ubuntu5.27
php5-curl 5.2.4-2ubuntu5.27
php5-dev 5.2.4-2ubuntu5.27
php5-gd 5.2.4-2ubuntu5.27
php5-ldap 5.2.4-2ubuntu5.27
php5-mysql 5.2.4-2ubuntu5.27
php5-sybase 5.2.4-2ubuntu5.27
php5-tidy 5.2.4-2ubuntu5.27
phpmyadmin 4:2.11.3-1ubuntu1.3
postfix 2.5.1-2ubuntu1.4
python2.5 2.5.2-2ubuntu6.2
python2.5-dev 2.5.2-2ubuntu6.2
python2.5-minimal 2.5.2-2ubuntu6.2
python-apt 0.7.4ubuntu7.7
python-libxml2 2.6.31.dfsg-2ubuntu1.12
python-subversion 1.5.1dfsg1-1ubuntu2~hardy3
samba-doc 3.0.28a-1ubuntu4.18
snmp 5.4.1~dfsg-4ubuntu4.4
ssh 1:4.7p1-8ubuntu3
subversion 1.5.1dfsg1-1ubuntu2~hardy3
subversion-tools 1.5.1dfsg1-1ubuntu2~hardy3
sudo 1.6.9p10-1ubuntu3.10
sun-java5-bin 1.5.0-22-0ubuntu0.8.04
sun-java5-demo 1.5.0-22-0ubuntu0.8.04
sun-java5-jdk 1.5.0-22-0ubuntu0.8.04
sun-java5-jre 1.5.0-22-0ubuntu0.8.04
tomcat5.5 5.5.25-5ubuntu1.3
tomcat5.5-admin 5.5.25-5ubuntu1.3
tomcat5.5-webapps 5.5.25-5ubuntu1.3
tzdata 2012e~repack-0ubuntu0.8.04
update-manager-core 1:0.87.33
util-linux 2.13.1-5ubuntu3.1
util-linux-locales 2.13.1-5ubuntu3.1
w3m 0.5.1-5.1ubuntu1.1
wget 1.10.2-3ubuntu1.2
x11-xserver-utils 7.3+2ubuntu0.1
jon_brockman
quelle
1
Welche Version von Ubuntu läuft?
Tarun
Beschreibung: Ubuntu 8.04.3 LTS
jon_brockman
8
Erwarten Sie wirklich eine Antwort, bei der Sie nicht aufgefordert werden, ein Backup zu erstellen? :-)
Andrea Corbellini
Ich glaube, Sie brauchen hier eine Antwort mehr auf Managementebene. Ohne Backups und ohne Informationen zu den Diensten und Daten gibt es keine konkrete Antwort außer "Sie sollten in der Lage sein, ein Upgrade von LTS (8.04) auf LTS (10.04) auf LTS (12.04) durchzuführen". Und ja, reparieren Sie einfach den Backup-Teil. Persönlich würde ich eine Neuinstallation bevorzugen, die Daten auf die Neuinstallation kopiert.
Gertvdijk
1
Andrea: Ich hatte natürlich erwartet, dass ein Backup Teil jeder Antwort sein würde. Das ist jedoch der einfache Teil.
Jon_brockman

Antworten:

16

Basierend auf den Versionen dieser Pakete scheint dies Ubuntu Hardy 8.04 LTS zu sein. Das ist über fünf Jahre alt. Trotz seines Alters endete der offizielle Support erst im Mai 2013, aber es wird nie mehr Sicherheitsupdates geben, und das ist ein Problem.

Die oben aufgeführten Versionen wurden 2010 veröffentlicht und sollten die Dringlichkeit der vorliegenden Aufgabe unterstreichen. Dieser Server ist wahrscheinlich anfällig für mehrere Remote-Exploits.

Sie könnten versuchen, ein direktes Distributions-Upgrade auf 12.04 durchzuführen (was bis 2017 unterstützt wird). Dies bedeutet jedoch eine sofortige Unterbrechung des Dienstes und kann dazu führen, dass Probleme auftreten. Es kann auch einige Iterationen dauern, bis der 12.04 erreicht ist. Es ist nur eine unordentliche Idee.

Ich würde neu anfangen. Neuer Server, neue Ubuntu-Installation.

  1. Erstellen Sie ein Backup für den Fall, dass es nur explodiert, aber lassen Sie den alten Server ansonsten unverändert. Wer diesen Server derzeit nutzt, wird keine Ausfallzeiten zu schätzen wissen. Wenn Sie also den alten Server nicht verwenden, sind Sie auf dem Weg zu glücklichen Mitarbeitern und einem glücklichen Chef.

  2. Installieren Sie Ubuntu 12.04 (oder was auch immer das neueste LTS zum Zeitpunkt des Lesens ist) auf einem neuen Server (oder einer virtuellen Maschine, wie auch immer Sie die Dinge eingerichtet haben). Wenn dies einer von vielen Servern im Unternehmen ist, lohnt es sich möglicherweise, sich mit Hardwarekonsolidierungs- / Redundanztechniken zu befassen, mit denen die Virtualisierung gut funktioniert.

  3. Erstellen Sie eine Liste der Dinge, die Sie benötigen, um vom alten Server aus arbeiten zu können. Welche Websites laufen darauf? Welche Dienstleistungen hängen die Menschen davon ab? Welche IPs werden verwendet? Kann die IP geändert werden? Wie? Wo? Wer wird das stören?

    Am Ende dieser Phase sollten Sie ein Dokument haben, das Ihnen sagt, was Sie tun müssen.

  4. Installieren Sie die Pakete von # 3, aber kopieren Sie nicht einfach die alte Konfiguration weiter.

    Es ist wirklich verlockend, / etc / over vom alten Server zu portieren, aber ich habe schon ähnliche Dinge mit PHP gemacht und es hat mich Tage zurückgeworfen. Verwenden Sie Ihre Beobachtungen aus Nummer 3 und das Herumspielen mit dem alten Server, um eine neue Konfiguration zu erstellen, die auf modernen Best Practices basiert.

  5. Kopieren Sie Ihre Websites und Datenbanken über.

  6. Testen und beheben. Ich habe keine Ahnung, wie lange dies dauern wird, da ich noch nie zuvor eine Tomcat-Website aktualisiert habe, aber zumindest müssen Sie sicherstellen, dass sie immer noch alles tut, was sie soll.

  7. Wenn Sie zufrieden sind, müssen Sie die Daten erneut vom alten Server kopieren (vorausgesetzt, die Benutzer haben sie inzwischen verwendet).

  8. Trennen Sie den alten Server vom Stromnetz und werfen Sie ihn ins Meer. Oder verwenden Sie es erneut. Es ist wahrscheinlich uralt und ineffizient, daher ist es möglicherweise keine schlechte Idee

Wie Brendan in den Kommentaren erwähnt, sollten Sie zwischen den Schritten 3 und 6 eine Menge Dokumentation erstellen. Wenn Sie einfach weiter aufschreiben, was Sie tun und warum, während Sie Dinge tun, dauert es 30 Minuten länger, aber es dauert Ich werde Ihnen einen soliden Plan für das nächste Mal hinterlassen. Wenn Sie fertig sind, gab es möglicherweise unnötige Schritte, die Sie beim nächsten Mal überspringen können. Stellen Sie daher sicher, dass Sie eine Schlussfolgerung hinzufügen.

Ich wäre auch versucht, dem Vorbesitzer und seinem Chef eine Notiz über den Status des Servers und darüber zu hinterlassen, wie gefährlich fahrlässig abgelaufene Sicherheitsupdates sind. Sie können dies tun, ohne wie ein störendes Werkzeug zu klingen, aber das ist optional.

Oli
quelle
8
"wirf es ins Meer" :)
don.joey
Klingt so, als würde ich in die Kugel beißen und einen neuen Server bauen. Danke für die Eingabe.
Jon_brockman
2
Ich würde mich auch mit Virtualisierung befassen - Virtualisieren Sie den Server so wie er ist, dann Snapshot und Sie haben jetzt ein Backup und einen Spielplatz. Sachen probieren, Erfolg? Schnappschuss, sonst Rollback und erneut versuchen. Gleiches gilt für den Neuanfang. Versuchen Sie, Snapshot oder Zurücksetzen.
WernerCD
4
Das sind großartige Informationen. Das einzige, was ich hinzufügen möchte, ist, dass Sie in Schritt 4 dokumentieren, was Sie getan haben, damit es für die nächste Person einfacher ist.
Brendan Long