apt-get upgrade openssl не переведет Ubuntu 12.04 до последней версии

19827
user1182988

Я пробовал следующее, но я не могу получить дату сборки позже, чем:

Вт, авг 21 05:18:46 UTC 2012

Я сделал следующее:

apt-get dist-upgrade apt-get update apt-get upgrade openssl 

а также

apt-get purge openssl apt-get install openssl 

а также

apt-get purge libcrypto1.0.0 apt-get install libcrypto1.0.0 

Кажется, все работает нормально, но дата сборки остается, как указано выше. И тест http://filippo.io/Heartbleed/ все еще не проходит.

Я знаю, что я не сумасшедший, потому что я смог обновить свой идентичный сервер в среду. (Идентично КАЖДОМУ, кроме аппаратного).

РЕДАКТИРОВАТЬ:

Я сравнил файлы /etc/apt/sources.list на обеих машинах, и они оказались идентичными. Как один сервер обновился, а другой нет?

РЕДАКТИРОВАТЬ:

Сделал как предложено:

apt-get purge openssl reboot apt-get install openssl reboot 

но безрезультатно.

Пробовал те же команды на libssl1.0.0, все та же версия, как указано выше.

Это меня озадачило.

Какие-либо предложения?

РЕДАКТИРОВАТЬ

Как только я получу достаточно уличного кредита (15), я найду +1 жизнеспособных обходных путей

РЕДАКТИРОВАТЬ

Как и предполагалось, я запустил apt-get с --reinstall --print-uris и вернулся:

http://us.archive.ubuntu.com/ubuntu/pool/main/o/openssl/openssl_1.0.1-4ubuntu5.12_amd64.deb 

Затем перезагрузите, ту же версию, что указана выше. Все еще терпит неудачу сердцебиение.

5
Ты перезагрузился? Старые / уязвимые копии будут оставаться в использовании / памяти до тех пор, пока их используют процессы. Maxx Daymon 10 лет назад 0
попробуйте перезагрузиться. и попробуйте получить `deb` с сайта пакетов Ubuntu или что-то в этом роде. Кроме того, вы можете задавать вопросы по собственным вопросам и оставлять комментарии, даже ниже барьера. Wyatt8740 10 лет назад 0
То, что сообщается для `dpkg-query --list libssl1.0.0` next, что такое" Filename: "из` apt-cache show libssl1.0.0` next, соответствует ли это файлу, который вы получаете, когда вы `apt-get download libssl1 .0.0`? Maxx Daymon 10 лет назад 0
Также полезно, `apt-get clean`, чтобы очистить кэш загрузки, затем` apt-get install openssl libssl1.0.0 --reinstall --print-uris` и проверьте URI загрузки. Загрузите пакеты вручную для проверки. Maxx Daymon 10 лет назад 0
Благодаря Maxx, я запустил dpkg-query и apt-get download, и версии совпадают. Затем я запустил apt-get clean, загрузил пакеты и проверил их содержимое, соответствующее версиям dpkg-query. Означает ли это, что хранилище сломано? user1182988 10 лет назад 0
@ user1182988 Хранилище выглядит хорошо отсюда. Я скачал и проверил пакеты, и они были правильными. Вы можете вручную загрузить deb-пакеты libssl и openssl и установить их, но похоже, что apt выбирает и устанавливает исправление. Соответствует ли ваш sha1sum для `/ usr / bin / openssl` 22297ff89bbdfd4befb6f66f79e41210768aa81a` и` / lib / x86_64-linux-gnu / libssl.so.1.0.0` `4fbb25a3e82d3d835c3443a664643a6 Какой сервер (ы) вы используете, и есть ли вероятность, что у вас есть статически связанная библиотека libssl? Maxx Daymon 10 лет назад 0
@ user1182988 Другой тест, который вы можете сделать, это загрузить пакет .deb и запустить `debsums libssl1.0.0_1.0.1-4ubuntu5.12_amd64.deb`, чтобы убедиться, что установленные вами файлы соответствуют суммам из известного хорошего пакета. Выполните `dpkg -i filename.deb` для установки вручную. OpenSSL * должен * вернуть `OpenSSL 1.0.1 14 марта 2012 г., построено: понедельник, 7 апреля 20:33:29 UTC 2014` Ваша дата сборки подразумевает, что пакет не устанавливается. Проверить логи dpkg и apt на ошибки? Maxx Daymon 10 лет назад 0
@MaxxDaymon, спасибо за помощь. Я запустил sha1sum на openssl, и контрольная сумма совпадает с той, которую вы указали, однако libssl.so.1.1.0 не совпадает. Я сравнил с моим «идентичным» сервером, и обе контрольные суммы совпали. Я искал свои журналы dpkg и apt, но не увидел ничего, что выглядело как ошибка. Серверы - это типичные LAMP с postfix и dovecot, а также приложения для защиты от спама и безопасности. Я собирался удалить libssl1.0.0, но он сказал мне, что на него полагается слишком много вещей, и что я должен пересмотреть, если я не «действительно знаю, что я делаю», поэтому я пересмотрел. dpkg-перенастроит это исправить? user1182988 10 лет назад 0
@ user1182988 Можете ли вы сделать `apt-cache policy libssl1.0.0` и сказать мне, какие у вас строки Installed: и Candidate:? Maxx Daymon 10 лет назад 0
@ user1182988 Думаю, я бы порекомендовал `wget http: // us.archive.ubuntu.com / ubuntu / pool / main / o / openssl / libssl1.0.0_1.0.1-4ubuntu5.12_amd64.deb` с последующим` dpkg --force-all --remove libssl1.0.0` и затем `dpkg --force-overwrite -i libssl1.0.0_1.0.1-4ubuntu5.12_amd64.deb` (Вы также можете выполнить простую команду` apt-get install libssl1) Вместо этого .0.0`, избавляя от необходимости загружать deb). Я просто попробовал оба подхода на тестовом сервере 12.04, и они оба работали. Maxx Daymon 10 лет назад 0
@MaxxDaymon, ты прибил это. Я запустил `dpkg --force-all --remove libssl1.0.0`, а затем` apt-get install libssl1.0.0`, и теперь моя сборка - 4/7/14. Я узнал, что dpkg удалит пакет, не удаляя все, что от него зависит (верно?). Спасибо, Макс. Сделайте ответ из этого, и я проверю это. user1182988 10 лет назад 0
@ user1182988 Фантастика! Я ухожу на несколько часов, я напишу это в форме ответа, когда вернусь. Рад слышать, что ты снова в деле! Maxx Daymon 10 лет назад 0
@ user1182988 Я отправил ответ. Это была небольшая часть текста, поэтому я сократил ее до самого необходимого, так как теперь у нас есть много диагностических шагов в этом вопросе. Maxx Daymon 10 лет назад 0

4 ответа на вопрос

6
Maxx Daymon

Forcing a package re-installation

Apt thinks that the packages are installed and upgraded. Manual verification and testing of libssl suggests otherwise, so the package database is inconsistent with the installed files (maybe files were previously upgraded previously without package manager involvement). For whatever reason this happened, the package is not being correctly upgraded or reinstalled. This assumes that it has been established that the system is reporting fixed versions, but is still showing as vulnerable.

First, attempt to forcibly reinstall the affected packages:

apt-get install --reinstall libssl1.0.0

If that fails, try forcing the complete removal of the package without involving any of Apt's dependency management and sanity checks:

dpkg --force-all --remove libssl1.0.0

At this point, the system is effectively 'broken' because libssl is missing and many packages are still installed that depend on it (this is what Apt tries so hard to prevent, and the reason we are going behind Apt's back), so reinstall libssl1.0.0, re-downloading the latest package from the repository:

apt-get clean && apt-get install libssl1.0.0

Alternatively, if you have downloaded the known good deb package, you can use dpkg to install and force overwrite of any existing files:

dpkg --force-overwrite -i libssl1.0.0_1.0.1-4ubuntu5.12_amd64.deb

Re-test and check (debsums, sha1sum) the installed files against known good configuration.

Совершенно верно, и теперь он проходит тест Heartbleed. Спасибо! user1182988 10 лет назад 0
2
KoKo

If your apt-get repositories don't contains any precompiled 1.0.1g OpenSSL version, so just download sources from official website and compile it.

Below the single command line to compiling and install the last openssl version.

curl https://www.openssl.org/source/openssl-1.0.1g.tar.gz | tar xz && cd openssl-1.0.1g && sudo ./config && sudo make && sudo make install

Replace old openssl binary file by the new one via a symlink.

sudo ln -sf /usr/local/ssl/bin/openssl `which openssl` 

You are all good !

# openssl version should return openssl version OpenSSL 1.0.1g 7 Apr 2014 

Cf this blog post.

NB: As stated in the blog post, this workaround will not fix "Nginx and Apache server who have to be recompile with 1.0.1g openSSL sources."

Да, это отличный и простой обходной путь. Дело в том, что я знаю, что двоичные файлы доступны, так как обновление работало в среду для моего идентичного сервера. Возможно, я подумал, что Ubuntu вытащил его из хранилища. user1182988 10 лет назад 0
0
Peter Lamby

Maybe you have 2 versions of OpenSSL in your PATH. This can happen, if you compiled your own version.

Try this /usr/bin/openssl version.

This schould be the position of the package version of OpenSSL.

Спасибо за ответ. Я сделал то, что вы предложили (с -a) и получил тот же ответ о дате сборки. Я избегал компиляции своей собственной версии чего-либо, поскольку мне нужно, чтобы эти серверы были легко воспроизводимыми. user1182988 10 лет назад 0
@ user1182988 - Я предполагаю, что передача файлов с рабочего сервера не вариант? Ramhound 10 лет назад 0
Перенос файлов является жизнеспособным вариантом, но я обеспокоен тем, что apt-get не будет работать. user1182988 10 лет назад 0
0
ITProStuff

You need to update libssl1.0.0, then reboot your server. It will not work without a reboot.

Спасибо за ответ! Я попытался apt-get purge libssl1.0.0, перезагрузиться, apt-get установить libssl1.0.0, перезагрузиться - та же версия, что и выше. Пробовал то же самое, используя openssl, все ту же версию и сборку, упомянутые выше. Это странно user1182988 10 лет назад 0

Похожие вопросы