Krav: Et privat home album-system blev bygget med Docker-containere, som er begrænset til adgang og visning på hjemmenetværket, fordi Docker-billedet udvikles af en tredjepartsudvikler, og jeg ved ikke, om det vil være en sikkerhedssituationGenerer privatlivsbrudFor bedre at løse dette problem ønsker vi at tilføje en garanti for privatliv ved at forbyde Docker-containere adgang til internettet (eksternt netværk).
Denne artikel bruger et CentOS7-system, Docker-version: 20.10.20, og bruger nginx-billeder til at levere tests.
Internetadgang (ekstranet) er tilladt som standard
Opret en ny nginx-container, der tilbyder webtjenester, som kan tilgås af18080 Portadgang, containeren kan som standard få adgang til internettet (eksternt netværk), kommandoen er som følger:
Indtast containeren og anmod ressourcerne til dette site via curl-kommandoen, som normalt kan opnås, som vist i figuren nedenfor:
Deaktiverelse af Docker-containere fra adgang til internettet (extranet)
Først skal vi oprette et brugerdefineret netværk via docker og oprette et virtuelt netværkskort med følgende kommando:
Sæt en regel på det virtuelle netværkskort via iptables for at forbyde adgang til internettet med følgende kommando:
Uanset om iptables-tjenesten er tilgængelig eller ej, uanset om firewallen er slået til eller ej,IPTables-regler tilføjet ved kommando træder straks i kraft!!!
Bemærk: Denne plan er passendeHvis forskellige containere forbinder det samme netværk, vil containerne ikke kunne kommunikere med hinanden!!!!
Se på DOCKER-BRUGER-reglen som vist nedenfor:
Opret en ny nginx-container igen, containeren leverer webservicen, og18081 Porten leverer tjenester til omverdenen, og containeren er forbudt adgang til internettet (offentligt netværk), kommandoen er som følger:
Vi har nået vores mål, men,Efter genstart af serveren forsvinder de regler, vi har oprettet i iptables,Hvordan kan vi automatisk indlæse vores brugerdefinerede regler, efter serveren er genstartet?
iptables-save-kommandoen bruges til at eksportere iptables-tabellen i Linux-kernen til en standard outputleverandør, normalt ved at bruge I/O-omdirigeringsfunktionen i shellen til at gemme outputtet i en specificeret fil. Gem den eksisterende iptables-regel
Tilføj restore iptables-reglen til bootbooten, bootbootfilen er /etc/rc.d/rc.local, rediger filen, og tilføj følgende kommando til sidst:
Endelig tilføjes eksekveringstilladelsen med følgende kommando:
Når indstillingerne er færdige, træder iptables-reglerne stadig i kraft, selv hvis serveren genstartes.
Alle containere i Docker er forbudt adgang til internettet (extranet),Ikke testet, kommandoen er som følger:
(Slut)
|