Закрытый порт и остановленный сервис — разные вещи, и путаница между ними стоит дорого.
Классика: администратор уверен, что база данных недоступна извне, потому что «мы её не публиковали». На деле сервис слушает все интерфейсы, файрвол на самой машине отключён, а внешний фильтр стоит только перед веб-сервером.
Полезная привычка — регулярно спрашивать у машины, что и где она слушает. Не конфиг приложения, а список открытых сокетов. Часто выясняется приятное: половина того, что слушает наружу, вообще не должна быть доступна дальше локального интерфейса.
Что смотреть в первую очередь:
— базы данных и кэши: у них исторически слабая или отсутствующая проверка доступа по умолчанию;
— панели администрирования и отладочные интерфейсы;
— очереди и внутренние API, о которых «всё равно никто не знает»;
— всё, что поднялось в контейнерах и опубликовало порт мимо ваших правил.
Последний пункт особенно коварен: механизм публикации портов у контейнеров умеет проходить мимо привычных правил хоста, и снаружи оказывается открыто то, чего в файрволе нет.
Правильный порядок: сначала привязать сервис к нужному интерфейсу, потом закрыть файрволом. Два слоя, а не один.
Файрвол и Доступы
@firewall_access_n1k_n1k
Закрытый порт и остановленный сервис — разные вещи, и путаница между ними стоит дорого.
Этот пост опубликован в Telegram-канале Файрвол и Доступы. Подписаться можно по ссылке: @firewall_access_n1k_n1k.