Как ограничить доступ из Интернета к портам контейнеров на удаленном сервере Linux? - PullRequest
0 голосов
/ 15 октября 2018

Я использую docker-compose на Ubuntu 18 на удаленном сервере.Как с iptables я могу заблокировать доступ из Интернета к порту док-станции и разрешить доступ к нему только с локального хоста этого сервера?

Например, я хочу заблокировать порт 4150 для Интернета.Попытка это: iptables -A DOCKER-USER -p tcp --dport 4150 -j DROP не блокирует порт - все еще может получить к нему доступ из Интернета (не с сервера).

Как я могу заблокировать доступ из Интернета ко всем портам, которые находятся на сервере, норазрешить только 22,80?И держать эти порты доступными с локального хоста сервера (например, с самого сервера)?

1 Ответ

0 голосов
/ 16 октября 2018

Не то решение на основе IPTables, которое вы ищете, но гораздо более простое решение - публикация только на определенном интерфейсе, а не на всех интерфейсах.И когда этот интерфейс является интерфейсом обратной связи, например, 127.0.0.1, вы сможете получить доступ к порту только локально.Для этого добавьте интерфейс в начало спецификации публикации:

docker run -p 127.0.0.1:4150:4150 ...

или аналогичный синтаксис в файле составления:

...
  ports:
  - 127.0.0.1:4150:4150
...

Почему командавы пытались использовать не работает, я думаю, вам нужно включить -m tcp, чтобы соответствовать номеру порта TCP:

iptables -A DOCKER-USER -p tcp -m tcp --dport 4150 -j DROP
...