Cerințe: A fost construit un sistem privat de albume pentru acasă folosind containere Docker, care este limitat la acces și vizualizare pe LAN-ul de acasă, deoarece imaginea Docker este dezvoltată de un dezvoltator terț și nu știu dacă va fi o situație de securitateGenerează încălcări ale confidențialitățiiPentru a rezolva mai bine această problemă, dorim să adăugăm o garanție de confidențialitate prin interzicerea accesului containerelor Docker la Internet (rețea externă).
Acest articol folosește un sistem CentOS7, versiunea Docker: 20.10.20, și folosește imagini nginx pentru a oferi teste.
Accesul la internet (extranet) este permis implicit
Creează un nou container nginx care oferă servicii web accesibile prin18080 Acces la port, containerul poate accesa Internetul (rețea externă) implicit, comanda este următoarea:
Introduceți containerul și solicitați resursele acestui site prin comanda curl, care poate fi obținută normal, așa cum se arată în figura de mai jos:
Dezactivarea accesului la internet al containerelor Docker (extranet)
În primul rând, trebuie să creăm o rețea personalizată prin docker și să creăm o placă virtuală de rețea, cu următoarea comandă:
Setați o regulă pe placa virtuală prin iptables pentru a interzice accesul la Internet cu următoarea comandă:
Indiferent dacă serviciul iptables este disponibil sau nu, indiferent dacă firewall-ul este activat sau nu,Regulile iptables adăugate prin comandă intră în vigoare imediat!!!
Notă: Acest plan este potrivitDacă containere diferite se conectează în aceeași rețea, containerele nu vor putea comunica între ele!!!!
Uită-te la regula DOCKER-USER așa cum este prezentată mai jos:
Creează din nou un container nginx, containerul furnizează serviciul web, iar18081 Portul oferă servicii către exterior, iar containerul este interzis accesul la Internet (rețea publică), comanda fiind următoarea:
Ne-am atins scopul, dar,După repornirea serverului, regulile create în iptables vor dispăreaCum putem încărca automat regulile personalizate după ce serverul este repornit?
Comanda iptables-save este folosită pentru a exporta tabelul iptables din nucleul Linux către un furnizor standard de ieșire, de obicei folosind funcția de redirecționare I/O din shell pentru a salva ieșirea într-un fișier specificat. Salvează regula existentă iptables
Adaugă regula de restaurare iptables la boot de boot, fișierul de boot este /etc/rc.d/rc.local, editează fișierul și adaugă următoarea comandă la final:
În final, adaugă permisiunea de execuție cu următoarea comandă:
După finalizarea setărilor, regulile iptables vor rămâne în vigoare chiar dacă serverul este repornit.
Toate containerele din Docker sunt interzise să acceseze Internetul (extranet),Nu am fost testat, comanda este următoarea:
(Sfârșit)
|