apt-get upgrade openssl nie wprowadzi Ubuntu 12.04 do najnowszej wersji

5

Próbowałem następujących rzeczy, ale nie mogę uzyskać daty kompilacji później niż:

Wt, 21 sierpnia 05:18:46 UTC 2012

Zrobiłem co następuje:

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

i

apt-get purge openssl
apt-get install openssl

i

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

Wszystko wydaje się działać poprawnie, ale data kompilacji pozostaje taka sama jak powyżej. I http://filippo.io/Heartbleed/ test nadal zawodzi.

Wiem, że nie jestem szalony, ponieważ udało mi się zaktualizować mój identyczny serwer w środę. (Identyczny w KAŻDY sposób, z wyjątkiem sprzętu).

EDYTOWAĆ:

Porównałem pliki /etc/apt/sources.list na obu komputerach i wyglądają na identyczne. Jak jedna aktualizacja serwera i druga nie?

EDYTOWAĆ:

Czy zasugerował:

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

bezskutecznie.

Wypróbowałem te same polecenia w libssl1.0.0, wciąż w tej samej wersji, co powyżej.

Ten ma mnie zakłopotany.

Jakieś sugestie?

EDYTOWAĆ

Gdy tylko zdobędę wystarczającą ilość ulicznych kredytów (15), +1 wykonam realne obejścia

EDYTOWAĆ

Zgodnie z sugestią uruchomiłem apt-get with --reinstall --print-uris i wróciłem:

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

Następnie zrestartowano, taką samą wersję, jak wymieniono powyżej. Wciąż zawodzi.

user1182988
źródło
Czy ponownie uruchomiłeś komputer? Stare / podatne kopie pozostaną w użyciu / pamięci tak długo, jak będą to procesy, które ich używają.
Maxx Daymon
spróbuj ponownie uruchomić komputer. i spróbuj zdobyć deb s off strony pakietów ubuntu lub coś takiego. Możesz także wybierać własne pytania i komentować, nawet poniżej bariery punktów.
Wyatt8740
Co jest zgłaszane dpkg-query --list libssl1.0.0 dalej, co to jest „Nazwa pliku:” z apt-cache show libssl1.0.0 dalej, czy pasuje do pliku, który otrzymujesz, gdy ty apt-get download libssl1.0.0?
Maxx Daymon
Również pomocne, apt-get clean aby wyczyścić pamięć podręczną pobierania apt-get install openssl libssl1.0.0 --reinstall --print-uris i sprawdź URI pobierania. Pobierz pakiety ręcznie, aby sprawdzić.
Maxx Daymon
Dzięki Maxx uruchomiłem dpkg-query i apt-get download, a wersje są zgodne. Następnie uruchomiłem apt-get clean, pobrałem pakiety i sprawdziłem ich zawartość, która pasowała do wersji dpkg-query. Czy to oznacza, że ​​repozytorium jest zepsute?
user1182988

Odpowiedzi:

6

Wymuszanie ponownej instalacji pakietu

Apt uważa, że ​​pakiety są zainstalowane i uaktualnione. Ręczna weryfikacja i testowanie libssl sugeruje inaczej, więc baza danych pakietów jest niezgodna z zainstalowanymi plikami (być może wcześniej pliki były wcześniej aktualizowane bez udziału menedżera pakietów). Bez względu na przyczynę, pakiet nie jest poprawnie aktualizowany lub ponownie instalowany. Zakłada się, że ustalono, że system zgłasza stałe wersje, ale nadal jest podatny na ataki.

Najpierw spróbuj na siłę ponownie zainstalować zaatakowane pakiety:

apt-get install --reinstall libssl1.0.0

Jeśli to się nie powiedzie, spróbuj wymusić całkowite usunięcie pakietu bez angażowania żadnego z testów zarządzania zależnością i poprawności Apt:

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

W tym momencie system jest skutecznie „zepsuty”, ponieważ brakuje libssl i wiele pakietów jest nadal zainstalowanych, które zależą od niego (tego właśnie próbuje Apt, a powodem, dla którego idziemy za plecami Apta), więc zainstaluj ponownie libssl1.0.0 , ponowne pobranie najnowszego pakietu z repozytorium:

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

Alternatywnie, jeśli pobrałeś znany dobry pakiet deb, możesz użyć dpkg do zainstalowania i wymuszenia nadpisania istniejących plików:

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

Ponownie przetestuj i sprawdź (debsumy, sha1sum) zainstalowane pliki pod znaną dobrą konfiguracją.

Maxx Daymon
źródło
Dokładnie tak, a teraz przechodzi test Heartbleed. Dzięki wielkie!
user1182988
2

Jeżeli twój apt-get repozytoria nie zawiera żadnych prekompilowanych 1.0.1g OpenSSL wersja, więc po prostu pobierz źródła z oficjalnej strony i skompiluj je.

Poniżej pojedynczej linii poleceń do kompilacji i instalacji ostatniej wersji openssl.

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

Zastąp stary plik binarny openssl nowym plikiem poprzez dowiązanie symboliczne.

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

Wszyscy jesteście dobrzy!

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

Cf post na blogu .

Uwaga: Jak wspomniano w poście na blogu, to obejście nie naprawi „serwera Nginx i Apache, który musi być rekompilowany ze źródłami openSSL 1.0.1g”.

KoKo
źródło
Tak, to świetne i proste obejście. Rzecz w tym, że wiem, że pliki binarne są dostępne, ponieważ aktualizacja działała w środę na moim identycznym serwerze. Myślałem, że Ubuntu wyciągnęło go z repozytorium.
user1182988
0

Może masz 2 wersje OpenSSL w swojej PATH. Może się tak zdarzyć, jeśli skompilowałeś własną wersję.

Spróbuj tego /usr/bin/openssl version.

Powinna to być pozycja wersji pakietu OpenSSL.

Peter Lamby
źródło
Dziękuję za odpowiedź. Zrobiłem to, co zasugerowałeś (za pomocą -a), otrzymałem tę samą odpowiedź dotyczącą daty kompilacji. Unikałem kompilowania własnej wersji czegokolwiek, ponieważ te serwery muszą być łatwe do odtworzenia.
user1182988
@ user1182988 - Zakładam, że przeniesienie plików z działającego serwera nie jest opcją?
Ramhound
Przesyłanie plików jest realną opcją, ale obawiam się, że apt-get nie będzie działać.
user1182988
0

Musisz zaktualizować libssl1.0.0, a następnie ponownie uruchomić serwer. Nie zadziała bez restartu.

ITProStuff
źródło
Dziękuję za odpowiedź! Próbowałem apt-get purge libssl1.0.0, uruchom ponownie, apt-get install libssl1.0.0, uruchom ponownie - ta sama wersja jak powyżej. Próbowałem tego samego za pomocą openssl, wciąż tej samej wersji i kompilacji wspomnianej powyżej. To dziwne!
user1182988