Вимоги: Приватна домашня система альбомів була створена з використанням контейнерів Docker, яка обмежена доступом і переглядом через домашню LAN, оскільки образ Docker розробляється стороннім розробником, і я не знаю, чи це буде питання безпекиСтворювати порушення конфіденційностіЩоб краще вирішити цю проблему, ми хочемо додати гарантію приватності, заборонивши контейнерам Docker доступ до Інтернету (зовнішньої мережі).
У цій статті використовується система CentOS7, версія Docker: 20.10.20, і зображення nginx для проведення тестів.
Доступ до Інтернету (екстранет) дозволений за замовчуванням
Створіть новий контейнер nginx, який надає веб-сервіси, до яких можна отримати доступ18080 Доступ до порту, контейнер за замовчуванням може отримати доступ до Інтернету (зовнішньої мережі), команда наступна:
Увійдіть у контейнер і запитайте ресурси цього сайту через команду curl, яку можна отримати звичайним способом, як показано на рисунку нижче:
Вимкнення доступу до інтернету (екстранету) контейнерів Docker.
Спочатку потрібно створити власну мережу через docker і віртуальну мережеву карту з такою командою:
Встановіть правило на віртуальному мережевому сеті через iptables, щоб заборонити доступ до Інтернету за допомогою наступної команди:
Незалежно від того, чи доступний сервіс iptables, незалежно від того, чи увімкнено міжмережевий екран,Правила iptables, додані командою, набувають чинності негайно!!!
Примітка: цей план є доречнимЯкщо різні контейнери приєднуються до однієї мережі, контейнери не зможуть спілкуватися між собою!!!!
Подивіться на правило DOCKER-USER, як показано нижче:
Створіть новий контейнер nginx знову, контейнер надає веб-сервіс, і18081 Порт надає послуги зовнішньому світу, а контейнеру заборонено доступ до Інтернету (публічної мережі), команда звучить так:
Ми досягли своєї мети, але,Після перезавантаження сервера правила, створені в iptables, зникнутьЯк ми можемо автоматично завантажити наші власні правила після перезапуску сервера?
Команда iptables-save використовується для експорту таблиці iptables у ядрі Linux стандартному постачальнику виводу, зазвичай використовуючи функцію перенаправлення введення/виведення в shell для збереження результату у вказаному файлі. Зберегти існуюче правило iptables
Додайте правило відновлення iptables до завантаження при завантаженні, файл завантаження буде /etc/rc.d/rc.local, відредагуйте файл і додайте наступну команду наприкінці:
Нарешті, додайте дозвіл на виконання за допомогою наступної команди:
Після завершення налаштувань правила iptables залишаться чинними навіть після перезавантаження сервера.
Усім контейнерам у Docker заборонено доступ до Інтернету (екстранету),Не тестувався, команда має вигляд наступного:
(Кінець)
|