Eu herdei um servidor perigosamente desatualizado. Como pretendo atualizá-lo com segurança?

11

O Apticron é executado todas as noites na caixa e está me dizendo que tenho cerca de 150 atualizações que precisam ser feitas. O servidor está executando alguns serviços importantes sem backup verdadeiro, por isso estou com medo de começar a atualizar. Como devo planejar o jogo?

Editar: lsb_release:
ID do Distribuidor: Ubuntu
Descrição: Ubuntu 8.04.3 LTS
Lançamento: 8.04 Nome de código
: 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
fonte
1
qual versão do Ubuntu está sendo executada?
Tarun
Descrição: Ubuntu 8.04.3 LTS
jon_brockman
8
Você realmente espera uma resposta em que não será solicitado que faça um backup? :-)
Andrea Corbellini
Acredito que você precise de uma resposta mais sobre o nível de gerenciamento aqui. Sem backups e nenhuma informação sobre os serviços e dados, não há realmente uma resposta específica a ser fornecida, exceto "você deve poder atualizar do LTS (8.04) para LTS (10.04) para LTS (12.04)". E sim, basta consertar a parte dos backups. Pessoalmente, eu preferiria uma nova instalação, copiei os dados para a nova instalação.
precisa saber é o seguinte
1
Andrea: Obviamente, esperava que fazer um backup fizesse parte de todas as respostas. Essa, no entanto, é a parte mais fácil.
precisa saber é o seguinte

Respostas:

16

Com base nas versões desses pacotes, este parece ser o Ubuntu Hardy 8.04 LTS. Isso tem mais de cinco anos. Apesar de sua idade, o suporte oficial foi encerrado em maio de 2013, mas nunca mais receberá atualizações de segurança e isso é um problema.

As versões listadas acima foram publicadas em 2010 e devem destacar a urgência da tarefa em questão. Esse servidor provavelmente está vulnerável a várias explorações remotas.

Você pode tentar atualizações de distribuição no local para 12.04 (que é suportado até 2017), mas isso significa interrupção do serviço imediatamente e pode significar falhas. Também pode levar algumas iterações para chegar ao 12.04. É apenas uma ideia bagunçada.

Eu começaria de novo. Novo servidor, nova instalação do Ubuntu.

  1. Faça um backup para o caso de explodir, mas deixe o servidor antigo como está. Quem está usando este servidor no momento não apreciará nenhum tempo de inatividade; portanto, deixar o antigo em atividade é o seu caminho para colegas de trabalho felizes e um chefe feliz.

  2. Instale o Ubuntu 12.04 (ou qualquer que seja o LTS mais recente no momento da leitura) em um novo servidor (ou máquina virtual, no entanto, você já configurou as coisas). Se este é um dos muitos servidores da empresa, pode valer a pena examinar as técnicas de consolidação / redundância de hardware com as quais a virtualização funciona bem.

  3. Crie uma lista de itens necessários para trabalhar no servidor antigo. Quais sites existem nele? De quais serviços as pessoas dependem da prestação? Quais IPs ele usa? O IP pode ser alterado? Quão? Onde? Quem isso atrapalha?

    No final desta etapa, você deverá ter um documento informando o que precisa fazer.

  4. Instale os pacotes do nº 3, mas não copie simplesmente a configuração antiga avançada.

    É realmente tentador portar / etc / over do servidor antigo, mas já fiz coisas semelhantes com o PHP antes e isso me atrasou dias. Use suas observações do ponto 3 e de brincar com o servidor antigo para criar uma nova configuração com base nas práticas recomendadas modernas.

  5. Copie seus sites e bancos de dados.

  6. Teste e corrija. Não tenho idéia de quanto tempo isso levará, porque nunca atualizei um site do Tomcat antes, mas pelo menos você precisa garantir que ele ainda faça tudo o que deveria.

  7. Quando estiver satisfeito, ele funcionará, você precisará copiar os dados novamente do servidor antigo (supondo que as pessoas o usem nesse meio tempo).

  8. Desconecte o servidor antigo e jogue-o no mar. Ou redirecione-o. Provavelmente é antigo e ineficiente, por isso pode não ser uma má ideia

Como Brendan menciona nos comentários, você deve gerar uma tonelada de documentação entre as etapas 3 e 6. Se você continuar escrevendo o que está fazendo e por que, ao fazer as coisas, levará 30 minutos a mais, mas Vou deixar você com um plano sólido para a próxima vez. Quando terminar, pode haver etapas desnecessárias que você pode pular da próxima vez. Portanto, adicione uma conclusão.

Eu também ficaria tentado a enviar ao proprietário anterior e ao chefe deles uma observação sobre o estado do servidor e o quão perigosamente negligentes são as atualizações de segurança. Você pode fazer isso sem parecer uma ferramenta interferente, mas isso é opcional.

Oli
fonte
8
"lançá-lo no mar" :)
don.joey
Bem, parece que vou morder a bala e construir um novo servidor. Obrigado pela contribuição.
precisa saber é o seguinte
2
Eu também examinaria a virtualização - virtualize o servidor como está e, em seguida, faça um instantâneo e agora você tem um backup e um playground. Tente coisas, sucesso? instantâneo, caso contrário, tente novamente. O mesmo para começar do zero. Tente, instantâneo ou reverter.
WernerCD
4
Esta é uma ótima informação. A única coisa que eu acrescentaria é que na etapa 4, documente o que você fez, para que seja mais fácil para a próxima pessoa.
Brendan Longo