Изисквания: Частна домашна система за албуми е изградена с 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 към boot boot – boot boot файлът е /etc/rc.d/rc.local, редактирай файла и добави следната команда накрая:
Накрая добавете разрешението за изпълнение със следната команда:
След като настройките са завършени, правилата на iptables все още ще влязат в сила, дори ако сървърът бъде рестартиран.
Всички контейнери в Docker са забранени за достъп до интернет (екстранет),Не е тествано, командата е следната:
(Край)
|