Назад | Перейти на главную страницу

поврежден openSSL, веб-сайт не работает SSH, yum, rpm и т. д.

Я пытался установить uTorrent на свой PHP-сайт, и в середине процесса меня выгнали из SSH, и сайт отключился.

Для uTorrent требовались libssl.so.1.0.0 и libcrypto.so.1.0.0, поэтому для перехода на более раннюю версию я сделал следующее:

wget https://www.openssl.org/source/openssl-1.0.0r.tar.gz
cd openssl-1.0.0r
./config shared && make

Установка прошла нормально, и она заменила мою предыдущую версию 1.0.1e. Но когда я ldd, в списке отображается «Версия не найдена» для libssl.so.1.0.0 и libcrypto.so.1.0.0. Я приступил к удалению их обоих со своего сервера в надежде отменить изменения, и меня сразу же выгнали из SSH, и сайт отключился.

Теперь я не могу подключиться через SSH, единственный способ - через KVM, предоставленный моим хостом. Все команды т.е. yum rpm wget etc возвращает следующую ошибку:

error while loading shared libraries libcrypto.so.10: file too short

Мой сервер неуправляемый, поэтому я не думаю, что у меня есть возможность вручную переустановить пакеты openSSL на USB ...

Этот трюк помог коллеге, который проделал нечто подобное с другим важным пакетом.

Если ваш KVM-доступ позволяет вставлять данные из буфера обмена, вы мог копировать libssl.so.10 & libcrypto.so.10 от известной рабочей установки. Чтобы ваш терминал не запутался, сначала закодируйте файлы Base64.

Что-то вроде этого в заведомо хорошей системе:

$ base64 </usr/lib64/libssl.so.10
<copy the output>

Затем в сломанной системе:

$ base64 -d <<EOF >/usr/lib64/libssl.so.10
<paste in the output from above>
EOF

(Повторите для libcrypto.so.10 и любой другой файл)

Если это заставит все работать, переустановите пакеты SSL ОС, вероятно, заставив их по пути, поскольку менеджер пакетов будет думать, что они уже установлены.

Если у вас нет возможности подключить к серверу физический носитель, вам необходимо очистить сервер и переустановить его. Поскольку вам удалось испортить все библиотеки криптографии в ОС, вам необходимо заменить их правильными версиями с физического носителя.

Однако описанный выше метод восстановления требует довольно обширных знаний о том, как управляются пакеты вашего дистрибутива Linux.

Всегда следуйте этому правилу: всегда используйте скомпилированные пакеты для вашего дистрибутива и версии и никогда ничего не компилируйте самостоятельно. Это избавит вас от множества неприятностей.