Ho ereditato un server pericolosamente obsoleto. Come intendo aggiornarlo in sicurezza?


11

Apticron corre di notte sulla scatola e mi sta dicendo che ho circa 150 aggiornamenti che devono essere fatti. Il server esegue alcuni servizi importanti senza un vero backup, quindi ho paura di iniziare l'aggiornamento. Come dovrei pianificare questo gioco?

Modifica: lsb_release:
ID distributore: Ubuntu
Descrizione: Ubuntu 8.04.3 LTS
Rilascio: 8.04
Nome in codice: 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

1
quale versione di Ubuntu è in esecuzione?
Tarun,

Descrizione: Ubuntu 8.04.3 LTS
jon_brockman,

8
Ti aspetti davvero una risposta in cui non ti verrà detto di fare un backup? :-)
Andrea Corbellini,

Credo che tu abbia bisogno di una risposta più a livello di gestione qui. Senza backup e senza informazioni su servizi e dati, non esiste davvero una risposta specifica da fornire se non "dovresti essere in grado di aggiornare da LTS (8.04) a LTS (10.04) a LTS (12.04)". E sì, basta riparare la parte dei backup. Personalmente, preferirei una nuova installazione, copiando i dati sulla nuova installazione.
gertvdijk,

1
Andrea: Ovviamente mi aspettavo che fare un backup sarebbe stato parte di ogni risposta. Questa, tuttavia, è la parte facile.
jon_brockman,

Risposte:


16

Basato sulle versioni di quei pacchetti, questo sembra essere Ubuntu Hardy 8.04 LTS. Ha più di cinque anni. Nonostante la sua età, il supporto ufficiale è terminato solo a maggio 2013, ma non otterrà più aggiornamenti di sicurezza e questo è un problema.

Le versioni sopra elencate sono state pubblicate nel 2010 e ciò dovrebbe evidenziare l'urgenza del compito da svolgere. Questo server è probabilmente vulnerabile a più exploit remoti.

Si potrebbe tentare di aggiornamenti sul posto di distribuzione a 12.04 (che è supportato fino al 2017), ma questa interruzione mezzi di servizio immediatamente e potrebbe significare rompere le cose. Potrebbero anche essere necessarie un paio di iterazioni per arrivare a 12.04. È solo un'idea disordinata.

Ricomincerei da capo. Nuovo server, nuova installazione di Ubuntu.

  1. Effettua un backup nel caso in cui esploda ma lascia il vecchio server così com'è. Chiunque stia attualmente utilizzando questo server non apprezzerà i tempi di inattività, quindi lasciare quello vecchio è la strada verso colleghi felici e un capo felice.

  2. Installa Ubuntu 12.04 (o qualunque sia l'ultimo LTS al momento della lettura) su un nuovo server (o macchina virtuale, comunque hai impostato le cose). Se questo è uno dei tanti server dell'azienda, potrebbe valere la pena esaminare le tecniche di consolidamento / ridondanza hardware con cui la virtualizzazione funziona bene.

  3. Crea un elenco di cose che ti servono per far funzionare il vecchio server. Quali siti Web ci sono in esecuzione? Quali servizi dipendono dalle persone che forniscono? Quali IP utilizza? L'IP può essere modificato? Come? Dove? Chi interromperà?

    Entro la fine di questa fase dovresti avere un documento che ti dice cosa devi fare.

  4. Installa i pacchetti dal # 3 ma non copiare semplicemente la configurazione precedente.

    È davvero allettante eseguire il port / etc / over dal vecchio server, ma ho già fatto cose simili con PHP e mi ha fatto tornare indietro. Usa le tue osservazioni dal n. 3 e giocando con il vecchio server per creare una nuova configurazione basata sulle migliori pratiche moderne.

  5. Copia i tuoi siti Web e database su.

  6. Prova e correggi. Non ho idea di quanto tempo ci vorrà perché non ho mai aggiornato un sito Web Tomcat prima, ma almeno devi assicurarti che faccia ancora tutto ciò che dovrebbe.

  7. Quando sei contento che funzioni, dovrai copiare nuovamente i dati dal vecchio server (supponendo che le persone lo stiano usando nel frattempo).

  8. Scollegare il vecchio server e gettarlo in mare. O riutilizzarlo. È probabilmente antico e inefficiente, quindi potrebbe non essere una cattiva idea

Come menziona Brendan nei commenti, dovresti generare una tonnellata di documentazione tra i passaggi 3 e 6. Se continui a scrivere quello che stai facendo e perché mentre fai le cose, ti ci vorranno 30 minuti in più ma " Ti lascerò con un piano solido per la prossima volta. Al termine, potrebbero esserci stati passaggi inutili che puoi saltare la prossima volta, quindi assicurati di aggiungere una conclusione.

Sarei anche tentato di rilasciare al proprietario precedente e al suo capo una nota sullo stato del server e su quanto siano pericolosamente trascurati gli aggiornamenti di sicurezza scaduti. Puoi farlo senza sembrare uno strumento che interferisce, ma è facoltativo.


8
"
buttalo

Bene, sembra che morderò il proiettile e creerò un nuovo server. Grazie per l'input.
jon_brockman,

2
Analizzerei anche la virtualizzazione: virtualizza il server così com'è, quindi lo snapshot e ora hai un backup e un parco giochi. Prova cose, successo? istantanea, altrimenti rollback e riprovare. Lo stesso per partire da zero. Prova, istantanea o ripristina.
WernerCD,

4
Questa è un'ottima informazione. L'unica cosa che aggiungerei è che nel passaggio 4, documenta ciò che hai fatto, quindi è più facile per la persona successiva.
Brendan Long,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.