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