Guia do Linux/Avançado/Servidor ssh/Servidor ssh: diferenças entre revisões

m
clean up, replaced: == 15.3 Servidor ssh == → == Servidor ssh == (9) utilizando AWB
[edição não verificada][edição não verificada]
m (clean up, replaced: == 15.3 Servidor ssh == → == Servidor ssh == (9) utilizando AWB)
== 15.3 Servidor ssh ==
 
----
 
=== 15.3.1 sshd ===
 
Este é o daemon de controle da conexão encriptada via protocolo ssh, transferência de arquivos e shell interativo. As opções de linha de comando estão disponíveis em [#s-s-ssh-opcoescmd Opções de linha de comando, Seção 15.1.10]. Seu arquivo de configuração principal é <code>/etc/ssh/sshd_config</code>, um exemplo e descrição das opções deste arquivo é encontrada em [#s-s-ssh-server-sshd_config Exemplo de <code>sshd_config</code> com explicações das diretivas, Seção 15.3.8].
 
----
 
=== 15.3.2 Controle de acesso ===
 
É definido pelas opções ListenAddress, AllowUsers, DenyUsers, AllowGroups, DenyGroups e PermitRootLogin do arquivo de configuração <code>sshd_config</code> (veja [#s-s-ssh-server-sshd_config Exemplo de <code>sshd_config</code> com explicações das diretivas, Seção 15.3.8]) e via tcpd (arquivos <code>hosts.allow</code> e <code>hosts.deny</code>). Veja [ch-rede.html#s-rede-seg-tcpd O mecanismo de controle de acessos tcpd, Seção 4.8.3].
 
----
 
=== 15.3.3 Usando autenticação RSA/DSA - chave pública/privada ===
 
Este método de autenticação utiliza o par de chaves pública (que será distribuído nas máquinas que você conecta) e outra privada (que ficará em seu diretório pessoal) para autenticação. A encriptação e decriptação são feitas usando chaves separadas e não é possível conseguir a chave de decriptação usando a chave de encriptação. É possível inclusive gerar uma chave sem senha para efetuar o logon em um sistema ou execução de comandos remotos (este esquema é um pouco mais seguro que os arquivos <code>~/.rhosts</code> e <code>~/.shosts</code>).
 
Para trocar a senha utilize o comando: ssh-keygen -p -t tipo_chave -f ~/.ssh/identity - será pedida sua senha antiga e a nova senha (no mesmo estilo do <code>passwd</code>). Opcionalmente você pode utilizar a sintaxe: ssh-keygen -p -f ~/.ssh/identity -P senha_antiga -N senha_nova, que troca a senha em um único comando (útil para ser usado em scripts junto com a opção ''-q'' para evitar a exibição de mensagens de saída do <code>ssh-keygen</code>).
----
=== 15.3.4 Execução de comandos específicos usando chaves ===
Com o uso de chaves também é possível o uso do <code>ssh</code> para execução de comandos específicos em máquinas remotas, isto é possível com os novos recursos da versão 3 do <code>ssh</code>. Para fazer isto, siga os passos [#s-s-ssh-server-rsaauth Usando autenticação RSA/DSA - chave pública/privada, Seção 15.3.3] para gerar um par de chaves ''DSA'' (o par ''RSA'' não aceita execução de comandos específicos) e copiar para <code>authorized_keys2</code>. Após isto, entre no servidor remoto e edite a chave, inserindo o comando que deverá ser executado antes da linha ''dds'', por exemplo:
no-port-forwarding,no-X11-forwarding,no-agent-forwarding,command="ls / -la" ssh-dss ABCAB3NzaC1kc55355MAADBBYLp...
----
=== 15.3.5 Criando um gateway ssh ===
Imagine quando você deseja ter acesso a uma máquina de sua rede interna que esteja atrás de um gateway, isto é possível usando os recursos explicados em [#s-s-ssh-server-cmdkey Execução de comandos específicos usando chaves, Seção 15.3.4] fazendo um redirecionamento de acesso para seu usuário da seguinte forma:
'''OBS:''' Não estou levando em conta as considerações de segurança que este exemplo tem em sua rede, bem como o que pode ou não ser redirecionado. A intenção foi manter a simplicidade para entender sem dificuldades como isto é feito.
----
=== 15.3.6 Criando um tunel proxy ===
Aplicações remotas podem ser abertas localmente com o uso desta técnica. Você poderá usar para acessar portas que estariam disponíveis somente através do endereço remoto, realizar conexões criptografadas ou com compactação (garantindo uma boa taxa de transferência para protocolos que usem mais texto).
Por exemplo, para redirecionar o tráfego da porta 80 do servidor remoto para a porta 2003 local:
A opção ''-C'' também pode ser especificada junto ao <code>ssh</code> para usar compactação dos dados da conexão. Como notou, este recurso também é útil para fazer a administração remota de máquinas, porque o que está realizando a conexão será o IP do servidor remoto, não o seu. Da mesma forma, você poderá ter problemas caso não tenha uma boa política de distribuição de contas de máquinas em sua rede. Veja [ch-d-contas.html Gerenciamento de contas e cuidados para a proteção de senhas, Capítulo 11] para detalhes .
----
=== 15.3.7 Diferenças nas versões do protocolo ===
Retirada da página de manual do <code>sshd</code><nowiki>: </nowiki>
*; Protocolo SSH versão 1
O cliente que seleciona o algoritmo de criptografia que será usado entre os oferecidos pelo servidor. A versão 2 também possui integridade de seção feita através de um código de autenticação de mensagem criptográfica (hmac-sha1 ou hmac-md5). A versão 2 do protocolo oferece um método de autenticação baseado em chave pública (PubkeyAuthentication) e o método de autenticação convencional usando senhas.
----
=== 15.3.8 Exemplo de <code>sshd_config</code> com explicações das diretivas ===
Abaixo segue um exemplo deste arquivo que poderá ser adaptado ao seu sistema. O objetivo é ser ao mesmo tempo útil para sua configuração e didático:
2 987

edições