Bloquer les ports sur l'eth0

Le problème exposé dans ce sujet a été résolu.

Bonsoir :)
Après m'être lancé sur l'aventure DOcker, je me suis lancé sur l'aventure sécurité sur un serveur (car par défaut, je crois pas que les paramètres Iptables de docker sont… Juste enfin bon ^^
Je suis depuis cette après midi (15h) sur un problème, comment bloquer les ports extérieurs (sur l'interface eth0) sans affecter les autres réseaux docker ? La sécurité que j'ai mis en place c'est: tout bloquer puis ouvrir les ports un à un, sauf que cela bloque les ports en interne. Enfin je n'arrive pas à communiquer avec mes machines ^^' et les tutoriels sur ça ne sont plus d'actualité (docker et ses réseaux interne, ça c'est vite mis à jour).
Il est possible (plus que probable) que je m'y prennes comme un pied (je crois qu'une option comme ça existait sur docker mais j'arrive pas à remettre la main dessus).

En résumé (car j'ai encore du partir dans tout les sens x) ) Je ne veux pas que docker viennent casser mes iptables, donc j'ai défini les miennes, hors celle ci bloquent bien tout les ports sauf le 80,443,53 mais sur toute les interfaces (ou juste sur l'interface eth0 donc le problème viendrait (encore) d'un routing) et sur les interfaces créé par docker j'utilise le port 3000, 3306…

Voici mes différentes configuration: iptables :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#!/bin/sh 

# Réinitialise les règles
iptables -t filter -F 
iptables -t filter -X 

# Bloque tout le trafic
iptables -t filter -P INPUT DROP 
#iptables -t filter -P FORWARD DROP 
iptables -t filter -P OUTPUT DROP 

# Autorise les connexions déjà établies et localhost
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
iptables -t filter -A INPUT -i lo -j ACCEPT 
iptables -t filter -A OUTPUT -o lo -j ACCEPT 

# ICMP (Ping)
iptables -t filter -A INPUT  -p icmp -j ACCEPT 
iptables -t filter -A OUTPUT  -p icmp -j ACCEPT 

# SSH
iptables -t filter -A INPUT  -p tcp --dport 22 -j ACCEPT 
iptables -t filter -A OUTPUT  -p tcp --dport 22 -j ACCEPT 

# DNS
iptables -t filter -A OUTPUT  -p tcp --dport 53 -j ACCEPT 
iptables -t filter -A OUTPUT  -p udp --dport 53 -j ACCEPT 
iptables -t filter -A INPUT  -p tcp --dport 53 -j ACCEPT 
iptables -t filter -A INPUT  -p udp --dport 53 -j ACCEPT 

# HTTP
iptables -t filter -A OUTPUT  -p tcp --dport 80 -j ACCEPT 
iptables -t filter -A INPUT  -p tcp --dport 80 -j ACCEPT 

# HTTPS
iptables -t filter -A OUTPUT   -p tcp --dport 443 -j ACCEPT 
iptables -t filter -A INPUT   -p tcp --dport 443 -j ACCEPT 

# NTP (horloge du serveur) 
iptables -t filter -A OUTPUT   -p udp --dport 123 -j ACCEPT

# CONNEXION BRIDGE DOCKER0 AND ETH0
iptables -A FORWARD -i docker0 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o docker0 -j ACCEPT

iptables -A FORWARD -i br-55a5691432fc -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o br-55a5691432fc -j ACCEPT

iptables -A FORWARD -i br-55a5691432fc -o docker0 -j ACCEPT
iptables -A FORWARD -i docker0 -o br-55a5691432fc -j ACCEPT

iptables -A FORWARD -i br-55a5691432fc -o br-975d8918ff58 -j ACCEPT
iptables -A FORWARD -i br-975d8918ff58 -o br-55a5691432fc -j ACCEPT

iptables -A FORWARD -i br-975d8918ff58 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o br-975d8918ff58 -j ACCEPT

iptables -A FORWARD -i br-975d8918ff58 -o docker0 -j ACCEPT
iptables -A FORWARD -i docker0 -o br-975d8918ff58 -j ACCEPT

iptables -A FORWARD -i br-ec12cf5ed535 -o br-975d8918ff58 -j ACCEPT
iptables -A FORWARD -i br-975d8918ff58 -o br-ec12cf5ed535 -j ACCEPT

iptables -A FORWARD -i br-ec12cf5ed535 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o br-ec12cf5ed535 -j ACCEPT

iptables -A FORWARD -i br-ec12cf5ed535 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o br-ec12cf5ed535 -j ACCEPT

# CONNEXION IPV6
ip6tables -A FORWARD -i docker0 -o eth0 -j ACCEPT
ip6tables -A FORWARD -i eth0 -o docker0 -j ACCEPT

ip6tables -A FORWARD -i br-55a5691432fc -o eth0 -j ACCEPT
ip6tables -A FORWARD -i eth0 -o br-55a5691432fc -j ACCEPT

ip6tables -A FORWARD -i br-55a5691432fc -o docker0 -j ACCEPT
ip6tables -A FORWARD -i docker0 -o br-55a5691432fc -j ACCEPT

ip6tables -A FORWARD -i br-55a5691432fc -o br-975d8918ff58 -j ACCEPT
ip6tables -A FORWARD -i br-975d8918ff58 -o br-55a5691432fc -j ACCEPT

ip6tables -A FORWARD -i br-975d8918ff58 -o eth0 -j ACCEPT
ip6tables -A FORWARD -i eth0 -o br-975d8918ff58 -j ACCEPT

ip6tables -A FORWARD -i br-975d8918ff58 -o docker0 -j ACCEPT
ip6tables -A FORWARD -i docker0 -o br-975d8918ff58 -j ACCEPT

ip6tables -A FORWARD -i br-ec12cf5ed535 -o br-975d8918ff58 -j ACCEPT
ip6tables -A FORWARD -i br-975d8918ff58 -o br-ec12cf5ed535 -j ACCEPT

ip6tables -A FORWARD -i br-ec12cf5ed535 -o eth0 -j ACCEPT
ip6tables -A FORWARD -i eth0 -o br-ec12cf5ed535 -j ACCEPT

ip6tables -A FORWARD -i br-ec12cf5ed535 -o eth0 -j ACCEPT
ip6tables -A FORWARD -i eth0 -o br-ec12cf5ed535 -j ACCEPT

iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

ifconfig

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
br-4bb1c4eeab0b Link encap:Ethernet  HWaddr 02:42:9e:96:ef:1c
          inet addr:172.19.255.254  Bcast:0.0.0.0  Mask:255.255.0.0
          inet6 addr: fe80::42:9eff:fe96:ef1c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:100 errors:0 dropped:0 overruns:0 frame:0
          TX packets:60 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:7428 (7.2 KiB)  TX bytes:4628 (4.5 KiB)

br-55a5691432fc Link encap:Ethernet  HWaddr 02:42:44:d4:6f:39
          inet addr:172.18.0.1  Bcast:0.0.0.0  Mask:255.255.0.0
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

br-5d86bba2f2e9 Link encap:Ethernet  HWaddr 02:42:9e:4b:8d:bf
          inet addr:172.20.255.254  Bcast:0.0.0.0  Mask:255.255.0.0
          inet6 addr: fe80::42:9eff:fe4b:8dbf/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:16 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1072 (1.0 KiB)  TX bytes:648 (648.0 B)

docker0   Link encap:Ethernet  HWaddr 02:42:20:40:44:26
          inet addr:172.17.0.1  Bcast:0.0.0.0  Mask:255.255.0.0
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

eth0      Link encap:Ethernet  HWaddr 00:07:cb:0b:0f:57
          inet addr:163.172.58.7  Bcast:163.172.58.255  Mask:255.255.255.0
          inet6 addr: fe80::207:cbff:fe0b:f57/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2670 errors:0 dropped:0 overruns:0 frame:0
          TX packets:488 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:177979 (173.8 KiB)  TX bytes:45439 (44.3 KiB)
          Memory:80000000-8001ffff

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:6 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:300 (300.0 B)  TX bytes:300 (300.0 B)

veth2b3c286 Link encap:Ethernet  HWaddr 36:6c:1a:1a:60:9d
          inet6 addr: fe80::346c:1aff:fe1a:609d/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:18 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:648 (648.0 B)  TX bytes:1388 (1.3 KiB)

veth60f1416 Link encap:Ethernet  HWaddr be:fa:b7:0e:3a:b6
          inet6 addr: fe80::bcfa:b7ff:fe0e:3ab6/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:18 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:648 (648.0 B)  TX bytes:1428 (1.3 KiB)

veth804d1ec Link encap:Ethernet  HWaddr 16:5b:32:c5:01:cd
          inet6 addr: fe80::145b:32ff:fec5:1cd/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:92 errors:0 dropped:0 overruns:0 frame:0
          TX packets:70 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:8180 (7.9 KiB)  TX bytes:5416 (5.2 KiB)

veth8c60634 Link encap:Ethernet  HWaddr 0e:8a:dc:af:09:bc
          inet6 addr: fe80::c8a:dcff:feaf:9bc/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:24 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:648 (648.0 B)  TX bytes:1944 (1.8 KiB)

route :

1
2
3
4
5
6
7
8
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         163.172.58.1    0.0.0.0         UG    0      0        0 eth0
163.172.58.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
172.18.0.0      0.0.0.0         255.255.0.0     U     0      0        0 br-55a5691432fc
172.19.0.0      0.0.0.0         255.255.0.0     U     0      0        0 br-4bb1c4eeab0b
172.20.0.0      0.0.0.0         255.255.0.0     U     0      0        0 br-5d86bba2f2e9

(et mon docker compose ;) )

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
version: '2'
services:
 mysql:
  image: mysql
  container_name: mysql
  ports:
  - "3306:3306"
  volumes:
  - /data/mysql:/var/lib/mysql
  environment:
  - MYSQL_ROOT_PASSWORD=okpwmeeou
  restart: always
  security_opt:
  - label:user:docker
  networks:
   back:
    ipv4_address: 172.19.200.1

 git:
  image: gogs/gogs
  container_name: git
  ports:
  - "2022:22"
  - "8081:3000"
  volumes:
  - /docker/gogs/data:/data
  - /docker/gogs/public:/app/gogs/public
  depends_on: 
  - mysql
  # network 172.15.200.2 : 220 -> 225 : app back-node
  networks:
   front:
    ipv4_address: 172.20.200.2
   back:
    ipv4_address: 172.19.200.2
  restart: always
  security_opt:
  - label:user:docker

 #letsencrypt:
 # image: quay.io/letsencrypt/letsencrypt:latest
 # command: "sleep 6 && letsencrypt certonly --standalone -d git.dryusdan.fr --text --agree-tos --email contact@dryusdan.fr --server https://acme-v01.api.letsencrypt.org/directory --rsa-key-size 4096 --verbose --renew-by-default --standalone-supported-challenges http-01"
 # entrypoint: ""
 # volumes:
 #   - /etc/letsencrypt
 #   - /var/lib/letsencrypt
 # security_opt:
 # - label:user:docker
 # ports:
 #   - "8080:80"
 #   - "4443:443"
 # environment:
 #   - TERM=xterm
 # networks:
 #  front:
 #   ipv4_address: 172.20.200.3

 proxy:
  image: wonderfall/nginx
  ports:
  - "80:8000"
  - "443:4430"
  #- /docker/proxy/certs:/certs
  #links:
  #- letsencrypt
  volumes:
  - /docker/proxy/sites-enabled:/sites-enabled
  - /docker/proxy/conf:/conf.d
  - /docker/proxy/log:/var/log/nginx
  - /etc/letsencrypt/certificate:/certs
  - /docker/proxy/passwd:/passwds
  - /docker/proxy/www:/www
  - /etc/ssl/private:/etc/ssl/private
  #volumes_from:
  #- letsencrypt
  container_name: nginx-proxy
  restart: always
  security_opt:
  - label:user:docker
  networks:
   front:
    ipv4_address: 172.20.200.1

networks:
 back:
  driver: bridge
  driver_opts:
   com.docker.network.enable_ipv6: "false"
  ipam:
   driver: default
   config:
   - subnet: 172.19.200.0/16
     ip_range: 172.19.255.0/24
     gateway: 172.19.255.254
 front:
  driver: bridge
  driver_opts:
   com.docker.network.enable_ipv6: "false"
  ipam:
   driver: default
   config:
   - subnet: 172.20.200.0/16
     ip_range: 172.20.255.0/24
     gateway: 172.20.255.254

Je crois avoir fait le tour, si vous voulez plus d'info, dites le moi ;)

+0 -0

Le problème venait de la configuration docker et des iptab!es qui s'entrechoquant. Maintenant je bloques tout, docker ouvre ses ports (les autres sont ouvert en local avec -p 127.0.0.1:3306:3306 (par exemple ☺) Il faut juste modifier légèrement le deamon ;-)

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte