Túneis cifrados com SSH
Deseja acessar de forma segura o seu banco de dados e sem precisar abrir porta no firewall? Túnel. Acessar a porta 25 fazendo relay sem mudar as configurações do Postfix? Túnel. Existem inúmeras vantagens do uso de um túnel, inclusive a implantação de uma VPN é feita utilizando-se um túnel. Este artigo destina-se a explicar como usar o recurso de tunelamento existente no próprio SSH.
Introdução
Pode-se realmente dizer que o SSH é o "canivete suíço" do administrador de sistemas. Muito mais do que apenas uma ferramenta segura que permite login remoto, esta aplicação permite realizar outras coisas.
Pode-se usar o ssh dentro de scripts para executar comandos remotos automaticamente em seus servidores. Esta técnica fica ainda mais interessante quando o teu script se autentica nos servidores sem senha, usando o método de desafio e resposta do ssh.
Apesar de existir o utilitário scp e mesmo o sftp. ambos usando o ssh como meio de transporte, cópias podem ser feitas apenas com ssh. Usar ferramentas fáceis para fazer algo é coisa de usuário. Administrador que é administrador copia seus dados em modo raw, no braço e na raça com um "simples" ssh:
tar cz dados/ | ssh root@172.20.1.132 "tar xz && echo SUCESSO na cópia. SCP é para os fracos"
root@172.20.1.132's password:
SUCESSO na cópia. SCP é para os fracos
Após este comando silencioso existirá um diretório dados no home do root e com tudo que tem o diretório dados original. O "z" serve para gzipar os dados, diminuindo o tráfego da rede. Observe que o && dentro das aspas será executado na máquina 172.20.1.132 e apenas se o comando tar retornou sucesso. Se der erro, o próprio tar irá imprimir a mensagem correspondente e o "SUCESSO..." não será impresso. Quer umas "mensagenzinhas" para não ficar perdido? Insira o parâmetro "v" ao tar.
Se você passear pelas configurações do ssh server, verá que existem muitos parâmetros úteis para a segurança, como restringir o uso apenas a determinados usuários ou grupo de usuários, ou simplesmente negar acesso a conta de root, obrigando o usuário a logar-se com o seu user e depois executar um su ou sudo.
Bom, copiar arquivos com ssh impressiona os leigos (impressiona mais com netcat!), mas deixando as brincadeiras de lado, tem muitas coisas realmente úteis no ssh. Uma delas é o tunelamento de dados.
Pode-se usar o ssh dentro de scripts para executar comandos remotos automaticamente em seus servidores. Esta técnica fica ainda mais interessante quando o teu script se autentica nos servidores sem senha, usando o método de desafio e resposta do ssh.
Apesar de existir o utilitário scp e mesmo o sftp. ambos usando o ssh como meio de transporte, cópias podem ser feitas apenas com ssh. Usar ferramentas fáceis para fazer algo é coisa de usuário. Administrador que é administrador copia seus dados em modo raw, no braço e na raça com um "simples" ssh:
tar cz dados/ | ssh root@172.20.1.132 "tar xz && echo SUCESSO na cópia. SCP é para os fracos"
root@172.20.1.132's password:
SUCESSO na cópia. SCP é para os fracos
Após este comando silencioso existirá um diretório dados no home do root e com tudo que tem o diretório dados original. O "z" serve para gzipar os dados, diminuindo o tráfego da rede. Observe que o && dentro das aspas será executado na máquina 172.20.1.132 e apenas se o comando tar retornou sucesso. Se der erro, o próprio tar irá imprimir a mensagem correspondente e o "SUCESSO..." não será impresso. Quer umas "mensagenzinhas" para não ficar perdido? Insira o parâmetro "v" ao tar.
Se você passear pelas configurações do ssh server, verá que existem muitos parâmetros úteis para a segurança, como restringir o uso apenas a determinados usuários ou grupo de usuários, ou simplesmente negar acesso a conta de root, obrigando o usuário a logar-se com o seu user e depois executar um su ou sudo.
Bom, copiar arquivos com ssh impressiona os leigos (impressiona mais com netcat!), mas deixando as brincadeiras de lado, tem muitas coisas realmente úteis no ssh. Uma delas é o tunelamento de dados.
[]'s