Цель состоит в том, чтобы разрешить только определенным сетям доступ к портовым службам / портам контейнера, работающим на моем сервере.
Попытка добавления правил ПРИНЯТЬ в цепочку фильтров INPUT. Это не помогло, сети даже без правила ACCEPT все еще могли получить доступ к службе / порту докера.
Попытка добавления правил ACCEPT и DROP в цепочку FORWARD, это работает. Но это имеет много недостатков, таких как:
а. Правила удаляются или перемещаются при перезапуске Docker
б. Правила могут стать недействительными, если контейнеры Docker будут повторно развернуты и получат разные IP-адреса во время выполнения
План - ЗАБЛОКИРОВАТЬ их, даже не достигнув цепочки ВПЕРЕД.
Итак, в таблицу NAT добавлена новая цепочка, которая перенаправляет в цепочку DOCKER, если трафик поступает из разрешенной сети, если он из других сетей, добавляет DNAT к BLOCKHOLE IP. В PREROUTING первое правило - переходить к этой цепочке. Кажется, это работает.
DNAT tcp - 0.0.0.0/0 0.0.0.0/0 tcp dpt: 1234 до: 0.0.0.1
Но вместо того, чтобы перенаправить его на БЛОК, мы можем как-то ОТКЛЮЧИТЬ этот трафик, чтобы клиент знал, что он не разрешен и, следовательно, отказался.