Krav: Et privat hjemmealbumsystem ble bygget med Docker-containere, som er begrenset til tilgang og visning på hjemmenettverket, fordi Docker-bildet er utviklet av en tredjepartsutvikler, og jeg vet ikke om det vil være en sikkerhetssituasjonGenerere personvernbruddFor å løse dette problemet bedre, ønsker vi å legge til en personverngaranti ved å forby Docker-containere å få tilgang til Internett (eksternt nettverk).
Denne artikkelen bruker et CentOS7-system, Docker-versjon: 20.10.20, og bruker nginx-bilder for å levere tester.
Internett-tilgang (ekstranett) er tillatt som standard
Lag en ny nginx-container som tilbyr webtjenester som kan nås av18080 Porttilgang kan containeren som standard få tilgang til Internett (eksternt nettverk), kommandoen er som følger:
Gå inn i beholderen og be om ressursene til dette nettstedet via curl-kommandoen, som kan oppnås normalt, som vist i figuren nedenfor:
Deaktivering av Docker-containere fra internett (extranet)
Først må vi lage et egendefinert nettverk via docker og lage et virtuelt nettverkskort, med følgende kommando:
Sett en regel på det virtuelle nettverkskortet via iptables for å forby tilgang til Internett med følgende kommando:
Uansett om iptables-tjenesten er tilgjengelig eller ikke, uavhengig av om brannmuren er slått på eller ikke,IPTables-regler lagt til ved kommando trer i kraft umiddelbart!!!
Merk: Denne planen er passendeHvis forskjellige containere kobler seg til samme nettverk, vil ikke containerne kunne kommunisere med hverandre!!!!
Se på DOCKER-USER-regelen som vist nedenfor:
Opprett en ny nginx-container igjen, containeren leverer webtjenesten, og18081 Porten leverer tjenester til omverdenen, og containeren er forbudt å få tilgang til Internett (offentlig nettverk), kommandoen er som følger:
Vi har nådd målet vårt, men,Etter omstart av serveren vil reglene vi har laget i iptables forsvinneHvordan kan vi automatisk laste inn våre egendefinerte regler etter at serveren er startet på nytt?
iptables-save-kommandoen brukes til å eksportere iptables-tabellen i Linux-kjernen til en standard utdataleverandør, vanligvis ved å bruke I/O-omdirigeringsfunksjonen i skallet for å lagre utdataene til en spesifisert fil. Lagre den eksisterende iptables-regelen
Legg til restore iptables-regelen i oppstartsoppstarten, oppstartsfilen er /etc/rc.d/rc.local, rediger filen, og legg til følgende kommando på slutten:
Til slutt, legg til utførelsestillatelsen med følgende kommando:
Etter at innstillingene er fullført, vil iptables-reglene fortsatt tre i kraft selv om serveren startes på nytt.
Alle containere i Docker er forbudt å få tilgang til Internett (extranet),Ikke testet, kommandoen er som følger:
(Slutt)
|