UFW — несложный продвинутый файрвол

wiki.ubuntu.com/UncomplicatedFirewall

Сетевые порты устройства можно представить как двери квартир, а его IP-адрес — как гигантский дом-человейник. В каждом таком доме по 65535 квартир. У каждой квартиры дверь разной степени защищенности. Кто-то Gentoo на Intel Atom соберет и все SSD нашинкует в салат, пока ему дверь выпиливают, а у кого-то дверь только для виду стоит, и то с трудом.

Файрволы могут и должны защищать весь дом. В идеале это отдельное устройство типа роутера или одноплатника, как КПП у входа на территорию дома, но это не дешево, поэтому устройству (дому) часто приходится защищать себя самому.

В Linux за это отвечает Netfilter, для работы с которым существует iptables, потихоньку заменяемый nftables. Пока последний пробивает путь молодым, UFW уже давно транслирует простые команды в непростой синтаксис iptables, но у UFW конфликт с Docker, где последний при разворачивании контейнеров будет обходить правила UFW и открывать закрытые тем порты.

Для решения проблемы, контейнеры должны слушать на локальном адресе машины, а на открытых портах будет сидеть только обратный прокси-сервер типа Nginx или Caddy.

Например, в конфигах Docker Compose порты в строке «ports» нужно предварять адресом — 127.0.0.1:8080:80. 80 здесь это порт приложения внутри контейнера, а 8080 — порт, на котором контейнер будет ожидать запросы.

127.0.0.1 говорит докеру, что слушать надо на локальном адресе, а там хоть все порты открывай, никто не против. Это как бы намекает ему, что надо уважать правила файрвола и не трогать закрытые последним порты на внешнем IP.

📌 Детали

  • открытый исходный код на Python
  • разработка британской коммерческой организации (разработчика Ubuntu), без рекламы и отслеживания
  • доступен в репозиториях Debian, Fedora и деривативов
  • по умолчанию закрывает все порты для входящего трафика
  • журналирует запросы
  • полный функционал iptables
  • синтаксис для простых (ufw allow 443) и продвинутых (ufw route deny from /<маска подсети> to any port <порт> proto <протокол>) правил
  • профили для популярного софта (ssh, httpd, telnet…)
  • краткая справка и встроенный мануал

ИМХО:  Сколько с гуями не возись, а с консолью работа все равно быстрее, даже софт на питоне.

Свежее