SSH - Uma breve abordagem
Como o primeiro de uma série (assim eu espero), este material é indicado para aqueles que querem aprofundar um pouco mais no mundo Linux, não ficando apenas no desktop. Neste trabalho trato dos conceitos básicos do SSH, configuração e utilização.
Parte 2: Servidor SSHD (daemon)
O daemon sshd é um programa que fica rodando, fazendo o papel de
servidor, escutando a porta 22 (ssh) pelas conexões dos clientes.
O principal arquivo de configuração do lado servidor deste serviço é /etc/ssh/sshd_config, onde estão presentes as opções de configuração de conexão, autenticação e encriptação do serviço ssh.
As opções de configuração de um servidor ssh são:
Outras opções, são as definições de chave:
As opções referentes a autenticação e conexão:
Existem mais opções para configuração do sshd. Algumas para utilização de interface gráfica X11, para utilização de kerberos, para definição de grupos e usuários, entre outras. Todas estão explicadas no manual do sshd_config (8).
Após a configuração do servidor é preciso checar as permissões dos arquivos de configuração e de chaves para garantir a segurança do serviço:
# chown -R root:root /etc/ssh
# chmod 775 /etc/ssh
# chmod 600 /etc/ssh/ssh_host_key
# chmod 644 /etc/ssh/ssh_host_key.pub
# chmod 644 /etc/ssh/sshd_config
A última coisa a fazer na parte servidor do serviço é rodar o daemon sshd:
# /usr/sbin/sshd
Neste ponto o host já está pronto para receber conexões ssh.
O principal arquivo de configuração do lado servidor deste serviço é /etc/ssh/sshd_config, onde estão presentes as opções de configuração de conexão, autenticação e encriptação do serviço ssh.
As opções de configuração de um servidor ssh são:
- Port - define a porta do serviço, o padrão é 22;
- Protocol - define qual protocolo utilizar, SSH1 (1) ou SSH2 (2);
- ListenAddress - define o endereço local que o sshd ficará ouvindo, o padrão é ouvir em todos endereços, 0.0.0.0;
Outras opções, são as definições de chave:
- HostKey - caminho do arquivo da chave privada, /etc/ssh/ssh_host/key para SSH1, /etc/ssh/ssh_host_rsa_key e ssh_host_dsa_key para SSH2;
- KeyRegenarationInterval - tempo de vida da chave para SSH1;
- ServerKeyBits - tamanho da chave em bits, valor mínimo 512;
As opções referentes a autenticação e conexão:
- PermitRootLogin - permissão para o root logar;
- StrictModes - permite ao daemon sshd checar o home dos usuários e suas permissões de arquivos;
- RSAAuthentication - autenticação com chave RSA para protocolo SSH1;
- PubkeyAuthentication - autenticação através de chave pública para o protocolo SSH2;
- RhostsRSAAuthentication - especifica se os hosts em rhosts e em /etc/hosts.equiv autenticarão com RSA, somente para SSH1;
- HostbasedAuthentication - o mesmo que RhostsRSAAuthentication, mas para SSH2;
- IgnoreUserKnownHosts - ignora os hosts conhecidos pelo ssh, guardados em ~/.ssh/know_hosts, para RhostsRSAAuthentication e HostbasedAuthentication;
- IgnoreRhosts - ignora os hosts em .rhosts e .shosts para autenticações baseadas em hosts;
- PasswordAuthentication - define a autenticação por senha criptografada, o padrão é yes;
- PermitEmptyPasswords - permite senha vazia, o padrão é no;
- MaxStartups - número máximo de conexões, 10 conexões é o padrão;
Existem mais opções para configuração do sshd. Algumas para utilização de interface gráfica X11, para utilização de kerberos, para definição de grupos e usuários, entre outras. Todas estão explicadas no manual do sshd_config (8).
Após a configuração do servidor é preciso checar as permissões dos arquivos de configuração e de chaves para garantir a segurança do serviço:
# chown -R root:root /etc/ssh
# chmod 775 /etc/ssh
# chmod 600 /etc/ssh/ssh_host_key
# chmod 644 /etc/ssh/ssh_host_key.pub
# chmod 644 /etc/ssh/sshd_config
A última coisa a fazer na parte servidor do serviço é rodar o daemon sshd:
# /usr/sbin/sshd
Neste ponto o host já está pronto para receber conexões ssh.