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

hosts.allow и hosts.deny WHM Host Access Control - что, если мой IP изменится?

Я хочу использовать интерфейс управления доступом к хосту WHM / Cpanel, чтобы изменить некоторые настройки в hosts.allow и hosts.deny. Я хочу заблокировать любой доступ к нашему SSH, кроме IP-адреса нашего офиса.

Daemon  Access List             Action      Comment
sshd      ALL EXCEPT x.x.x.x        deny          Deny access from all other IPs apart from ours

Но меня беспокоит, что произойдет, если наш IP изменится, что происходит примерно два раза в неделю. Как мне вернуться, чтобы отредактировать файлы hosts.allow / hosts.deny?

  1. подпишитесь на бесплатный динамический DNS (много) для вашего офисного IP.
  2. Обязательно обновляйте этот динамический DNS на регулярной основе.
  3. в hosts.deny Добавить: sshd: ALL
  4. в hosts.allow Добавить: sshd: /path/to/allowed_ip.file
  5. в crontab вашего хоста: */30 * * * * host your_office_ddns_domain | awk '{print $4}' > /path/to/allowed_ip.file
  6. вы сделали.

Предупреждение: играя с tcpd-оболочкой вашего удаленного хоста, убедитесь, что сеанс ssh в реальном времени открыт все время, поскольку новое соединение будет невозможно, если вы сделаете что-то не так.

Ты бы не стал. Поэтому не ограничивайте доступ к вашему серверу по IP, если у вас нет статического IP-адреса для ограничения доступа. Если вы отключите доступ по паролю по SSH и разрешите доступ только через открытые ключи, вы сможете открыть доступ по SSH для всего мира без практического риска компрометации. Гораздо более опасным является веб-панель управления WHM, которая представляет собой швейцарский сыр из уязвимостей, и ее нелегко защитить. который именно на этом месте вы хотели бы сосредоточить внимание безопасности.

Обновить: Пожалуйста, оставьте ответ ниже. в ssh протокол, клиент не предоставляет имя хоста, поэтому tcp_wrappers скорее всего, будет основываться на обратном имени IP-адреса клиента, которое вы, очевидно, не контролируете.

В целом, честно говоря, вам просто не следует использовать IP-безопасность для ssh. Вы не можете ожидать, что IP-адреса будут правильно идентифицировать кого-либо в Интернете.

Вам следует использовать пары ключей RSA, которые обеспечивают надежную защиту и отключают аутентификацию на основе пароля.

Если вам действительно нужен дополнительный уровень безопасности, идите немного дальше: добавьте VPN или двухфакторную аутентификацию (например Юбикей, не то чтобы меня интересовали их дела).


Я могу заявить очевидное: используйте имя хоста вместо IP в /etc/hosts.{allow,deny}.

Затем вы можете использовать любого поставщика DNS, предлагающего низкий TTL, если IP-адрес часто меняется.

Но если разрешение имен нарушается, вы застряли! Поэтому я настоятельно рекомендую также разрешить «хост перехода»: машину со статическим IP-адресом, к которой у вас есть доступ. Сервер друга подойдет, если ваши ресурсы ограничены.

Вы узнаете больше о возможностях этих файлов в hosts_access(5).

Обратите внимание, что Arch Linux считает hosts.{allow,deny} технология (tcp_wrappers) мертвых (объявление). Это не значит, что в ближайшее время он куда-нибудь попадет в более распространенных дистрибутивах, но и будущее не выглядит радужным.