por que usar o tunelamento ssh para o servidor mysql?

2

Eu tenho o servidor ubuntu atuando como meu servidor de lâmpada para meus sites php.

O servidor mysql é instalado e aberto para a porta localhost.

Eu li sobre como encapsular através do ssh para o meu servidor mysql.

mas eu não entendi porque isso é melhor do que abrir o servidor mysql diretamente para a porta da internet.

porque de qualquer forma, um hacker poderia forçar a porta a usar senhas. ou porta mysql (3306) se aberto para o público ou ssh (22) se estiver usando tunelamento.

então porque é melhor usar o tunelamento ssh para o mysql (e muitas outras aplicações de servidor)?

    
por ajsie 29.03.2010 / 15:18

4 respostas

6

Se você usar o tunelamento SSH, suas senhas SSH e MySQL serão criptografadas durante a comunicação, bem como todos os dados que passarem pelo túnel. Se você não estiver usando um túnel SSH e não estiver usando o suporte SSL do MySQL, não haverá criptografia e um terceiro mal-intencionado poderá usar sniffing de pacotes ou outros meios nefastos para espionar suas comunicações.

Além disso, se você estiver usando tunelamento SSH, você será alertado se a chave SSH da máquina remota mudar. Isso não acontecerá com o MySQL padrão, o que significa que um invasor pode usar spoofing de IP ou um ataque Man in the Middle interromper / interferir / escutar suas comunicações.

Para mais informações, consulte:

por 29.03.2010 / 15:28
5

but i havent understood why this is better than opening the mysql server directly for the internet port. cause in either way, a hacker could brute force the port for passwords

A resposta simples é que existe uma cultura que confia no SSH para fazer segurança melhor do que o MySQL. Um defensor da abordagem SSH pode argumentar que o protocolo de troca de senhas do MySQL foi comprometido no passado, então é melhor confiar no SSH.

Você está certo, no entanto. Uma senha SSH pode ser forçada brutal quase tão facilmente quanto uma senha do MySQL pode.

Felizmente, o SSH suporta vários métodos de autenticação, sendo as senhas apenas uma delas. Para os hosts da Internet, vi administradores de sistemas desabilitarem totalmente a autenticação de senha, optando por métodos mais strongs, como a autenticação de chave pública. Veja RSAAuthentication em sshd_config (5), e também ssh-keygen (1) para mais informações sobre autenticação de chaves públicas.

Espero que isso ajude!

    
por 29.03.2010 / 17:09
2

Eu não usaria o tunelamento SSH para o tráfego de aplicativos, a menos que você tenha um bom motivo para isso. Se o aplicativo for executado no mesmo servidor que o banco de dados, você provavelmente deve usar o soquete MySQL e desabilitar a rede para o MySQL. Isso é especialmente verdadeiro se o servidor for executado diretamente na Internet.

Se você tiver vários servidores, você pode usar SSL nativamente no MySQL para criptografar o tráfego em trânsito.

Suspeito que você esteja se referindo a desenvolvedores em ambientes maiores usando o encapsulamento SSH para conexões de clientes. Normalmente, isso ocorre porque o acesso ao firewall não é concedido diretamente ao MySQL, mas é permitido para o SSH, onde o SSH permitiria uma solução alternativa sem aumentar o alcance do MySQL.

MySQL usando SSL para conexões seguras

    
por 29.03.2010 / 16:20
0

Porque você pode usar a autenticação de certificados antes da autenticação do MySQL.

    
por 29.03.2010 / 15:29

Tags