OpenSSH.
O OpenSSH e um protocolo que prove serviço de conectividade de login remoto, serviço este que todo administrador de redes deve saber utilizar e configura-lo para garantir segurança das informações trafegadas neste protocolo.
Neste post será abordado algumas das principais características e configurações para implementar segurança ao se utilizar o OpenSSH.
Características fundamentais.
Suas características vão mais além de simplesmente fazer um acesso remoto.
Ele implementa criptografia sobre todo o tráfego, entre o cliente e o servidor para garantir que os dados não seja interceptado, evitando sequestro de conexão e outros tipos de acesso a informação.
O OpenSSH oferece um conjunto de recursos para realizar o tunelamento seguro, vários métodos de autenticação e outros ferramentas como SCP usado para fazer cópias de arquivos em um conexão segura.
O SFTP usado para garantir segurança sobre o protocolo FTP que por si só e um protocolo inseguro e gerenciar chaves através dos utilitários ssh-add, ssh-keysign, ssh-keyscan e ssh-keygen.
Pacote de instalação e arquivos de configuração do SSH.
O OpenSSH possui dois pacotes de instalação:
-
openssh-client: pacote que como o próprio nome diz, trata-se do cliente ssh que realizará as conexões a um servido SSH.
-
openssh-server: pacote prove o serviço de servidor SSH, como trata-se de um serviço ele faz a escuta da porta 22 de modo padrão.
Ao fazer a instalação do pacote OpenSSH em seu ambiente Linux, ele cria dois arquivos de configuração:
-
/etc/ssh/ssh_config: arquivo de configuração que influenciará as rotinas do cliente SSH.
-
/etc/ssh/sshd_config: arquivo do deamon SSH, que influenciará a execução do serviço SSH.
Seguraça adicional do SSH-Server.
Bem como mostrado acima o arquivo de configuração do servidor SSH é o /etc/ssh/sshd_config vamos ver seus principais parâmetros para deixa-lo mais seguro.
Com um editor de sua preferencia vi, vim ou nano, vamos editar o arquivo de configuração.
Port 5050 # Alterar a porta do serviço e uma prática bastante útil para dificultar a identificação com ferramentas como NMAP. Protocol 2 # Por padrão o SSH usa a versão 1 e vamos deixar com a versão 2 que e uma evolução da sua primeira versão, trazendo algumas funções adicionais como SFTP que implementa criptografia no serviço do inseguro do FTP, autenticação com DSA, entre outras. PermitRootLogin no # Desabilitar a conexão com usuário root, fazendo uso de um usuário comum sem privilégios administrativos. AllowUsers suporte01 suporte02 # Somente os usuário especificados podem fazer conexão no servidor SSH. SyslogFacility AUTH # Faz log de facilidades de autenticação (AUTH). LogLevel INFO # Logs de nível de informações serão gerados. |
Nota: os parâmetros estão em negrito não use os comentários.
Feita esta configuração você poderá configurar quais IPs podem fazer conexão no servidor fazendo uso dos arquivos /etc/hosts.allow e /etc/hosts.deny. Por exemplo:
Editando o arquivo de configuração /etc/hosts.deny e adicione o seguintes parâmetros.
sshd: ALL |
Esta configuração faz o bloqueio de qualquer IP de origem que tente fazer uso do serviço SSHD, somente será liberado para os IPs que estiverem listados no hosts.allow.
Agora adione os IPs que serão liberados no arquivo de configuração /etc/hosts.allow.
sshd: 172.16.0.250 |
Agora pode definir os IPs que podem fazer conexão ao servidor no serviço SSH.
Agora basta reiniciar o servido do SSH:
systemctl restart sshd |