Saya telah mewarisi server yang ketinggalan zaman. Bagaimana saya berencana untuk memutakhirkannya dengan aman?

11

Apticron beroperasi setiap malam di kotak dan memberi tahu saya bahwa saya memiliki sekitar 150 pembaruan yang perlu dibuat. Server menjalankan beberapa layanan penting tanpa cadangan yang sebenarnya jadi saya takut untuk mulai memperbarui. Bagaimana saya harus merencanakan permainan ini?

Sunting: lsb_release:
ID Distributor: Ubuntu
Keterangan: Ubuntu 8.04.3 LTS
Rilis: 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
sumber
1
Ubuntu versi apa yang sedang berjalan?
Tarun
Deskripsi: Ubuntu 8.04.3 LTS
jon_brockman
8
Apakah Anda benar-benar mengharapkan jawaban di mana Anda tidak akan diberitahu untuk membuat cadangan? :-)
Andrea Corbellini
Saya yakin Anda perlu jawaban lebih lanjut tentang level manajemen di sini. Tanpa cadangan dan tidak ada informasi tentang layanan dan data, tidak ada jawaban khusus untuk memberikan selain "Anda harus dapat meningkatkan dari LTS (8,04) ke LTS (10,04) ke LTS (12,04)". Dan ya, perbaiki bagian cadangan. Secara pribadi, saya lebih suka instalasi baru, menyalin data ke instalasi baru.
gertvdijk
1
Andrea: Tentu saja saya berharap membuat cadangan akan menjadi bagian dari setiap respons. Namun, itu adalah bagian yang mudah.
jon_brockman

Jawaban:

16

Berdasarkan versi paket-paket itu, ini tampaknya Ubuntu Hardy 8.04 LTS. Itu lebih dari lima tahun. Meskipun usianya sudah tua, dukungan resmi hanya berakhir pada Mei 2013 tetapi tidak akan mendapatkan pembaruan keamanan lagi dan itu merupakan masalah.

Versi yang tercantum di atas diterbitkan pada 2010 dan harus menyoroti urgensi tugas yang ada. Server ini mungkin rentan terhadap banyak eksploitasi jarak jauh.

Anda dapat mencoba pemutakhiran distribusi di tempat ke 12,04 (yang didukung hingga 2017) tetapi ini berarti gangguan layanan segera dan dapat berarti hal-hal rusak. Bisa juga butuh beberapa iterasi untuk mencapai 12,04. Itu hanya ide yang berantakan.

Saya akan memulai dari awal. Server baru, instal Ubuntu baru.

  1. Buat cadangan untuk berjaga-jaga kalau-kalau itu hanya meledak tetapi jika tidak biarkan server lama seperti itu. Siapa pun yang saat ini menggunakan server ini tidak akan menghargai downtime sehingga meninggalkan yang lama ke atas adalah rute Anda ke rekan kerja yang bahagia dan bos yang bahagia.

  2. Instal Ubuntu 12.04 (atau apa pun LTS terbaru pada saat membaca) di server baru (atau mesin virtual, namun Anda sudah menyiapkan beberapa hal). Jika ini adalah salah satu dari banyak server di perusahaan, mungkin ada baiknya melihat teknik konsolidasi / redundansi perangkat keras yang bekerja dengan baik dengan virtualisasi.

  3. Buat daftar hal-hal yang Anda perlukan untuk bekerja dari server lama. Situs web apa yang berjalan di sana? Layanan apa yang orang andalkan berikan? IP apa yang digunakan? Bisakah IP diubah? Bagaimana? Dimana? Siapa yang akan mengganggu itu?

    Pada akhir tahap ini Anda harus memiliki dokumen yang memberi tahu Anda apa yang perlu Anda lakukan.

  4. Instal paket dari # 3 tetapi jangan hanya menyalin maju konfigurasi lama.

    Ini benar - benar menggoda ke port / etc / over dari server lama tapi saya sudah melakukan hal yang sama dengan PHP sebelumnya dan itu membuat saya mundur beberapa hari. Gunakan pengamatan Anda dari # 3 dan dari bermain-main dengan server lama untuk membangun baru konfigurasi baru berdasarkan praktik terbaik modern.

  5. Salin situs web dan basis data Anda.

  6. Tes dan perbaiki. Saya tidak tahu berapa lama ini akan terjadi karena saya belum pernah memutakhirkan situs web Tomcat sebelumnya, tetapi paling tidak Anda perlu memastikan masih melakukan semua yang seharusnya.

  7. Ketika Anda senang itu berfungsi, Anda harus menyalin data lagi dari server lama (dengan asumsi orang telah menggunakannya sementara itu).

  8. Cabut server lama dan lemparkan ke laut. Atau gunakan kembali. Ini mungkin kuno dan tidak efisien sehingga mungkin bukan ide yang buruk

Seperti yang Brendan sebutkan dalam komentar, Anda harus menghasilkan satu ton dokumentasi antara langkah 3 dan 6. Jika Anda terus menuliskan apa yang Anda lakukan dan mengapa saat Anda melakukan sesuatu, itu akan memakan waktu 30 menit lebih lama tetapi itu ' akan meninggalkan Anda dengan rencana yang solid untuk waktu berikutnya. Setelah selesai, mungkin ada langkah-langkah yang tidak perlu yang bisa Anda lewatkan di waktu berikutnya jadi pastikan Anda menambahkan kesimpulan.

Saya juga akan tergoda untuk memberikan catatan kepada pemilik sebelumnya dan bos mereka tentang keadaan server dan betapa berbahayanya pembaruan keamanan yang lalai. Anda dapat melakukan ini tanpa terdengar seperti alat yang mengganggu tapi itu opsional.

Oli
sumber
8
"melemparkannya ke laut" :)
don.joey
Yah, sepertinya saya akan menggigit peluru dan membangun server baru. Terima kasih atas masukannya.
jon_brockman
2
Saya juga akan melihat ke dalam virtualisasi - Virtualisasikan server apa adanya, lalu snapshot dan sekarang Anda memiliki cadangan dan taman bermain. Coba barang, sukses? snapshot, kembalikan lagi dan coba lagi. Sama untuk memulai dari awal. Coba, Jepret, atau kembalikan.
WernerCD
4
Ini informasi yang bagus. Satu-satunya hal yang saya tambahkan adalah pada langkah 4, dokumentasikan apa yang Anda lakukan sehingga lebih mudah bagi orang berikutnya.
Brendan Long