Я хочу использовать интерфейс управления доступом к хосту 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?
sshd: ALL
sshd: /path/to/allowed_ip.file
*/30 * * * * host your_office_ddns_domain | awk '{print $4}' > /path/to/allowed_ip.file
Предупреждение: играя с 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
) мертвых (объявление). Это не значит, что в ближайшее время он куда-нибудь попадет в более распространенных дистрибутивах, но и будущее не выглядит радужным.