У меня есть сервер с сервером Ubuntu и брандмауэром UFW. Сервер выполняет докера, и в докере два контейнера. Каждый - прокси-сервер, другой - некоторый другой сервис с WebUI на порте 42111. Этот сервис не имеет никакой способности к аутентификации на WebUI.
Таким образом, я хочу к так или иначе соединениям блока с WebUI на порте 42111 из Интернета (который является по умолчанию с UFW), но позвольте соединения, которые прибывают из прокси-сервера на машине.
Как я настраиваю его правильно?
Ну, я не уверен, что я сделал, но эта строка помогла.
ufw allow in from 172.17.0.2 to any port 42111 proto tcp
P.S. Не забывайте, что Докер смешивает с UFW, если не запущено с аргумента - iptables=false
Правильный ответ заключается в том, что вы должны сначала настроить UFW для запрета всего трафика, а затем разрешить только требуемый IP-адрес с
sudo ufw allow in from ipaddress to any port 42111 proto tcp
Но это не лучшая практика. Вам не нужен UFW, чтобы заблокировать его. Правильная настройка сетей докеров уже будет работать как брандмауэр. Вы просто не выставляете порт 42111 из контейнера WebUI, поэтому только контейнер прокси сможет подключиться к нему через сеть контейнера.
Использование IP-адреса контейнера также не рекомендуется, поскольку они генерируются автоматически и могут меняться. Вы должны добавить контейнеры в новую именованную сеть, чтобы они могли общаться друг с другом, используя свои имена.