Я успадкував небезпечно застарілий сервер. Як я планую безпечно оновити його?


11

Apticron працює щоночі по коробці і каже мені, що у мене є близько 150 оновлень, які потрібно зробити. На сервері працює досить багато важливих сервісів без справжньої резервної копії, тому я боюся просто почати оновлення. Як я повинен запланувати цю гру?

Редагувати: lsb_release:
Ідентифікатор дистриб'ютора: Ubuntu
Опис: Ubuntu 8.04.3 LTS
Реліз: 8.04
Кодове ім'я: 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
яка версія Ubuntu працює?
Тарун

Опис: Ubuntu 8.04.3 LTS
jon_brockman

8
Ви дійсно очікуєте відповіді, де вам не скажуть зробити резервну копію? :-)
Андреа Корбелліні

Я вважаю, що вам потрібна відповідь більше на рівні управління тут. Без резервного копіювання та ніякої інформації про сервіси та дані, насправді не існує конкретної відповіді, окрім "ви повинні мати можливість оновити з LTS (8.04) до LTS (10.04) до LTS (12.04)". І так, просто зафіксуйте резервну частину. Особисто я віддаю перевагу новій установці, скопіювавши дані на нову інсталяцію.
gertvdijk

1
Андреа: Я, звичайно, очікувала, що створення резервної копії буде частиною кожної відповіді. Це, однак, легка частина.
jon_brockman

Відповіді:


16

Виходячи з версій цих пакетів, здається, це Ubuntu Hardy 8.04 LTS. Це понад п’ять років. Незважаючи на свій вік, офіційна підтримка закінчилася лише в травні 2013 року, але оновлення безпеки більше ніколи не буде, і це проблема.

Перелічені вище версії були опубліковані в 2010 році, і це повинно підкреслити актуальність завдання. Цей сервер, ймовірно, вразливий для численних віддалених подвигів.

Ви можете спробувати вбудовані оновлення дистрибуції до 12.04 (що підтримується до 2017 року), але це означає негайне переривання сервісу і може означати, що все порушиться. Також може знадобитися кілька повторень, щоб дістатися до 12.04. Це просто безладна ідея.

Я б почав заново. Новий сервер, нова установка Ubuntu.

  1. Зробіть резервну копію на випадок, якщо вона просто вибухне, але в іншому випадку залиште старий сервер таким, яким він є. Хто зараз не використовує цей сервер, не оцінить простоїв, тому залишення старого - це ваш шлях до щасливих колег та щасливого начальника.

  2. Встановіть Ubuntu 12.04 (або будь-який останній LTS під час читання) на новий сервер (або віртуальну машину, однак у вас все налаштовано). Якщо це один із багатьох серверів компанії, можливо, варто переглянути методи консолідації / резервування апаратних засобів, з якими добре працює віртуалізація.

  3. Створіть список речей, які вам потрібні для роботи зі старого сервера. Які веб-сайти працюють на ньому? Від яких послуг люди залежать від її надання? Які IP-адреси він використовує? Чи можна змінити IP? Як? Де? Хто це зірве?

    До кінця цього етапу у вас повинен бути документ, який говорить вам, що вам потрібно зробити.

  4. Встановіть пакети з №3, але не просто копіюйте вперед стару конфігурацію.

    Це дійсно заманливо порт / і т.д. / Від старого сервера , але я робив подібні речі з PHP раніше , і він поставив мене назад дні. Використовуйте свої спостереження №3 та погравши зі старим сервером, щоб створити нову конфігурацію на основі сучасних найкращих практик.

  5. Скопіюйте свої веб-сайти та бази даних.

  6. Тест і виправлення. Я не маю уявлення, скільки часу це займе, тому що я ніколи не оновлював веб-сайт Tomcat, але, принаймні, вам потрібно переконатися, що він все ще робить все, що належить.

  7. Коли ви щасливі, це працює, вам потрібно буде знову скопіювати дані зі старого сервера (якщо люди тим часом користуються ним).

  8. Відключіть старий сервер і киньте його в море. Або замінити його. Це, мабуть, давнє та неефективне, тому це може бути не поганою ідеєю

Як згадує Брендан у коментарях, ви повинні створити багато документації між кроками 3 та 6. Якщо ви просто продовжуєте записувати, що ви робите, і чому, як ви це робите, це займе у вас 30 хвилин довше, але це " Залишимо вам чіткий план на наступний раз. Коли ви закінчите, можливо, були наступні кроки, які ви можете пропустити наступного разу, тому обов’язково додайте висновок.

Я також спокусився б передати попередньому власникові та їхньому начальнику записку про стан сервера та про те, наскільки небезпечно недбалі оновлені системи безпеки. Це можна зробити, не здаючись інструментом, що заважає, але це необов'язково.


8
"киньте його в море" :)
don.joey

Що ж, звучить так, ніби я кусаю кулю і будую новий сервер. Дякуємо за вклад.
jon_brockman

2
Я також розглядаю віртуалізацію - віртуалізуйте сервер таким, який є, потім знімок, і тепер у вас є резервна копія та ігровий майданчик. Спробуйте речі, успіх? знімок, ще відкат та спробуйте ще раз. Те саме, що починати з нуля. Спробуйте, зробіть знімок або поверніть назад.
WernerCD

4
Це чудова інформація. Єдине, що я хочу додати, це те, що на кроці 4 задокументуйте, що ви зробили, щоб наступній людині було легше.
Брендан Лонг
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.