На мой сервер проник посторонний человек, использующий мою квалификацию пользователя root.
С измененным паролем root я пытаюсь найти дополнительные стратегии для защиты сервера.
Используя /etc/hosts.allow и /etc/hosts.deny кажется жизнеспособным решением для управления доступом по IP-адресу, но у меня есть потенциальная проблема.
Я хочу указать свой рабочий IP в файле hosts.allow. Однако проблема в том, что IP-адрес может быть изменен поставщиком услуг. Если это произойдет, мой сервер будет заблокирован. Наш сервер самоуправляемый.
Кто-нибудь может просветить меня, как предотвратить или преодолеть этот сценарий, пожалуйста?
Купите статический IP у провайдера.
Вместо использования ограничений на основе IP вы можете настроить вход без пароля через сертификаты.
Вам нужно будет разместить публичный сертификат на сервере, к которому вы получаете доступ. Вам нужно будет убедиться, что разрешения на требуемые файлы в каталоге ~ / .ssh правильные, чтобы это работало.
В дополнение к ответу @Kazimieras вы также можете использовать такую систему, как dyndns и добавьте свое новое имя хоста в etc/hosts.allow
.
Я предпринял несколько шагов для защиты своих серверов:
Первый очевиден:
Не запускайте ssh на стандартном порту, это избавит вас от обычных атак skript kiddies.
Второй - тоже в хорошем состоянии:
Используйте демон стука. Демон стука сначала ожидает последовательности ударов по определенным портам и протоколам, прежде чем открыть порт для ssh-соединения на сервере. Таким образом, ssh-сервер невидим для злоумышленников, пока они не попадут в нужную последовательность портов клиентом knock. Большинство реализаций knock-daemon предоставляют механизм для интеграции транзакционных последовательностей, так что последовательность детонации изменяется после каждого успешного входа в систему.
Эта стандартная настройка дает вам немного больше уровня безопасности.
Также рекомендуется использовать зашифрованные имена пользователей и пароли и ограничить ssh - вход в систему для определенного (не root) пользователя. Затем вы можете переключиться на пользователя root на сервере при выполнении задач root.
Установка системы мониторинга, такой как nagios, также обеспечивает большую безопасность для вас и вашей среды, ее легко настроить и она также предоставляется через систему упаковки ubuntu. Вы можете настроить его так, чтобы он отправлял вам электронные письма, когда кто-то входит на ваш сервер через ssh, так что, по крайней мере, вы получите информацию, необходимую для дальнейшего расследования.
Но, честно говоря: если кто-то получил доступ к вашему серверу как root, вам следует полностью переустановить все. Могут быть замены двоичных файлов, которые нелегко обнаружить, вводя бэкдоры. Представьте, что вы запускаете простую команду, такую как useradd, и двоичные файлы были заменены, так что во время выполнения команды открывается TCP-соединение, а учетные данные пользователя отправляются злоумышленнику. Или, что еще хуже: двоичный файл ssh-server был заменен специальной версией, которая разрешает доступ через определенную комбинацию user-pass-pass.
Возможно, вы сможете настроить VPN-соединение между вашим сервером и офисной сетью.