UFW: bloqueia todo o tráfego para a porta 3306

1

Como posso bloquear todo o tráfego para apenas uma porta? Tome a seguinte situação:

  • Ubuntu Desktop VM
  • O navegador tem acesso à internet (a porta 80 permanece aberta)
  • Os serviços de atualização do Ubuntu funcionam normalmente (não podem ser bloqueados)
  • Cliente gráfico do MySQL instalado

Em uma configuração normal, o cliente MySQL pode se conectar a um servidor mysql hospedado, como no Amazon EC2, porque o tráfego de saída é permitido.

Eu tenho a seguinte configuração agora. Eu pensei que isso iria bloquear 3306, mas eu ainda posso fazer conexões com a Amazon usando o cliente MySQL. Eu reiniciei para ter certeza de que todas as regras foram aplicadas.

     To                         Action      From
     --                         ------      ----
[ 1] 22                         ALLOW IN    Anywhere
[ 2] 80                         ALLOW IN    Anywhere
[ 3] 5900                       ALLOW IN    Anywhere
[ 4] Anywhere                   DENY IN     3306
[ 5] 3306                       DENY IN     Anywhere
[ 6] 22                         ALLOW IN    Anywhere (v6)
[ 7] 80                         ALLOW IN    Anywhere (v6)
[ 8] 5900                       ALLOW IN    Anywhere (v6)
[ 9] Anywhere (v6)              DENY IN     3306
[10] 3306                       DENY IN     Anywhere (v6)

Mais algumas explicações ...

Eu uso uma VM para testar um aplicativo da web existente. Eu faço uma cópia do ambiente ao vivo, restaure isso na VM. O aplicativo ao vivo está hospedado no Amazon EC2. O servidor de banco de dados para o aplicativo ativo não é localhost, mas outro servidor. Com a Amazon, você pode usar um endereço público para a string de conexão, algo como 12.34.56.78.eu-west-1.compute.amazonaws.com . Internamente, eles captam isso e um endereço IP interno é usado. Isso tem a vantagem de que, quando uma instância falha e você precisa criar outra instância com outro endereço IP interno, a string de conexão não precisa ser alterada.

Esse endereço funciona de fora da AWS, por isso funciona na minha VM. Eu posso conectar da minha VM ao banco de dados de produção. Estou ciente disso e sei que devo editar a string de conexão. Às vezes eu esqueço e depois o banco de dados de produção é usado. Eu prefiro receber uma mensagem de erro grande e feia do meu ambiente de teste, informando que a conexão com o banco de dados falhou. (Se de alguma forma, outro cliente na rede local gostaria de se conectar ao servidor mysql na VM, isso não é realmente um problema.)

Então, como posso fazer isso funcionar? Eu pensei que bloquear a porta 3306 no firewall poderia fazer o trabalho.

    
por SPRBRN 21.11.2013 / 17:19

1 resposta

1

Como o servidor Ubuntu conecta-se fora da Amazon, definindo DENY IN na porta 3306 não para esta conexão ao exterior.

No mínimo, você precisaria negar os pacotes tcp e udp de saída na porta 3306:

sudo ufw deny out 3306

Mas ainda mais seguro seria negar todos os pacotes tcp e udp na porta 3306:

sudo ufw deny 3306
    
por 27.11.2013 / 16:15