危険なほど古くなったサーバーを継承しました。安全にアップグレードするにはどうすればよいですか?


11

Apticronはボックスで毎晩実行され、約150の更新が必要であると言っています。サーバーは真のバックアップなしでかなりの数の重要なサービスを実行しているので、更新を始めるのが怖いです。これをどのように計画するべきですか?

編集: lsb_release:
ディストリビューターID: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のようです。それは5歳以上です。その年齢にもかかわらず、公式サポートは2013年5月に終了しましたが、セキュリティ更新プログラムを入手することはできなくなり、これは問題です。

上記のバージョンは2010年に公開されたもので、手近なタスクの緊急性を強調するものです。このサーバーは、おそらく複数のリモートエクスプロイトに対して脆弱です。

12.04(2017年までサポートされます)へのインプレースディストリビューションアップグレードを試みることもできますが、これはサービスの即時中断を意味し、問題が発生する可能性があります。また、12.04に達するまでに数回の反復が必要になる場合があります。それは単なる厄介なアイデアです。

もう一度始めましょう。新しいサーバー、新しいUbuntuのインストール。

  1. 爆発した場合に備えてバックアップを作成しますが、それ以外の場合は古いサーバーをそのままにします。現在このサーバーを使用している人はダウンタイムを認めないので、古いサーバーを残しておくと、幸せな同僚や上司になります。

  2. Ubuntu 12.04(または最新のLTSを読んでいる時点のもの)を新しいサーバー(または仮想マシン、ただし設定が完了しているもの)にインストールします。これが会社の多数のサーバーの1つである場合、仮想化がうまく機能するハードウェアの統合/冗長化の手法を検討する価値があります。

  3. 古いサーバーから作業するために必要なもののリストを作成します。どのWebサイトで実行されていますか?人々はどのサービスを提供することに依存していますか?どのIPを使用しますか?IPを変更できますか?どうやって?どこ?誰が混乱させるのでしょうか?

    この段階の終わりまでに、あなたが何をする必要があるかをあなたに伝える文書を手に入れるべきです。

  4. #3からパッケージをインストールしますが、単に古い構成を前方にコピーしないでください。

    古いサーバーから/ etc /を移植するのは本当に魅力的ですが、PHPで同様のことを以前に行ったことがあるので、数日遅れました。#3の観察結果と古いサーバーで遊んだ結果を使用して、最新のベストプラクティスに基づいて新しい構成を構築します。

  5. Webサイトとデータベースをコピーします。

  6. テストと修正。Tomcat Webサイトをアップグレードしたことがないので、これにどれくらい時間がかかるかはわかりませんが、少なくとも、想定されているすべてのことを確実に行う必要があります。

  7. うまくいったら、古いサーバーからデータを再度コピーする必要があります(その間にデータが使用されていると仮定します)。

  8. 古いサーバーを取り外し、海に投げ入れます。またはそれを再利用します。おそらく古くて効率が悪いので、それは悪い考えではないかもしれません

Brendanがコメントで言及しているように、ステップ3と6の間に大量のドキュメントを生成する必要があります。何をしているのか、何をするのかを書き留めるだけでは、30分長くかかりますが、次回のためにしっかりとした計画を立てます。完了したら、次にスキップできる不要な手順があった可能性があるため、必ず結論を追加してください。

また、前の所有者とその上司に、サーバーの状態と、どのように危険な過失のセキュリティ更新が行われたかについてのメモを削除したいと思います。干渉ツールのように聞こえることなくこれを行うことができますが、それはオプションです。


8
「海に
投げ入れる

まあ、私は弾丸を噛んで新しいサーバーを構築するように聞こえます。入力いただきありがとうございます。
jon_brockman

2
また、仮想化も検討します。サーバーをそのまま仮想化し、スナップショットを作成すると、バックアップと遊び場ができます。試してみて、成功?スナップショット、そうでない場合はロールバックして再試行してください。最初から始める場合も同じです。試して、スナップショットまたは元に戻します。
WernerCD

4
これは素晴らしい情報です。私が追加する唯一のことは、ステップ4であなたがしたことを文書化することです
ブレンダンロング
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.