我继承了一个危险的过时服务器。我打算如何安全升级它?


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
您是否真的希望得到一个不会告诉您进行备份的答案?:-)
Andrea Corbellini

我相信您需要在管理层面上更多的答案。没有备份,也没有有关服务和数据的信息,除了“您应该能够从LTS(8.04)升级到LTS(10.04)到LTS(12.04)”之外,没有提供任何具体答案。是的,只需修复备份部分。就个人而言,我希望进行全新安装,然后将数据复制到新安装中。
gertvdijk

1
Andrea:我当然希望备份是每个回应的一部分。但是,那是容易的部分。
jon_brockman 2013年

Answers:


16

根据这些软件包的版本,这似乎是Ubuntu Hardy 8.04 LTS。那已经超过五年了。尽管有很长的历史,官方支持仅在2013年5月结束,但是再也无法获得安全更新了,这是一个问题。

上面列出的版本于2010年发布,应该突出说明当前任务的紧迫性。该服务器可能容易受到多种远程利用的攻击。

可以尝试就地分发升级到12.04(直到2017年才受支持),但这意味着服务立即中断,可能意味着一切中断。可能还需要进行几次迭代才能达到12.04。这只是一个混乱的想法。

我会重新开始。新服务器,新Ubuntu安装。

  1. 进行备份,以防万一它爆炸了,否则将旧服务器保持原样。当前正在使用此服务器的任何人都不会感到任何停机时间,因此,将旧的服务器保留下来是您通往快乐的同事和快乐的老板的途径。

  2. 在新服务器(或虚拟机,但是您已经设置好)上安装Ubuntu 12.04(或阅读时最新的LTS)。如果这是该公司众多服务器中的一台,那么可能值得研究与虚拟化配合良好的硬件整合/冗余技术。

  3. 建立从旧服务器开始工作所需的工作清单。有哪些网站可以运行?人们依靠它提供什么服务?它使用什么IP?可以更改IP吗?怎么样?哪里?那会破坏谁?

    在此阶段结束之前,您应该有一个文档,告诉您您需要做什么。

  4. 从#3安装软件包,但不要简单地复制旧的配置。

    真的很有诱惑力的端口的/ etc /从旧服务器,但我以前就做过类似的事情用PHP,它让我回天。使用您在#3中的观察结果以及在与旧服务器打交道中获得的观察结果,基于现代最佳实践来构建新的新配置。

  5. 复制您的网站和数据库。

  6. 测试并修复。我不知道这需要多长时间,因为我以前从未升级过Tomcat网站,但至少您需要确保它仍然可以完成其应有的一切。

  7. 满意时,您需要再次从旧服务器复制数据(假设人们在此期间一直在使用它)。

  8. 拔下旧服务器的插头,将其扔入海中。或重新调整用途。这可能是古老且效率低下的,所以对于

正如布伦丹(Brendan)在评论中提到的那样,您应该在第3步和第6步之间生成大量文档。如果您只是继续写下自己的工作以及做事的原因,这将花费您30分钟以上的时间,但是下次再给您一个可靠的计划。完成后,可能有不必要的步骤可以下次跳过,因此请确保添加结论。

我也很想给以前的所有者及其老板丢下有关服务器状态以及安全更新失败的危险程度的注释。您可以做到这一点而不会听起来像一个干扰工具,但这是可选的。


8
“把它扔进海里” :)
don.joey

好吧,听起来我会硬着头皮建造一台新服务器。感谢您的输入。
jon_brockman 2013年

2
我还将研究虚拟化-按原样对服务器进行虚拟化,然后对快照进行虚拟化,您现在有了备份和游乐场。试试东西,成功吗?快照,否则回滚并重试。从头开始也一样。尝试快照或还原。
WernerCD

4
这是很棒的信息。我唯一要添加的是在第4步中,记录下您所做的事情,这样对下一个人来说就更容易了。
布伦丹·朗
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.