Ограничение доступа на основе IP-адреса Ubuntu Apache

Ограничение доступа на основе IP-адреса Ubuntu Apache

На мой сервер проник посторонний человек, использовавший мои права 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-соединение между вашим сервером и офисной сетью.

Связанный контент