web-dev-qa-db-fra.com

bloquer les appels Internet sortants depuis l'intérieur d'un conteneur

Cette question n'est pas similaire à mon post précédent . C’est assez simple, je pense, mais je n’en sais pas assez sur les réseaux et le pare-feu Ubuntu.

J'ai suivi cet article et installé un conteneur Linux dans mon serveur Ubuntu sur ec2. Je peux accéder à Internet depuis mon conteneur.

                       | ----Ubuntu Server on EC2 -----
 ==== INTERNET <==== > |  some magic routes traffic  <===   lxc container
                       |                                    [192.168.3.1] 
                       |------------------------------

J'avais besoin d'Internet à l'intérieur du conteneur uniquement pour installer des dépendances pour mon application. Maintenant, j'ai besoin de couper l'accès à Internet. Cela ne me dérangerait pas, par exemple, d’empêcher un certain compte d’utilisateur d’Internet.

Voici comment se déroule la configuration du réseau. Toutes les idées, indices ou suggestions sur ce que je devrais lire seront appréciés:


Il y a un pont de réseau:

brctl addbr br0
brctl setfd br0 0
ifconfig br0 192.168.3.1 up

Puis j'ai fait ceci:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sysctl -w net.ipv4.ip_forward=1

Alors ceci: cat /etc/dnsmasq.conf

domain-needed
bogus-priv
interface = br0
listen-address = 127.0.0.1
listen-address = 192.168.3.1
expand-hosts
domain = containers
dhcp-range = 192.168.3.50,192.168.3.200,1h

Puis: cat etc/dhcp3/dhclient.conf

prepend domain-name-servers 127.0.0.1;
prepend domain-search "containers.";

Puis j'ai couru:

dhclient -e IF_METRIC = 100 -pf /var/run/dhclient.eth0.pid -lf /var/lib/dhcp/dhclient.eth0.leases eth0

3
gideon

Alors je l'ai compris moi-même.

Je fais juste:

sysctl -w net.ipv4.ip_forward=0

Et le tour est joué! :) Bien sûr, si je fais ping www.google.com cela résout l'IP pour google alors échoue. Donc, le DNS fonctionne toujours.

Une solution simple bascule pour cela serait appréciée avec des votes :)

2
gideon