[RESOLVIDO] - Veja a atualização abaixo.
Instalei o servidor de contorno ( link ) no meu servidor e, infelizmente, o FirewallD descarta todos os pacotes provenientes de cliente.
Meu sistema:
Ubuntu 18.04 x64
Linux x 4.15.0-20-generic #21-Ubuntu SMP Tue Apr 24 06:16:15 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
Versão do FirewallD: 0.4.4.5
Versão do Docker: Docker version18.05.0-ce, build f150324
Regras do FirewallD:
root@x:~# firewall-cmd --get-active-zones
public
interfaces: ens3 docker0
root@x:~# firewall-cmd --list-ports
{outline_server_port}/tcp {outline_server_port}/udp
A resposta sobre isso link também não ajuda.
O Outline-Manager funciona bem, por exemplo: eu posso criar chaves e elas se conectam com sucesso, mas o Outline Client me dá o seguinte erro:
A networking error occurred. If this happens again, please submit
feedback.
Assim que eu paro o FirewallD usando o seguinte comando:
systemctl stop firewalld.service
O
outline-client funciona bem, e quando eu inicio o FirewallD, ele não funciona novamente.
O seguinte é do status do FirewallD
root@x:~# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2018-05-15 23:37:31 CEST; 8s ago
Docs: man:firewalld(1)
Main PID: 2479 (firewalld)
Tasks: 2 (limit: 1113)
CGroup: /system.slice/firewalld.service
└─2479 /usr/bin/python3 -Es /usr/sbin/firewalld --nofork --nopid
May 15 23:37:31 x systemd[1]: Starting firewalld - dynamic firewall daemon...
May 15 23:37:31 x systemd[1]: Started firewalld - dynamic firewall daemon.
May 15 23:37:32 x firewalld[2479]: WARNING: COMMAND_FAILED: '/sbin/iptables -w2 -t filter -n -L DOCKER-USER' failed: iptables: No chain/target/match by that name.
May 15 23:37:32 x firewalld[2479]: WARNING: COMMAND_FAILED: '/sbin/iptables -w2 -t filter -C DOCKER-USER -j RETURN' failed: iptables: Bad rule (does a matching rule exist in that chain?).
May 15 23:37:32 x firewalld[2479]: WARNING: COMMAND_FAILED: '/sbin/iptables -w2 -t filter -C FORWARD -j DOCKER-USER' failed: iptables: No chain/target/match by that name.
Eu habilitei
- Mascaramento no FirewallD também (
firewall-cmd --add-masquerade
)
- E também ativou o encaminhamento de pacotes ipv4 (
vim /etc/sysctl.conf
& net.ipv4.ip_forward=1
)
Agora, minha pergunta é: Como posso configurar o FirewallD para permitir pacotes do cliente de contorno?
Muito obrigado.
Outline uses docker.
UPDATE [2018.05.16]:
O problema reside na porta exclusiva que o contorno cria no contêiner docker para cada novo cliente AKA de chave, portanto, para corrigir o problema, faça o seguinte:
execute o seguinte comando (muito obrigado @abe)
ss -tlp
agora, todos os ss-servers com sua porta relacionada serão mostrados, por exemplo, o meu se parece com o seguinte:
root@dockerTest:~# ss -tlp
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 0.0.0.0:12615 0.0.0.0:* users:(("ss-server",pid=1162,fd=5))
LISTEN 0 128 127.0.0.53%lo:domain 0.0.0.0:* users:(("systemd-resolve",pid=617,fd=13))
LISTEN 0 128 0.0.0.0:ssh 0.0.0.0:* users:(("sshd",pid=824,fd=3))
LISTEN 0 128 [::]:ssh [::]:* users:(("sshd",pid=824,fd=4))
LISTEN 0 128 *:47515 *:* users:(("node",pid=1103,fd=12))
agora, como podemos ver na saída, o ss-server usa a porta "12615", devemos permitir essa porta no FirewallD. Para fazer isso, execute os seguintes comandos:
firewall-cmd --add-port=12615/tcp
firewall-cmd --add-port=12615/udp
Verifique o contorno do cliente, ele deve se conectar.
se tudo funcionar como esperado, execute os seguintes comandos, para tornar as alterações permanentes
firewall-cmd --add-port=12615/tcp --permanent
firewall-cmd --add-port=12615/udp --permanent
Muito obrigado @abe, agradeço muito sua ajuda.