OpenSSH

Tela Software:
OpenSSH
Detalhes de Software:
Versão: 7.7 Atualizado
Data de upload: 22 Jun 18
Revelador: OpenBSD Project
Licença: Livre
Popularidade: 21

Rating: nan/5 (Total Votes: 0)

OpenSSH é um projeto de software livre e de código aberto, um programa de biblioteca e linha de comando executado em segundo plano no sistema operacional GNU / Linux e que protege toda a sua rede contra intrusos e invasores. É a versão de código aberto da especificação SSH (Secure Shell), projetada especificamente para


Recursos em resumo

O OpenSSH é um projeto de código aberto distribuído sob uma licença livre. Oferece uma autenticação robusta baseada nos padrões de Chave Pública, Autenticação Kerberos e Senha Única, forte criptografia baseada nos algoritmos AES, Blowfish, Arcfour e 3DES, suporte a encaminhamento X11 criptografando todo o tráfego do Sistema X Window, bem como o AFS e Passagem de bilhetes Kerberos.

Além disso, o recurso de encaminhamento de porta de recurso de software criptografa canais para protocolos legados, suporte a compactação de dados, suporte a encaminhamento de agentes usando o padrão de autenticação Single-Sign-On (SSO) e servidor SFTP (FTP Seguro) e suporte ao cliente em Protocolos SSH2 ou SSH1.

Outra característica interessante é a interoperabilidade, o que significa que o projeto está em conformidade com as versões 1.3, 1.5 e 2.0 do protocolo SSH (Secure Shell) original. Após a instalação, o OpenSSH substituirá automaticamente os programas padrão FTP, Telnet, RCP e rlogin por versões seguras, como SFTP, SCP e SSH.


Sob o capô, disponibilidade e sistemas operacionais suportados

O projeto OpenSSH é escrito inteiramente na linguagem de programação C. Ele é composto pela implementação SSH principal e pelo daemon SSH, que é executado em segundo plano. O software é distribuído principalmente como um arquivo de fontes universal, que funcionará com qualquer sistema operacional GNU / Linux em arquiteturas de 32 bits e 64 bits.


OpenSSH portátil

Uma versão portátil do protocolo OpenSSH também está disponível para download no Softoware, gratuitamente, chamada Portable OpenSSH. É uma implementação de software livre dos protocolos SSH versão 1 e SSH versão 2 para sistemas operacionais Linux, BSD e Solaris.

O que há de novo nesta versão:

  • Alterações potencialmente incompatíveis:
  • Esta versão inclui várias alterações que podem afetar as configurações existentes:
  • Esta versão remove o suporte do servidor para o protocolo SSH v.1.
  • ssh (1): remova 3des-cbc da proposta padrão do cliente. As cifras de bloco de 64 bits não são seguras em 2016 e não queremos esperar até que ataques como o SWEET32 sejam estendidos para o SSH. Como o 3des-cbc era a única cifra obrigatória nos RFCs SSH, isso pode causar problemas na conexão com dispositivos mais antigos usando a configuração padrão, mas é muito provável que esses dispositivos já precisem de configuração explícita para algoritmos de troca de chaves e de hostkey. sshd (8): Remove o suporte para compressão pré-autenticação. Fazer compressão no início do protocolo provavelmente parecia razoável nos anos 90, mas hoje é claramente uma má ideia em termos de criptografia (cf. ataques oracle de compressão múltipla em TLS) e superfície de ataque. O suporte à compressão de pré-autorização foi desativado por padrão por & gt; 10 anos. Suporte permanece no cliente. O ssh-agent se recusará a carregar os módulos PKCS # 11 fora de uma lista de permissões de caminhos confiáveis ​​por padrão. A whitelist de caminho pode ser especificada em tempo de execução.
  • sshd (8): Quando um comando forçado aparece em um certificado e em um comando autorizado keys / principals = restriction, o sshd agora se recusará a aceitar o certificado, a menos que sejam idênticos. O comportamento anterior (documentado) de ter o comando forçado do certificado sobrescrevendo o outro pode ser um pouco confuso e propenso a erros. sshd (8): Remova a diretiva de configuração UseLogin e suporte para ter / bin / login gerenciar sessões de login.
  • Alterações desde o OpenSSH 7.3:
  • Segurança:
  • ssh-agent (1): Agora se recusará a carregar módulos PKCS # 11 de caminhos fora de uma lista de desbloqueio confiável (configurável em tempo de execução). As solicitações para carregar módulos podem ser transmitidas por meio do encaminhamento do agente e um invasor pode tentar carregar um módulo PKCS # 11 hostil no canal do agente encaminhado: os módulos PKCS # 11 são bibliotecas compartilhadas, portanto isso resultaria na execução de código no sistema executando o ssh -agent se o invasor tiver o controle do soquete do agente encaminhado (no host que está executando o servidor sshd) e a capacidade de gravar no sistema de arquivos do host que executa o ssh-agent (geralmente o host que está executando o cliente ssh). Relatado por Jann Horn do Project Zero.
  • sshd (8): Quando a separação de privilégio é desabilitada, os sockets de domínio Unix encaminhados seriam criados por sshd (8) com os privilégios de 'root' em vez do usuário autenticado. Esta versão recusa o encaminhamento de soquete do domínio Unix quando a separação de privilégio é desativada (a separação de privilégios foi ativada por padrão por 14 anos). Relatado por Jann Horn do Project Zero.
  • sshd (8): Evite o vazamento teórico de material de chave privada do host para processos filhos separados por privilégio via realloc () ao ler as chaves. Nenhum vazamento foi observado na prática para chaves de tamanho normal, nem um vazamento para os processos filho expõe diretamente o material chave a usuários não privilegiados. Relatado por Jann Horn do Project Zero.
  • sshd (8): O gerenciador de memória compartilhada usado pelo suporte de compactação de pré-autenticação tinha verificações de limites que poderiam ser eliminadas por alguns compiladores de otimização. Além disso, esse gerenciador de memória estava incorretamente acessível quando a compactação de pré-autenticação estava desativada. Isso poderia potencialmente permitir ataques contra o processo de monitor privilegiado do processo de separação de privilégio em área restrita (um comprometimento do último seria necessário primeiro). Esta versão remove o suporte para compressão de pré-autenticação do sshd (8). Relatado por Guido Vranken usando a ferramenta de identificação de otimização instável do Stack (http://css.csail.mit.edu/stack/)
  • sshd (8): Corrige a condição de negação de serviço em que um invasor que envia várias mensagens KEXINIT pode consumir até 128 MB por conexão. Relatado por Shi Lei do Gear Team, Qihoo 360.
  • sshd (8): Valide os intervalos de endereços para as diretivas AllowUser e DenyUsers no tempo de carregamento da configuração e recuse-se a aceitar os inválidos. Anteriormente, era possível especificar intervalos de endereços CIDR inválidos (por exemplo, usuário@127.1.2.3/55) e estes sempre corresponderiam, possivelmente resultando na concessão de acesso onde não era pretendido. Relatado por Laurence Parry.
  • Novos recursos:
  • ssh (1): Adiciona um modo de multiplexação de proxy a ssh (1) inspirado na versão em PuTTY de Simon Tatham. Isso permite que um cliente de multiplexação se comunique com o processo mestre usando um subconjunto do protocolo de pacotes e canais SSH em um soquete do domínio Unix, com o processo principal atuando como um proxy que traduz as IDs do canal etc. Isso permite que o modo de multiplexação seja executado sistemas que não possuem passagem de descritor de arquivo (usado pelo código de multiplexação atual) e potencialmente, em conjunto com encaminhamento de soquete de domínio Unix, com o cliente e o processo mestre de multiplexação em máquinas diferentes. O modo de proxy de multiplexação pode ser chamado usando & quot; ssh -O proxy ... & quot;
  • sshd (8): Adicione uma opção sshd_config DisableForwarding que desabilita o encaminhamento de soquete de domínio X11, agente, TCP, encapsulamento e domínio Unix, bem como qualquer outra coisa que possamos implementar no futuro. Assim como o sinalizador "restricted" authorized_keys, essa é uma forma simples e preparada para o futuro de restringir uma conta.
  • sshd (8), ssh (1): suporta o & quot; curve25519-sha256 & quot; método de troca de chaves. Isso é idêntico ao método atualmente suportado chamado & quot; curve25519- sha256@libssh.org".
  • sshd (8): Melhora o tratamento do SIGHUP verificando se o sshd já está daemonizado na inicialização e ignorando a chamada ao daemon (3) se estiver. Isso garante que uma reinicialização SIGHUP do sshd (8) manterá o mesmo ID do processo que a execução inicial. O sshd (8) também irá agora desvincular o PidFile antes da reinicialização SIGHUP e recriá-lo após uma reinicialização bem-sucedida, em vez de deixar um arquivo obsoleto no caso de um erro de configuração. bz # 2641
  • sshd (8): Permitir que as diretivas ClientAliveInterval e ClientAliveCountMax apareçam nos blocos sshd_config Match.
  • sshd (8): Adicione% -escapes ao AuthorizedPrincipalsCommand para corresponder aos suportados pelo AuthorizedKeysCommand (chave, tipo de chave, impressão digital, etc.) e mais alguns para fornecer acesso ao conteúdo do certificado sendo oferecido.
  • Adicionados testes de regressão para correspondência de correspondência, correspondência de endereço e funções de higienização de string.
  • Aprimorou o chicote de fuzzer de troca de chaves.
  • Correções de erros:
  • ssh (1): permite que o IdentityFile carregue e use com êxito certificados que não possuem chave pública nua correspondente. certificado bz # 2617 id_rsa-cert.pub (e não id_rsa.pub).
  • ssh (1): corrige a autenticação de chave pública quando várias autenticações estão em uso e a chave pública não é apenas o primeiro método a ser tentado. bz # 2642
  • regress: permite que os testes de interoperabilidade do PuTTY sejam executados sem supervisão. bz # 2639
  • ssh-agent (1), ssh (1): melhora o relatório ao tentar carregar chaves de tokens PKCS # 11 com menos mensagens de log inúteis e mais detalhes em mensagens de depuração. bz # 2610
  • ssh (1): Ao derrubar conexões do ControlMaster, não polua stderr quando LogLevel = quiet.
  • sftp (1): On ^ Z espera que o ssh (1) subjacente suspenda antes de suspender o sftp (1) para assegurar que o ssh (1) restaure o modo terminal corretamente se for suspenso durante uma solicitação de senha.
  • ssh (1): evite busy-wait quando o ssh (1) for suspenso durante um prompt de senha.
  • ssh (1), sshd (8): Relata erros corretamente durante o envio de mensagens de info-ext.
  • sshd (8): conserta NULL-deref crash se o sshd (8) receber uma mensagem NEWKEYS fora de seqüência.
  • sshd (8): Lista correta de algoritmos de assinatura suportados enviados na extensão server-sig-algs. bz # 2547
  • sshd (8): Corrigir envio de mensagem ext_info se privsep estiver desativado.
  • sshd (8): reforça mais rigorosamente a ordenação esperada de chamadas do monitor de separação de privilégios usadas para autenticação e as permite somente quando seus respectivos métodos de autenticação são ativados na configuração
  • sshd (8): Correção de chamada não inicializada no método getsockopt (); inofensivo no Unix / BSD, mas potencialmente problemático no Cygwin.
  • Corrija relatórios falsos positivos causados ​​por explicit_bzero (3) não sendo reconhecido como um inicializador de memória quando compilado com -fsanitize-memory. sshd_config (5): Use 2001: db8 :: / 32, a sub-rede IPv6 oficial para exemplos de configuração.
  • Portabilidade:
  • Em ambientes configurados com códigos de idioma turcos, retorne ao código do idioma C / POSIX para evitar erros na análise de configuração causada pelo tratamento exclusivo do código de idioma às letras 'i' e 'I'. bz # 2643
  • sftp-server (8), ssh-agent (1): Negar ptrace no OS X usando ptrace (PT_DENY_ATTACH, ..)
  • ssh (1), sshd (8): Unbreak cifras AES-CTR no antigo (~ 0.9.8) OpenSSL.
  • Corrigir compilação para o libcrypto compilado sem suporte a RIPEMD160.
  • contrib: Adicione um gnome-ssh-askpass3 ao suporte do GTK + 3. bz # 2640 sshd (8): Melhore a reprocessamento PRNG na separação de privilégios e force o libcrypto a obter uma semente de alta qualidade antes do chroot ou do sandbox.
  • All: Explicitamente teste para strnvis quebrado. O NetBSD adicionou um strnvis e infelizmente o tornou incompatível com o existente no OpenBSD e libbsd do Linux (o primeiro existindo há mais de dez anos). Tente detectar essa bagunça e assuma a única opção segura se estivermos compilando de forma cruzada.

O que há de novo na versão:

  • Alterações potencialmente incompatíveis:
  • Esta versão inclui várias alterações que podem afetar as configurações existentes:
  • Esta versão remove o suporte do servidor para o protocolo SSH v.1.
  • ssh (1): remova 3des-cbc da proposta padrão do cliente. As cifras de bloco de 64 bits não são seguras em 2016 e não queremos esperar até que ataques como o SWEET32 sejam estendidos para o SSH. Como o 3des-cbc era a única cifra obrigatória nos RFCs SSH, isso pode causar problemas na conexão com dispositivos mais antigos usando a configuração padrão, mas é muito provável que esses dispositivos já precisem de configuração explícita para algoritmos de troca de chaves e de hostkey. sshd (8): Remove o suporte para compressão pré-autenticação. Fazer compressão no início do protocolo provavelmente parecia razoável nos anos 90, mas hoje é claramente uma má ideia em termos de criptografia (cf. ataques oracle de compressão múltipla em TLS) e superfície de ataque. O suporte à compressão de pré-autorização foi desativado por padrão por & gt; 10 anos. Suporte permanece no cliente. O ssh-agent se recusará a carregar os módulos PKCS # 11 fora de uma lista de permissões de caminhos confiáveis ​​por padrão. A whitelist de caminho pode ser especificada em tempo de execução.
  • sshd (8): Quando um comando forçado aparece em um certificado e em um comando autorizado keys / principals = restriction, o sshd agora se recusará a aceitar o certificado, a menos que sejam idênticos. O comportamento anterior (documentado) de ter o comando forçado do certificado sobrescrevendo o outro pode ser um pouco confuso e propenso a erros. sshd (8): Remova a diretiva de configuração UseLogin e suporte para ter / bin / login gerenciar sessões de login.
  • Alterações desde o OpenSSH 7.3:
  • Segurança:
  • ssh-agent (1): Agora se recusará a carregar módulos PKCS # 11 de caminhos fora de uma lista de desbloqueio confiável (configurável em tempo de execução). As solicitações para carregar módulos podem ser transmitidas por meio do encaminhamento do agente e um invasor pode tentar carregar um módulo PKCS # 11 hostil no canal do agente encaminhado: os módulos PKCS # 11 são bibliotecas compartilhadas, portanto isso resultaria na execução de código no sistema executando o ssh -agent se o invasor tiver o controle do soquete do agente encaminhado (no host que está executando o servidor sshd) e a capacidade de gravar no sistema de arquivos do host que executa o ssh-agent (geralmente o host que está executando o cliente ssh). Relatado por Jann Horn do Project Zero.
  • sshd (8): Quando a separação de privilégio é desabilitada, os sockets de domínio Unix encaminhados seriam criados por sshd (8) com os privilégios de 'root' em vez do usuário autenticado. Esta versão recusa o encaminhamento de soquete do domínio Unix quando a separação de privilégio é desativada (a separação de privilégios foi ativada por padrão por 14 anos). Relatado por Jann Horn do Project Zero.
  • sshd (8): Evite o vazamento teórico de material de chave privada do host para processos filhos separados por privilégio via realloc () ao ler as chaves. Nenhum vazamento foi observado na prática para chaves de tamanho normal, nem um vazamento para os processos filho expõe diretamente o material chave a usuários não privilegiados. Relatado por Jann Horn do Project Zero.
  • sshd (8): O gerenciador de memória compartilhada usado pelo suporte de compactação de pré-autenticação tinha verificações de limites que poderiam ser eliminadas por alguns compiladores de otimização. Além disso, esse gerenciador de memória estava incorretamente acessível quando a compactação de pré-autenticação estava desativada. Isso poderia potencialmente permitir ataques contra o processo de monitor privilegiado do processo de separação de privilégio em área restrita (um comprometimento do último seria necessário primeiro). Esta versão remove o suporte para compressão de pré-autenticação do sshd (8). Relatado por Guido Vranken usando a ferramenta de identificação de otimização instável do Stack (http://css.csail.mit.edu/stack/)
  • sshd (8): Corrige a condição de negação de serviço em que um invasor que envia várias mensagens KEXINIT pode consumir até 128 MB por conexão. Relatado por Shi Lei do Gear Team, Qihoo 360.
  • sshd (8): Valide os intervalos de endereços para as diretivas AllowUser e DenyUsers no tempo de carregamento da configuração e recuse-se a aceitar os inválidos. Anteriormente, era possível especificar intervalos de endereços CIDR inválidos (por exemplo, usuário@127.1.2.3/55) e estes sempre corresponderiam, possivelmente resultando na concessão de acesso onde não era pretendido. Relatado por Laurence Parry.
  • Novos recursos:
  • ssh (1): Adiciona um modo de multiplexação de proxy a ssh (1) inspirado na versão em PuTTY de Simon Tatham. Isso permite que um cliente de multiplexação se comunique com o processo mestre usando um subconjunto do protocolo de pacotes e canais SSH em um soquete do domínio Unix, com o processo principal atuando como um proxy que traduz as IDs do canal etc. Isso permite que o modo de multiplexação seja executado sistemas que não possuem passagem de descritor de arquivo (usado pelo código de multiplexação atual) e potencialmente, em conjunto com encaminhamento de soquete de domínio Unix, com o cliente e o processo mestre de multiplexação em máquinas diferentes. O modo de proxy de multiplexação pode ser chamado usando & quot; ssh -O proxy ... & quot;
  • sshd (8): Adicione uma opção sshd_config DisableForwarding que desabilita o encaminhamento de soquete de domínio X11, agente, TCP, encapsulamento e domínio Unix, bem como qualquer outra coisa que possamos implementar no futuro. Assim como o sinalizador "restricted" authorized_keys, essa é uma forma simples e preparada para o futuro de restringir uma conta.
  • sshd (8), ssh (1): suporta o & quot; curve25519-sha256 & quot; método de troca de chaves. Isso é idêntico ao método atualmente suportado chamado & quot; curve25519- sha256@libssh.org".
  • sshd (8): Melhora o tratamento do SIGHUP verificando se o sshd já está daemonizado na inicialização e ignorando a chamada ao daemon (3) se estiver. Isso garante que uma reinicialização SIGHUP do sshd (8) manterá o mesmo ID do processo que a execução inicial. O sshd (8) também irá agora desvincular o PidFile antes da reinicialização SIGHUP e recriá-lo após uma reinicialização bem-sucedida, em vez de deixar um arquivo obsoleto no caso de um erro de configuração. bz # 2641
  • sshd (8): Permitir que as diretivas ClientAliveInterval e ClientAliveCountMax apareçam nos blocos sshd_config Match.
  • sshd (8): Adicione% -escapes ao AuthorizedPrincipalsCommand para corresponder aos suportados pelo AuthorizedKeysCommand (chave, tipo de chave, impressão digital, etc.) e mais alguns para fornecer acesso ao conteúdo do certificado sendo oferecido.
  • Adicionados testes de regressão para correspondência de correspondência, correspondência de endereço e funções de higienização de string.
  • Aprimorou o chicote de fuzzer de troca de chaves.
  • Correções de erros:
  • ssh (1): permite que o IdentityFile carregue e use com êxito certificados que não possuem chave pública nua correspondente. certificado bz # 2617 id_rsa-cert.pub (e não id_rsa.pub).
  • ssh (1): corrige a autenticação de chave pública quando várias autenticações estão em uso e a chave pública não é apenas o primeiro método a ser tentado. bz # 2642
  • regress: permite que os testes de interoperabilidade do PuTTY sejam executados sem supervisão. bz # 2639
  • ssh-agent (1), ssh (1): melhora o relatório ao tentar carregar chaves de tokens PKCS # 11 com menos mensagens de log inúteis e mais detalhes em mensagens de depuração. bz # 2610
  • ssh (1): Ao derrubar conexões do ControlMaster, não polua stderr quando LogLevel = quiet.
  • sftp (1): On ^ Z espera que o ssh (1) subjacente suspenda antes de suspender o sftp (1) para assegurar que o ssh (1) restaure o modo terminal corretamente se for suspenso durante uma solicitação de senha.
  • ssh (1): evite busy-wait quando o ssh (1) for suspenso durante um prompt de senha.
  • ssh (1), sshd (8): Relata erros corretamente durante o envio de mensagens de info-ext.
  • sshd (8): conserta NULL-deref crash se o sshd (8) receber uma mensagem NEWKEYS fora de seqüência.
  • sshd (8): Lista correta de algoritmos de assinatura suportados enviados na extensão server-sig-algs. bz # 2547
  • sshd (8): Corrigir envio de mensagem ext_info se privsep estiver desativado.
  • sshd (8): reforça mais rigorosamente a ordenação esperada de chamadas do monitor de separação de privilégios usadas para autenticação e as permite somente quando seus respectivos métodos de autenticação são ativados na configuração
  • sshd (8): Correção de chamada não inicializada no método getsockopt (); inofensivo no Unix / BSD, mas potencialmente problemático no Cygwin.
  • Corrija relatórios falsos positivos causados ​​por explicit_bzero (3) não sendo reconhecido como um inicializador de memória quando compilado com -fsanitize-memory. sshd_config (5): Use 2001: db8 :: / 32, a sub-rede IPv6 oficial para exemplos de configuração.
  • Portabilidade:
  • Em ambientes configurados com códigos de idioma turcos, retorne ao código do idioma C / POSIX para evitar erros na análise de configuração causada pelo tratamento exclusivo do código de idioma às letras 'i' e 'I'. bz # 2643
  • sftp-server (8), ssh-agent (1): Negar ptrace no OS X usando ptrace (PT_DENY_ATTACH, ..)
  • ssh (1), sshd (8): Unbreak cifras AES-CTR no antigo (~ 0.9.8) OpenSSL.
  • Corrigir compilação para o libcrypto compilado sem suporte a RIPEMD160.
  • contrib: Adicione um gnome-ssh-askpass3 ao suporte do GTK + 3. bz # 2640 sshd (8): Melhore a reprocessamento PRNG na separação de privilégios e force o libcrypto a obter uma semente de alta qualidade antes do chroot ou do sandbox.
  • All: Explicitamente teste para strnvis quebrado. O NetBSD adicionou um strnvis e infelizmente o tornou incompatível com o existente no OpenBSD e libbsd do Linux (o primeiro existindo há mais de dez anos). Tente detectar essa bagunça e assuma a única opção segura se estivermos compilando de forma cruzada.

O que há de novo na versão 7.4:

  • Alterações potencialmente incompatíveis:
  • Esta versão inclui várias alterações que podem afetar as configurações existentes:
  • Esta versão remove o suporte do servidor para o protocolo SSH v.1.
  • ssh (1): remova 3des-cbc da proposta padrão do cliente. As cifras de bloco de 64 bits não são seguras em 2016 e não queremos esperar até que ataques como o SWEET32 sejam estendidos para o SSH. Como o 3des-cbc era a única cifra obrigatória nos RFCs SSH, isso pode causar problemas na conexão com dispositivos mais antigos usando a configuração padrão, mas é muito provável que esses dispositivos já precisem de configuração explícita para algoritmos de troca de chaves e de hostkey. sshd (8): Remove o suporte para compressão pré-autenticação. Fazer compressão no início do protocolo provavelmente parecia razoável nos anos 90, mas hoje é claramente uma má ideia em termos de criptografia (cf. ataques oracle de compressão múltipla em TLS) e superfície de ataque. O suporte à compressão de pré-autorização foi desativado por padrão por & gt; 10 anos. Suporte permanece no cliente. O ssh-agent se recusará a carregar os módulos PKCS # 11 fora de uma lista de permissões de caminhos confiáveis ​​por padrão. A whitelist de caminho pode ser especificada em tempo de execução.
  • sshd (8): Quando um comando forçado aparece em um certificado e em um comando autorizado keys / principals = restriction, o sshd agora se recusará a aceitar o certificado, a menos que sejam idênticos. O comportamento anterior (documentado) de ter o comando forçado do certificado sobrescrevendo o outro pode ser um pouco confuso e propenso a erros. sshd (8): Remova a diretiva de configuração UseLogin e suporte para ter / bin / login gerenciar sessões de login.
  • Alterações desde o OpenSSH 7.3:
  • Segurança:
  • ssh-agent (1): Agora se recusará a carregar módulos PKCS # 11 de caminhos fora de uma lista de desbloqueio confiável (configurável em tempo de execução). As solicitações para carregar módulos podem ser transmitidas por meio do encaminhamento do agente e um invasor pode tentar carregar um módulo PKCS # 11 hostil no canal do agente encaminhado: os módulos PKCS # 11 são bibliotecas compartilhadas, portanto isso resultaria na execução de código no sistema executando o ssh -agent se o invasor tiver o controle do soquete do agente encaminhado (no host que está executando o servidor sshd) e a capacidade de gravar no sistema de arquivos do host que executa o ssh-agent (geralmente o host que está executando o cliente ssh). Relatado por Jann Horn do Project Zero.
  • sshd (8): Quando a separação de privilégio é desabilitada, os sockets de domínio Unix encaminhados seriam criados por sshd (8) com os privilégios de 'root' em vez do usuário autenticado. Esta versão recusa o encaminhamento de soquete do domínio Unix quando a separação de privilégio é desativada (a separação de privilégios foi ativada por padrão por 14 anos). Relatado por Jann Horn do Project Zero.
  • sshd (8): Evite o vazamento teórico de material de chave privada do host para processos filhos separados por privilégio via realloc () ao ler as chaves. Nenhum vazamento foi observado na prática para chaves de tamanho normal, nem um vazamento para os processos filho expõe diretamente o material chave a usuários não privilegiados. Relatado por Jann Horn do Project Zero.
  • sshd (8): O gerenciador de memória compartilhada usado pelo suporte de compactação de pré-autenticação tinha verificações de limites que poderiam ser eliminadas por alguns compiladores de otimização. Além disso, esse gerenciador de memória estava incorretamente acessível quando a compactação de pré-autenticação estava desativada. Isso poderia potencialmente permitir ataques contra o processo de monitor privilegiado do processo de separação de privilégio em área restrita (um comprometimento do último seria necessário primeiro). Esta versão remove o suporte para compressão de pré-autenticação do sshd (8). Relatado por Guido Vranken usando a ferramenta de identificação de otimização instável do Stack (http://css.csail.mit.edu/stack/)
  • sshd (8): Corrige a condição de negação de serviço em que um invasor que envia várias mensagens KEXINIT pode consumir até 128 MB por conexão. Relatado por Shi Lei do Gear Team, Qihoo 360.
  • sshd (8): Valide os intervalos de endereços para as diretivas AllowUser e DenyUsers no tempo de carregamento da configuração e recuse-se a aceitar os inválidos. Anteriormente, era possível especificar intervalos de endereços CIDR inválidos (por exemplo, usuário@127.1.2.3/55) e estes sempre corresponderiam, possivelmente resultando na concessão de acesso onde não era pretendido. Relatado por Laurence Parry.
  • Novos recursos:
  • ssh (1): Adiciona um modo de multiplexação de proxy a ssh (1) inspirado na versão em PuTTY de Simon Tatham. Isso permite que um cliente de multiplexação se comunique com o processo mestre usando um subconjunto do protocolo de pacotes e canais SSH em um soquete do domínio Unix, com o processo principal atuando como um proxy que traduz as IDs do canal etc. Isso permite que o modo de multiplexação seja executado sistemas que não possuem passagem de descritor de arquivo (usado pelo código de multiplexação atual) e potencialmente, em conjunto com encaminhamento de soquete de domínio Unix, com o cliente e o processo mestre de multiplexação em máquinas diferentes. O modo de proxy de multiplexação pode ser chamado usando "ssh -O proxy ..."
  • sshd (8): Adicione uma opção sshd_config DisableForwarding que desabilita o encaminhamento de soquete de domínio X11, agente, TCP, encapsulamento e domínio Unix, bem como qualquer outra coisa que possamos implementar no futuro. Assim como o sinalizador "restricted" authorized_keys, essa é uma forma simples e preparada para o futuro de restringir uma conta.
  • sshd (8), ssh (1): Suporta o método de troca de chaves "curve25519-sha256". Isso é idêntico ao método atualmente suportado chamado "curve25519-sha256@libssh.org".
  • sshd (8): Melhora o tratamento do SIGHUP verificando se o sshd já está daemonizado na inicialização e ignorando a chamada ao daemon (3) se estiver. Isso garante que uma reinicialização SIGHUP do sshd (8) manterá o mesmo ID do processo que a execução inicial. O sshd (8) também irá agora desvincular o PidFile antes da reinicialização SIGHUP e recriá-lo após uma reinicialização bem-sucedida, em vez de deixar um arquivo obsoleto no caso de um erro de configuração. bz # 2641
  • sshd (8): Permitir que as diretivas ClientAliveInterval e ClientAliveCountMax apareçam nos blocos sshd_config Match.
  • sshd (8): Adicione% -escapes ao AuthorizedPrincipalsCommand para corresponder aos suportados pelo AuthorizedKeysCommand (chave, tipo de chave, impressão digital, etc.) e mais alguns para fornecer acesso ao conteúdo do certificado sendo oferecido.
  • Adicionados testes de regressão para correspondência de correspondência, correspondência de endereço e funções de higienização de string.
  • Aprimorou o chicote de fuzzer de troca de chaves.
  • Correções de erros:
  • ssh (1): permite que o IdentityFile carregue e use com êxito certificados que não possuem chave pública nua correspondente. certificado bz # 2617 id_rsa-cert.pub (e não id_rsa.pub).
  • ssh (1): corrige a autenticação de chave pública quando várias autenticações estão em uso e a chave pública não é apenas o primeiro método a ser tentado. bz # 2642
  • regress: permite que os testes de interoperabilidade do PuTTY sejam executados sem supervisão. bz # 2639
  • ssh-agent (1), ssh (1): melhora o relatório ao tentar carregar chaves de tokens PKCS # 11 com menos mensagens de log inúteis e mais detalhes em mensagens de depuração. bz # 2610
  • ssh (1): Ao derrubar conexões do ControlMaster, não polua stderr quando LogLevel = quiet.
  • sftp (1): On ^ Z espera que o ssh (1) subjacente suspenda antes de suspender o sftp (1) para assegurar que o ssh (1) restaure o modo terminal corretamente se for suspenso durante uma solicitação de senha.
  • ssh (1): evite busy-wait quando o ssh (1) for suspenso durante um prompt de senha.
  • ssh (1), sshd (8): Relata erros corretamente durante o envio de mensagens de info-ext.
  • sshd (8): conserta NULL-deref crash se o sshd (8) receber uma mensagem NEWKEYS fora de seqüência.
  • sshd (8): Lista correta de algoritmos de assinatura suportados enviados na extensão server-sig-algs. bz # 2547
  • sshd (8): Corrigir envio de mensagem ext_info se privsep estiver desativado.
  • sshd (8): reforça mais rigorosamente a ordenação esperada de chamadas do monitor de separação de privilégios usadas para autenticação e as permite somente quando seus respectivos métodos de autenticação são ativados na configuração
  • sshd (8): Correção de chamada não inicializada no método getsockopt (); inofensivo no Unix / BSD, mas potencialmente problemático no Cygwin.
  • Corrija relatórios falsos positivos causados ​​por explicit_bzero (3) não sendo reconhecido como um inicializador de memória quando compilado com -fsanitize-memory. sshd_config (5): Use 2001: db8 :: / 32, a sub-rede IPv6 oficial para exemplos de configuração.
  • Portabilidade:
  • Em ambientes configurados com códigos de idioma turcos, retorne ao código do idioma C / POSIX para evitar erros na análise de configuração causada pelo tratamento exclusivo do código de idioma às letras 'i' e 'I'. bz # 2643
  • sftp-server (8), ssh-agent (1): Negar ptrace no OS X usando ptrace (PT_DENY_ATTACH, ..)
  • ssh (1), sshd (8): Unbreak cifras AES-CTR no antigo (~ 0.9.8) OpenSSL.
  • Corrigir compilação para o libcrypto compilado sem suporte a RIPEMD160.
  • contrib: Adicione um gnome-ssh-askpass3 ao suporte do GTK + 3. bz # 2640 sshd (8): Melhore a reprocessamento PRNG na separação de privilégios e force o libcrypto a obter uma semente de alta qualidade antes do chroot ou do sandbox.
  • All: Teste explicitamente a existência de strnvis quebrados. O NetBSD adicionou um strnvis e infelizmente o tornou incompatível com o existente no OpenBSD e libbsd do Linux (o primeiro existindo há mais de dez anos). Tente detectar essa bagunça e assuma a única opção segura se estivermos compilando de forma cruzada.

O que há de novo na versão 7.3:

  • Segurança:
  • sshd (8): Mitigue um possível ataque de negação de serviço contra a função crypt (3) do sistema via sshd (8). Um invasor pode enviar senhas muito longas que causariam uso excessivo da CPU na cripta (3). O sshd (8) agora se recusa a aceitar solicitações de autenticação de senha com comprimento superior a 1024 caracteres. Independentemente relatado por Tomas Kuthan (Oracle), Andres Rojas e Javier Nieto.
  • sshd (8): atenua as diferenças de tempo na autenticação de senha que podem ser usadas para discernir nomes de contas válidos de inválidos quando senhas longas foram enviadas e algoritmos de hash de senha específicos estão em uso no servidor. CVE-2016-6210, relatado por EddieEzra.Harari em verint.com
  • ssh (1), sshd (8): Correção da fraqueza de tempo observável nas contramedidas oracle do encapsulamento CBC. Relatado por Jean Paul Degabriele, Kenny Paterson, Torben Hansen e Martin Albrecht. Observe que as cifras CBC estão desativadas por padrão e incluídas apenas para compatibilidade legada.
  • ssh (1), sshd (8): Melhora a ordem de operação da verificação de MAC para algoritmos MAC de transporte do modo Encrypt-then-MAC (EtM) para verificar o MAC antes de descriptografar qualquer texto cifrado. Isso elimina a possibilidade de diferenças temporais vazando fatos sobre o texto simples, embora nenhum vazamento tenha sido observado. Relatado por Jean Paul Degabriele, Kenny Paterson, Torben Hansen e Martin Albrecht. sshd (8): (somente portável) Ignora o ambiente do PAM vars quando UseLogin = yes. Se o PAM estiver configurado para ler variáveis ​​de ambiente especificadas pelo usuário e UseLogin = yes em sshd_config, um usuário local hostil poderá atacar / bin / login via LD_PRELOAD ou variáveis ​​de ambiente semelhantes configuradas via PAM. CVE-2015-8325, encontrado por Shayan Sadigh.
  • Novos recursos:
  • ssh (1): Adicione uma opção ProxyJump e o sinalizador de linha de comando -J correspondente para permitir a indireta simplificada por meio de um ou mais bastiões SSH ou "jump hosts".
  • ssh (1): Adicione uma opção IdentityAgent para permitir a especificação de soquetes de agente específicos em vez de aceitar um do ambiente. ssh (1): permite que ExitOnForwardFailure e ClearAllForwardings sejam opcionalmente substituídos ao usar ssh -W. bz # 2577
  • ssh (1), sshd (8): Implementa o suporte para o modo de terminal IUTF8 conforme o rascunho-sgtatham-secsh-iutf8-00. ssh (1), sshd (8): Adicione suporte para grupos fixos Diffie-Hellman 2K, 4K e 8K do draft-ietf-curdle-ssh-kex-sha2-03.
  • ssh-keygen (1), ssh (1), sshd (8): suporta assinaturas SHA256 e SHA512 RSA em certificados; ssh (1): Adicione uma diretiva Include para arquivos ssh_config (5).
  • ssh (1): permite caracteres UTF-8 em banners de pré-autenticação enviados pelo servidor. bz # 2058
  • Correções de erros:
  • ssh (1), sshd (8): Reduz o nível de syslog de alguns eventos de protocolo relativamente comuns de LOG_CRIT. bz # 2585
  • sshd (8): Recuse AuthenticationMethods = "" nas configurações e aceite AuthenticationMethods = any para o comportamento padrão de não exigir autenticação múltipla. bz # 2398
  • sshd (8): Remover obsoleta e enganosa "TENTATIVA DE INTERRUPÇÃO POSSÍVEL!" mensagem quando o DNS direto e reverso não corresponde. bz # 2585
  • ssh (1): Fecha o stderr do processo em segundo plano do ControlPersist, exceto no modo de depuração ou ao efetuar login no syslog. bz # 1988
  • variado: Faça a descrição do PROTOCOL para que as mensagens abertas do canal direct-streamlocal@openssh.com correspondam ao código implantado. bz # 2529
  • ssh (1): desduplica entradas LocalForward e RemoteForward para corrigir falhas quando a canonização ExitOnForwardFailure e o nome do host estiverem ativadas. bz # 2562
  • sshd (8): Remove o fallback de moduli para o arquivo "primes" obsoleto que foi descontinuado em 2001. bz # 2559.
  • sshd_config (5): Descrição correta de UseDNS: afeta o processamento do nome do host ssh para authorized_keys, not known_hosts; bz # 2554 ssh (1): Corrige a autenticação usando chaves de certificado solitário em um agente sem chaves privadas correspondentes no sistema de arquivos. bz # 2550
  • sshd (8): envia pings ClientAliveInterval quando um RekeyLimit baseado em tempo é definido; anteriormente os pacotes keepalive não estavam sendo enviados. bz # 2252

O que há de novo na versão 7.2:

  • Segurança:
  • ssh (1), sshd (8): remove código de roaming inacabado e não utilizado (já foi desativado à força no OpenSSH 7.1p2).
  • ssh (1): elimina o fallback do encaminhamento X11 não confiável para o encaminhamento confiável quando o servidor X desabilita a extensão SECURITY.
  • ssh (1), sshd (8): aumenta o tamanho mínimo do módulo suportado para diffie-hellman-group-exchange para 2048 bits.
  • sshd (8): o sandboxing pré-auth agora está habilitado por padrão (versões anteriores habilitaram-no para novas instalações via sshd_config).
  • Novos recursos:
  • all: inclua suporte para assinaturas RSA usando algoritmos de hash SHA-256/512 com base no rascunho-rsa-dsa-sha2-256-03.txt e rascunho-ssh-ext-info-04.txt.
  • ssh (1): Adicione uma opção de cliente AddKeysToAgent que pode ser definida como 'yes', 'no', 'ask' ou 'confirme' e o padrão é 'no'. Quando ativada, uma chave privada usada durante a autenticação será adicionada ao ssh-agent, se estiver em execução (com a confirmação ativada, se definida como 'confirmar').
  • sshd (8): adicione uma nova opção authorized_keys "restrict" que inclui todas as restrições de chave atuais e futuras (sem - * - encaminhamento, etc.). Adicione também versões permissivas das restrições existentes, por exemplo "no-pty" - & gt; "pty". Isso simplifica a tarefa de configurar chaves restritas e garante que elas sejam restritas ao máximo, independentemente de quaisquer permissões que possamos implementar no futuro. ssh (1): adiciona a opção ssh_config CertificateFile para listar explicitamente os certificados. bz # 2436
  • ssh-keygen (1): permite que o ssh-keygen altere o comentário-chave para todos os formatos suportados.
  • ssh-keygen (1): permite a impressão digital a partir da entrada padrão, por exemplo "ssh-keygen -lf -"
  • ssh-keygen (1): permite a impressão digital de várias chaves públicas em um arquivo, por exemplo, "ssh-keygen -lf ~ / .ssh / authorized_keys" bz # 1319
  • sshd (8): suporta "none" como um argumento para sshd_config Foreground e ChrootDirectory. Útil dentro de blocos de correspondência para substituir um padrão global. bz # 2486
  • ssh-keygen (1): suporta vários certificados (um por linha) e lê a partir da entrada padrão (usando "-f -") para "ssh-keygen -L" ssh-keyscan (1): adiciona "ssh- keyscan -c ... "sinaliza para permitir buscar certificados em vez de chaves simples.
  • ssh (1): melhor lidar com FQDNs ancorados (por exemplo, 'cvs.openbsd.org.') na canonização do nome do host - trate-os como já canônicos e remova o '. antes de corresponder ao ssh_config.
  • Correções de erros:
  • sftp (1): os diretórios de destino existentes não devem finalizar os uploads recursivos (regressão no openssh 6.8) bz # 2528
  • ssh (1), sshd (8): envia corretamente as respostas SSH2_MSG_UNIMPLEMENTED para mensagens inesperadas durante a troca de chaves. bz # 2949
  • ssh (1): recusar tentativas de definir ConnectionAttempts = 0, o que não faz sentido e faria com que o ssh imprimisse uma variável de pilha não inicializada. bz # 2500
  • ssh (1): corrige erros ao tentar se conectar a endereços IPv6 com escopo com a canonização do nome do host ativada.
  • sshd_config (5): liste mais algumas opções utilizáveis ​​em Blocos de correspondência. bz # 2489
  • sshd (8): corrija "PubkeyAcceptedKeyTypes + ..." dentro de um bloco de Correspondência. ssh (1): expande os caracteres de til em nomes de arquivos passados ​​para as opções -i antes de verificar se o arquivo de identidade existe ou não. Evita confusão nos casos em que o shell não se expande (por exemplo, "-i ~ / file" vs. "-i ~ / file"). bz # 2481
  • ssh (1): não prefixam "exec" no comando shell executado por "Match exec" em um arquivo de configuração, o que pode fazer com que alguns comandos falhem em determinados ambientes. bz # 2471
  • ssh-keyscan (1): corrige a saída para vários hosts / addrs em uma linha quando o hashing do host ou uma porta não padrão está em uso bz # 2479
  • sshd (8): pula a mensagem "Não foi possível chdir para o diretório inicial" quando o ChrootDirectory está ativo. bz # 2485
  • ssh (1): inclui o PubkeyAcceptedKeyTypes no ssh -G config dump. sshd (8): evite mudar sinalizadores de dispositivo TunnelForwarding se eles já são o que é necessário; torna possível usar tun / tap networking como usuário não-root se as permissões do dispositivo e os sinalizadores de interface forem pré-estabelecidos
  • ssh (1), sshd (8): RekeyLimits pode ser excedido por um pacote. bz # 2521
  • ssh (1): corrija a falha do mestre de multiplexação para notar a saída do cliente.
  • ssh (1), ssh-agent (1): evita fatal () para tokens PKCS11 que apresentam IDs de chave vazios. bz # 1773
  • sshd (8): evita printf do argumento NULL. bz # 2535
  • ssh (1), sshd (8): permite RekeyLimits maiores que 4GB. bz # 2521
  • ssh-keygen (1): sshd (8): conserta vários bugs no suporte a assinaturas KRL (não utilizadas).
  • ssh (1), sshd (8): corrige conexões com pares que usam o recurso de adivinhação de troca de chaves do protocolo. bz # 2515
  • sshd (8): inclui o número da porta remota em mensagens de log. bz # 2503
  • ssh (1): não tente carregar a chave privada SSHv1 quando compilado sem o suporte SSHv1. bz # 2505
  • ssh-agent (1), ssh (1): corrige mensagens de erro incorretas durante os principais erros de carregamento e assinatura. bz # 2507
  • ssh-keygen (1): não deixe arquivos temporários temporários ao executar edições de arquivos do known_hosts quando não existir o known_hosts.
  • sshd (8): formato de pacote correto para respostas tcpip-forward para solicitações que não alocam uma porta bz # 2509
  • ssh (1), sshd (8): correção possível travar na saída fechada. bz # 2469 ssh (1): expanda% i no ControlPath para o UID. bz # 2449
  • ssh (1), sshd (8): corrige o tipo de retorno de openssh_RSA_verify. bz # 2460
  • ssh (1), sshd (8): corrige algumas opções de análise de vazamentos de memória. bz # 2182
  • ssh (1): adiciona uma saída de depuração antes da resolução de DNS; é um lugar onde o ssh poderia anteriormente parar em silêncio nos casos de servidores DNS que não respondem. bz # 2433 ssh (1): remove nova linha espúria no hostkey visual. bz # 2686
  • ssh (1): corrige a impressão (ssh -G ...) de HostKeyAlgorithms = + ...
  • ssh (1): corrige a expansão de HostkeyAlgorithms = + ...
  • Documentação:
  • ssh_config (5), sshd_config (5): atualiza as listas de algoritmos padrão para corresponder à realidade atual. bz # 2527
  • ssh (1): mencione as opções de consulta -Q key-plain e -q key-cert. bz # 2455
  • sshd_config (8): mais claramente descreve o que AuthorizedKeysFile = nenhum faz.
  • ssh_config (5): documenta melhor o ExitOnForwardFailure. bz # 2444
  • sshd (5): mencione grupos internos de fallback DH-GEX no manual. bz # 2302
  • sshd_config (5): melhor descrição para a opção MaxSessions. bz # 2531
  • Portabilidade:
  • ssh (1), sftp-server (8), ssh-agent (1), sshd (8): Suporta privilégios de baixa granularidade do Illumos / Solaris. Incluindo uma caixa de proteção pré-auth privsep e várias emulações de penhor (). bz # 2511
  • Renove o redhat / openssh.spec, removendo as opções e a sintaxe reprovadas.
  • configure: allow --without-ssl-engine com --without-openssl
  • sshd (8): conserta a autenticação múltipla usando S / Key. bz # 2502
  • sshd (8): read from libcrypto RAND_before removendo privilégios. Evita violações de sandbox com o BoringSSL.
  • Corrija a colisão de nomes com funções glob (3) fornecidas pelo sistema. bz # 2463
  • Adapte o Makefile para usar o ssh-keygen -A ao gerar as chaves do host. bz # 2459
  • configure: valor padrão correto para --with-ssh1 bz # 2457
  • configure: melhor detecção de _res symbol bz # 2259
  • support getrandom () syscall no Linux

O que há de novo na versão 7.1:

  • Segurança:
  • sshd (8): O OpenSSH 7.0 continha um erro lógico em PermitRootLogin = prohibit-password / sem-senha que poderia, dependendo da configuração em tempo de compilação, permitir que a autenticação de senha fosse root, evitando outras formas de autenticação. Este problema foi relatado por Mantas Mikulenas.
  • Correções de erros:
  • ssh (1), sshd (8): adicione soluções alternativas de compatibilidade para o FuTTY
  • ssh (1), sshd (8): refine as alternativas de compatibilidade para o WinSCP
  • Corrigir um número de falhas de memória (duplo-livre, livre de memória não inicializada, etc) em ssh (1) e ssh-keygen (1). Relatado por Mateusz Kocielski.

Outro software de desenvolvedor OpenBSD Project

Portable OpenSSH
Portable OpenSSH

22 Jun 18

OpenSMTPD
OpenSMTPD

28 Sep 15

Comentário para OpenSSH

Comentários não encontrado
Adicionar comentário
Ligue imagens!