Requisiti: È stato costruito un sistema privato di album domestico utilizzando container Docker, limitato all'accesso e alla visualizzazione sulla LAN domestica, perché l'immagine Docker è sviluppata da uno sviluppatore terzo, e non so se sarà una situazione di sicurezzaGenera violazioni della privacyPer risolvere meglio questo problema, vogliamo aggiungere una garanzia di privacy vietando ai container Docker di accedere a Internet (rete esterna).
Questo articolo utilizza un sistema CentOS7, versione Docker: 20.10.20, e utilizza immagini nginx per fornire test.
L'accesso a Internet (extranet) è consentito di default
Crea un nuovo container nginx che fornisca servizi web accessibili tramite18080 Accesso alla porta, il container può accedere a Internet (rete esterna) di default, il comando è il seguente:
Inserisci il contenitore e richiedi le risorse di questo sito tramite il comando curl, che può essere ottenuto normalmente, come mostrato nella figura sottostante:
Disabilitazione dei container Docker dall'accesso a internet (extranet)
Per prima cosa, dobbiamo creare una rete personalizzata tramite docker e creare una scheda di rete virtuale, con il seguente comando:
Stabilisci una regola sulla scheda virtuale tramite iptables per vietare l'accesso a Internet con il seguente comando:
Indipendentemente dal fatto che il servizio iptables sia disponibile o meno, indipendentemente dal fatto che il firewall sia attivato o meno,Le regole iptables aggiunte tramite comando entrano in vigore immediatamente!!!
Nota: Questo piano è appropriatoSe contenitori diversi si uniscono alla stessa rete, i contenitori non potranno comunicare tra loro!!!!
Guarda la regola DOCKER-USER come mostrato di seguito:
Crea di nuovo un nuovo container nginx, il container fornisce il servizio web, e il18081 La porta fornisce servizi al mondo esterno e il container è vietato dall'accesso a Internet (rete pubblica), il comando è il seguente:
Abbiamo raggiunto il nostro obiettivo, ma,Dopo aver riavviato il server, le regole che abbiamo creato in iptables sparisconoCome possiamo caricare automaticamente le nostre regole personalizzate dopo che il server è stato riavviato?
Il comando iptables-save viene utilizzato per esportare la tabella iptables nel kernel Linux a un fornitore standard di output, solitamente utilizzando la funzione di reindirizzamento I/O nella shell per salvarne l'output in un file specificato. Salva la regola iptables esistente
Aggiungi la regola di restore iptables all'avvio di avvio, il file di avvio è /etc/rc.d/rc.local, modifica il file e aggiungi il seguente comando alla fine:
Infine, aggiungi il permesso di esecuzione con il seguente comando:
Dopo aver completato le impostazioni, le regole iptables continueranno a entrare in vigore anche se il server viene riavviato.
Tutti i container in Docker sono vietati dall'accesso a Internet (extranet),Non testato, il comando è il seguente:
(Fine)
|