Não é possível conectar-se ao MariaDB através de um túnel OpenVPN

1

Estou configurando um ambiente de teste / laboratório para uma equipe de desenvolvedores que também precisam de um banco de dados. Eu configurei um Centos 7 VPS no qual instalei o servidor de aplicativos, o banco de dados e uma instância do OpenVPN.

Estou usando o iptables para filtrar o tráfego, e nada além do 1194 / udp está exposto à internet, estou aceitando apenas o que eu preciso da interface do túnel. (Eu estou realmente aceitando 22 / tcp da internet temporariamente, porque eu estou mexendo com a configuração vpn. Eu estou usando chaves ssh e root não pode fazer o login remotamente de qualquer maneira)

O problema é que consigo acessar o servidor via SSH e também vejo a página de destino do aplicativo (que é exibida em 8080 / tcp), mas não consigo me conectar ao banco de dados.

Aqui estão as regras do firewall:

[root@grolloserver ~]# iptables -nvL
Chain INPUT (policy DROP 198 packets, 19717 bytes)
 pkts bytes target     prot opt in     out     source               destination
48218 4934K f2b-SSH    tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:22
25541 1143K ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
    3   120 ACCEPT     tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:22
72983   14M ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
   31  1302 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:1194
    2  1570 ACCEPT     icmp --  tun0   *       0.0.0.0/0            0.0.0.0/0
    2    92 ACCEPT     tcp  --  tun0   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:22
    1    44 ACCEPT     tcp  --  tun0   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:8080
    0     0 ACCEPT     tcp  --  tun0   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:3306
36412 3741K LOGGING    all  --  *      *       0.0.0.0/0            0.0.0.0/0

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
  128  6608 ACCEPT     all  --  tun0   *       0.0.0.0/0            0.0.0.0/0

Chain OUTPUT (policy ACCEPT 1077 packets, 287K bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain LOGGING (1 references)
 pkts bytes target     prot opt in     out     source               destination
36412 3741K LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0            LOG flags 0 level 4 prefix "iptables dropped: "

Chain f2b-SSH (1 references)
 pkts bytes target     prot opt in     out     source               destination

Coisas que eu tentei:

  • Definir a política INPUT padrão como ACCEPT - não funcionou
  • Ligando o mariadb a eth0 e aceitando (por 30 segundos) o tráfego de qualquer lugar (eu poderia conectar ao banco de dados)
  • Ligar o mariadb ao tun0 - não funcionou
  • Ligando o mariadb a cada interface (definindo bind-address como 0.0.0.0 e comentando)
  • Parando o mariadb e definindo o sshd para ouvir 22 e 3306 (não consegui conectar ao 3306)
  • Farejando o tráfego, vejo 3306 / tcp vindo de tun0, mas colocar uma regra como INPUT # 1 para registrar cada tráfego 3306 / tcp não mostrou nada

O Firewalld está mascarado e parado. O SELinux está desativado. O mssfix está configurado para 1430 (1470, que é o MTU com o qual eu faço ping com êxito no gateway da VPN - 40).

Vocês têm algum conselho? Obrigado.

EDIT: eu esqueci de mencionar, a conexão expira após ~ 15 segundos. Contadores Iptables estão em zero (eu não os reiniciei). ss -nal4 mostra o mariadb escutando no endereço ip da interface tun0.

    
por greseth 29.12.2017 / 01:23

2 respostas

1

Resolvido! O problema era que eu tinha definido uma regra de pré-roteamento para solicitações de banco de dados NAT para outro banco de dados e, claro, eu esqueci sobre isso.

Essa é a razão pela qual o tráfego nem chegou à cadeia INPUT.

    
por 30.12.2017 / 00:33
0

Por padrão, o Mariadb não está permitindo o log remoto. Você deve ter um olhar para a sua configuração e eu até acho que também os bancos de dados devem ser concedidos de uma maneira que você se conecte a eles remotamente. Eu estive lá.

    
por 29.12.2017 / 23:37