Clientes e servidores de SSH existem para a maioria dos sistemas operacionais, inclusive no Windows (SSH Windows e Moba SSH ). É o metodo mais utilizado para acesso remoto em sistemas Unix/Linux e tunelamento de servidores X (servidor gráfico de janelas no Linux/Unix).
O SSH é organizado por meio de três protocolos rodando sobre TCP que são:
- Protocolo da camada de transporte: provê autenticação no servidor, confidencialidade e integridade dos dados. Opcionalmente, esta camada pode prover compressão dos dados.
- Protocolo de autenticação de usuário: autentica o usuário ao servidor.
- Protocolo de conexão: possibilita a utilização de vários canais lógicos de comunicação sobre uma única conexão SSH.
Basicamente, a autenticação se dá ou por usuário e senha, ou usuário e chave privada/pública. Com o usuário e senha, ao se tentar a conexão a um servidor deverá ser digitado o usuário e a senha. No caso de uso com chaves, a autenticação deverá ser feita configurando o lado servidor previamente com a chave pública do cliente. Quando houver a tentativa de acesso, o servidor SSH buscará a chave pública do host do cliente em um arquivo localizado em .ssh/authorized_keys no diretório home do usuário requisitado para o login. Caso a chave estiver armazenada no arquivo, o acesso se dará sem a necessidade de digitar a senha. Este método tem duas vantagens básicas. A primeira é a segurança, porque não existirá a possibilidade de ataques de força bruta tentando adivinhar a senha do usuário. Simplesmente, não existe a senha! A outra vantagem é a possibilidade de automatizar scripts para executar comandos em servidores remotos. Desta forma, a administração de múltiplos servidores fica muito mais fácil e ágil.
Ao acessar um servidor remoto por meio de SSH, a interação do usuário será por meio de um interpretador de comandos em modo texto. Portanto, conhecer os comandos e os parâmetros do Linux ou do Windows é extremamente útil.
A porta padrão do serviço de SSH é a 22. Devido ao grande número de varreduras nesta porta, é interessante trocar esta porta em servidores que estejam visíveis com IP públicos. Existem formas de minimizar as tentativas de adivinhações de usuários/senhas. Um delas é o uso de chaves ao invés de senhas. A outra é usar alguma ferramenta de detecção de tentativas e bloqueio da origem. A ferramenta DenyHosts (http://denyhosts.sourceforge.net/) possibilita que a origem das tentativas de acesso mal sucedidas sejam bloqueadas por um tempo configurado.
Abaixo, um exemplo de conexão SSH usando o cliente código-fonte aberto de SSH Putty para Windows. No Linux, o nome do cliente de SSH é "ssh".
Vale a pena dar uma olhada neste tutorial sobre a configuração do SSH para funcionar com certificados.
O SSH é a ferramenta mais utilizada no gerenciamento de servidor Linux e FreeBSD. Portanto, dominá-la é muito importante para o profissional de redes!
Referências:
The Secure Shell (SSH) Protocol Architecture
Introduction to SSH Secure Shell
Criando tuneis criptografados com ssh
Usando o SSH no Windows
Nenhum comentário:
Postar um comentário