|
Требования: Использование контейнеров Docker для создания частной системы домашнего фотоальбома, ограниченного доступом и просмотром в домашней локальной сети, из-за того, что образ Docker является сторонним разработчиком, не знаю ситуацию с безопасностью, не знаю, будет ли он производить утечку конфиденциальности, чтобы лучше решить эту проблему, хочу запретить контейнерам Docker доступ к Интернету (экстрасети), чтобы добавить гарантии конфиденциальности. Чтобы лучше решить эту проблему, я хочу добавить защиту конфиденциальности, запретив контейнерам Docker доступ к Интернету (экстранету).
Ниже приведен пример сервера CentOS 7, который запрещает доступ к серверу с определенного IP-адреса. h ttps:// www.itsvse.com/thread-10264-1-1.html
Брандмауэр iptables: разрешить только определенным IP-адресам доступ к определенным портам и определенным веб-сайтам. h ttps:// www.itsvse.com/thread-2535-1-1.html
CentOS 7 Просмотр и отключение брандмауэра h ttps:// www.itsvse.com/thread-7771-1-1.html В данной статье используется система CentOS7, версия Docker: 20.10.20, для тестирования предоставлены зеркала nginx.
Разрешите доступ к интернету (экстрасети) по умолчанию
Создайте новый контейнер nginx, контейнер предоставляет веб-сервисы, доступ к которым можно получить через порт 18080 , а внутри контейнера по умолчанию разрешен доступ к Интернету (extranet) с помощью следующей команды:
Войти в контейнер, через команду curl, чтобы запросить ресурсы этого сайта, можно получить нормально, по следующей схеме:
Блокировка доступа контейнеров Docker к интернету (экстранету)
Для начала нам нужно создать новую пользовательскую сеть через docker, создав виртуальную сетевую карту с помощью следующей команды:
Настройте правило на виртуальной сетевой карте через iptables для блокировки доступа в Интернет с помощью следующей команды:
Независимо от того, доступна служба iptables или нет, и независимо от того, включен брандмауэр или нет, правила iptables, добавленные с помощью этой команды, вступят в силу немедленно!
Примечание: В этом сценарии, когда разные контейнеры присоединяются к одной сети, они также не могут взаимодействовать друг с другом !!!!.
Проверьте правило DOCKER-USER, как показано ниже:
Снова создаем новый контейнер nginx, контейнер предоставляет веб-сервисы и предоставляет сервисы извне через порт 18081 , внутренний доступ контейнера в интернет (экстранет) запрещен, команда следующая:
Мы достигли нашей цели, однако, после перезапуска сервера, наши недавно созданные правила в iptables исчезнут, как сделать так, чтобы при перезапуске сервера, могли автоматически загружаться наши пользовательские правила?
Команда iptables-save используется для экспорта таблицы iptables из ядра linux на стандартное устройство вывода. Обычно вывод сохраняется в указанный файл с помощью функции перенаправления ввода-вывода в оболочке. Сохранение существующего правила iptables
Добавьте правило восстановления iptables в bootstrap. Файл bootstrap - /etc/rc.d/rc.local. Отредактируйте этот файл и добавьте в конец следующую команду:
Наконец, добавьте разрешение execute с помощью следующей команды:
После настройки правила iptables оно будет действовать даже при перезагрузке сервера.
Блокировка доступа всех контейнеров в Docker к Интернету (экстрасети),не проверялось, команда следующая:
(конец)
|
Предыдущая статьяАссетный файл "project.assets.json" не найден. Запустите восстановление пакета NuGet ...下一篇:【 转]BBR vs BBRplus vs BBR2 Общее сравнение скорости сети
|