Eu tentei este artigo: link mas tinha sem sorte.
Eu sou novo no iptables. Você pode por favor dar uma olhada na minha configuração?
Contêiner do Docker (estou usando este: link ) é executado no host modo de rede
Estou usando o Centos7 com firewalld
desativado e iptables
instalado e ativado.
ip_forward está ativado.
# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1
redirect-gateway def1
está desativado, pois não preciso rotear o tráfego da Internet por meio do servidor vpn.
Aqui estão as regras iniciais do iptables.
[root]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
DOCKER-USER all -- anywhere anywhere
DOCKER-ISOLATION all -- anywhere anywhere
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
DOCKER all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
DOCKER all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain DOCKER (2 references)
target prot opt source destination
Chain DOCKER-ISOLATION (1 references)
target prot opt source destination
DROP all -- anywhere anywhere
DROP all -- anywhere anywhere
RETURN all -- anywhere anywhere
Chain DOCKER-USER (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
Todo cliente tem um arquivo de configuração no diretório ccd
com um IP estático.
Aqui está como eu faço isso para um dos clientes ifconfig-push 10.8.0.102 10.8.0.1
Na minha openvpn.conf
, tenho a diretiva client-to-client
desativada.
Eu tenho tun0
iface e 10.8.0.0/24
network.
Primeiro, eu permito conexões já estabelecidas:
iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
Então, eu estabeleço regras para que dois clientes possam se comunicar:
iptables -A FORWARD -s 10.8.0.10 -d 10.8.0.102 -j ACCEPT
iptables -A FORWARD -s 10.8.0.102 -d 10.8.0.10 -j ACCEPT
Afinal, não funciona. Quando eu executo ping 10.8.0.102
do meu MAC (que tem ip 10.8.0.10) eu recebo:
➜ ~ ping 10.8.0.102
PING 10.8.0.102 (10.8.0.102): 56 data bytes
36 bytes from gwr-vl-201.**** (***.**.**.133): Communication prohibited by filter
Vr HL TOS Len ID Flg off TTL Pro cks Src Dst
4 5 00 5400 29e3 0 0000 3d 01 8749 192.168.1.103 10.8.0.102
192.168.1.103 - é o meu endereço de LAN
Aqui está minha tabela de rotas em um mac:
➜ ~ netstat -nr
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 192.168.1.1 UGSc 65 0 en0
10.8.0.1 10.8.0.10 UH 0 0 utun1
46.101.242.41/32 192.168.1.1 UGSc 0 0 en0
127 127.0.0.1 UCS 0 0 lo0
127.0.0.1 127.0.0.1 UH 24 2286 lo0
169.254 link#4 UCS 0 0 en0
192.168.1 link#4 UCS 0 0 en0
192.168.1.1/32 link#4 UCS 2 0 en0
192.168.1.1 84:16:f9:c5:c4:da UHLWIir 63 26 en0 1043
192.168.1.103/32 link#4 UCS 0 0 en0
224.0.0/4 link#4 UmCS 1 0 en0
224.0.0.251 1:0:5e:0:0:fb UHmLWI 0 0 en0
255.255.255.255/32 link#4 UCS 0 0 en0
E minha tabela de rotas no servidor:
[]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 217.182.88.1 0.0.0.0 UG 100 0 0 eth0
10.8.0.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0
10.8.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
172.19.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-44c0269fbf91
217.**.**.1 0.0.0.0 255.255.255.255 UH 100 0 0 eth0
217.**.**.**1 0.0.0.0 255.255.255.255 UH 100 0 0 eth0
O que estou perdendo?
Obrigado antecipadamente!