Krav: Ett privat hemalbumsystem byggdes med Docker-containrar, vilket är begränsat till åtkomst och visning på hemnätverket, eftersom Docker-bilden utvecklas av en tredjepartsutvecklare, och jag vet inte om det kommer att vara en säkerhetssituationGenerera integritetsbrottFör att bättre lösa detta problem vill vi lägga till en integritetsgaranti genom att förbjuda Docker-containrar att få tillgång till Internet (externt nätverk).
Den här artikeln använder ett CentOS7-system, Docker-version: 20.10.20, och använder nginx-bilder för att tillhandahålla tester.
Internetåtkomst (extranet) är tillåten som standard
Skapa en ny nginx-container som tillhandahåller webbtjänster som kan nås av18080 Portåtkomst, containern kan som standard få tillgång till Internet (externt nätverk), kommandot är följande:
Gå in i behållaren och begär resurserna på denna sida via curl-kommandot, som kan erhållas normalt, som visas i figuren nedan:
Inaktivera Docker-containrar från att komma åt internet (extranet)
Först behöver vi skapa ett anpassat nätverk via docker och skapa ett virtuellt nätverkskort, med följande kommando:
Sätt en regel på det virtuella nätverkskortet via iptables för att förbjuda åtkomst till Internet med följande kommando:
Oavsett om iptables-tjänsten är tillgänglig eller inte, oavsett om brandväggen är påslagen eller inte,IPTables-regler som lagts till via kommando träder i kraft omedelbart!!!
Obs: Denna plan är lämpligOm olika containrar ansluter till samma nätverk kommer containrarna inte kunna kommunicera med varandra!!!!
Titta på DOCKER-USER-regeln som visas nedan:
Skapa en ny nginx-container igen, containern tillhandahåller webbtjänsten, och18081 Porten tillhandahåller tjänster till omvärlden, och containern är förbjuden att få tillgång till Internet (offentligt nätverk), kommandot är följande:
Vi har uppnått vårt mål, men,Efter att servern startats om försvinner reglerna vi skapade i iptablesHur kan vi automatiskt ladda våra anpassade regler efter att servern startats om?
Kommandot iptables-save används för att exportera iptables-tabellen i Linux-kärnan till en standardleverantör av utdata, vanligtvis med hjälp av I/O-omdirigeringsfunktionen i skalet för att spara dess utdata till en specificerad fil. Spara den befintliga iptables-regeln
Lägg till restore iptables-regeln i bootbooten, bootbootfilen är /etc/rc.d/rc.local, redigera filen och lägg till följande kommando i slutet:
Slutligen, lägg till exekveringsbehörigheten med följande kommando:
När inställningarna är klara kommer iptables-reglerna fortfarande att gälla även om servern startas om.
Alla containrar i Docker är förbjudna att komma åt Internet (extranet),Inte testad, kommandot är följande:
(Slut)
|