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