Dica interessante para melhorar a segurança SSH

Desta vez, veremos um dica curta e simples isso nos ajudará a melhorar segurança de nossas conexões remotas com SSH.


OpenSSH, que é o pacote fornecido pelos sistemas GNU / Linux para lidar com conexões SSH, tem uma grande variedade de opções. Lendo o livro SSH O Shell Seguro e nas páginas de manual encontrei a opção -F, que diz ao cliente SSH para usar um arquivo de configuração diferente do encontrado por padrão no diretório / etc / ssh.

Como usamos esta opção?

Da seguinte maneira:

ssh -F / path / to_your / configuration / file user @ ip / host

Por exemplo, se tivermos um arquivo de configuração personalizado denominado my_config na área de trabalho e quisermos nos conectar com o usuário Carlos ao computador com o IP 192.168.1.258, usaríamos o comando da seguinte maneira:

ssh -F ~ / Desktop / my_config carlos@192.168.1.258

Como isso ajuda a segurança da conexão?

Vamos lembrar que um invasor estando dentro de nosso sistema tentará imediatamente obter privilégios de administrador se ele ainda não os tiver, então seria muito fácil para ele executar ssh para se conectar ao resto das máquinas na rede. Para evitar isso, podemos configurar o arquivo / etc / ssh / ssh_config com valores incorretos, e quando quisermos nos conectar via SSH usaremos o arquivo de configuração que teremos salvo em um local que só nós conhecemos (mesmo em um local externo dispositivo de armazenamento), digamos, teríamos segurança na escuridão. De esta manera el atacante quedaría desconcertado al encontrar que no puede conectarse usando SSH y que intenta hacer las conexiones de acuerdo a lo especificado en el archivo de configuración predeterminado por lo que le resultará algo difícil darse cuenta de lo que pasa, y le complicaremos bastante o trabalho.

Isso adicionado para alterar a porta de escuta do servidor SSH, desabilitar SSH1, especificar quais usuários podem se conectar ao servidor, permitir explicitamente qual IP ou intervalo de IPs pode se conectar ao servidor e outras dicas que podemos encontrar em http://www.techtear.com/2007/04/08/trucos-y-consejos-para-asegurar-ssh-en-linux eles nos permitirão aumentar a segurança de nossas conexões SSH.

Tudo descrito acima pode ser feito em uma linha. Para o meu gosto, seria muito tedioso ter que escrever uma linha grande com várias opções toda vez que tentamos fazer login via SSH em um PC remoto, por exemplo, o seguinte seria uma amostra do que estou dizendo:

ssh -p 1056 -c baiacu -C -l carlos -q -i me 192.168.1.258

-p Especifica a porta para conexão no host remoto.
-c Especifica como a sessão deve ser criptografada.
-C Indica que a sessão deve ser compactada.
-l Indica o usuário com o qual efetuar login no host remoto.
-q Indica que as mensagens de diagnóstico foram suprimidas.
-i Indica o arquivo a ser identificado com (chave privada)

Devemos lembrar também que poderíamos usar o histórico do terminal para evitar ter que digitar todo o comando toda vez que precisarmos, algo que um invasor também poderia tirar vantagem, então eu não recomendaria isso, pelo menos no uso de Conexões SSH.

Embora o problema de segurança não seja a única vantagem dessa opção, posso pensar em outras, como ter um arquivo de configuração para cada servidor ao qual queremos nos conectar, portanto, evitaremos escrever as opções toda vez que quisermos fazer uma conexão um servidor SSH com uma configuração específica.

Usar a opção -F pode ser muito útil no caso de você ter vários servidores com configurações diferentes. Caso contrário, todas as configurações terão que ser lembradas, o que é praticamente impossível. A solução seria ter um arquivo de configuração perfeitamente preparado de acordo com as necessidades de cada servidor, facilitando e garantindo o acesso a esses servidores.

Neste elo http://www.openbsd.org/cgi-bin/man.cgi?query=ssh_config Você pode descobrir como editar o arquivo de configuração do cliente SSH.

Lembre-se que esta é apenas mais uma dica das centenas que podemos encontrar para garantir o SSH, então se você deseja ter conexões remotas seguras deve combinar entre as possibilidades que o OpenSSH nos oferece.

Isso é tudo por enquanto, espero que essas informações ajudem você e aguardo outro post sobre segurança SSH na próxima semana.

Nota: se você quiser ler o livro "SSH The Secure Shell", certifique-se de consultar as páginas de manual da versão que você instalou, pois o livro está bastante atrasado em termos de opções suportadas pelo OpenSSH.
Obrigado Izkalotl pela contribuição!
Interessado em faça uma contribuição?

Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

  1.   HacKan & CuBa co. dito

    o que? Acho que você se refere a outro post, porque não entendi o que você mencionou. Este post dá uma pequena dica para aplicar no momento de estabelecer a conexão com um computador, não se refere a alterar nenhuma configuração do mesmo, nem a resolver nada se alguém conseguir entrar. A ideia é tornar a comunicação entre computadores segura, ignorando os parâmetros padrão que podem não oferecer o nível de segurança adequado.
    Port-knocking é interessante para restringir ataques (não os impede completamente, mas faz o seu efeito), embora eu ache um pouco desconfortável de usar ... Só não tenho muita experiência com isso.
    Existem vários programas que verificam os logs para bloquear o acesso por ip quando logins incorretos são detectados.
    A coisa mais segura é usar o login sem senha usando arquivos de chave.

    Saudações!

  2.   HacKan & CuBa co. dito

    o que? Acho que você se refere a outro post, porque não entendi o que você mencionou. Este post dá uma pequena dica para aplicar no momento de estabelecer a conexão com um computador, não se refere a alterar nenhuma configuração do mesmo, nem a resolver nada se alguém conseguir entrar. A ideia é tornar a comunicação entre computadores segura, ignorando os parâmetros padrão que podem não oferecer o nível de segurança adequado.
    Port-knocking é interessante para restringir ataques (não os impede completamente, mas faz o seu efeito), embora eu ache um pouco desconfortável de usar ... Só não tenho muita experiência com isso.
    Existem vários programas que verificam os logs para bloquear o acesso por ip quando logins incorretos são detectados.
    A coisa mais segura é usar o login sem senha usando arquivos de chave.

    Saudações!

  3.   HacKan & CuBa co. dito

    Além disso, o ssh irá procurar a configuração do usuário padrão em ~ / .ssh / config
    A menos que o daemon tenha sido configurado para não, mas por padrão ele está.
    É importante levar em consideração o algoritmo usado para hashes, com a opção -m; Eu recomendo hmac-sha2-512, hmac-sha2-256, hmac-ripemd160 porque eles oferecem a melhor segurança. Tenha cuidado, porque por padrão ele usa MD5 (ou sha1, espero) !! são aquelas coisas que não são compreendidas….
    De qualquer forma, uma boa ideia seria executá-lo com:
    ssh -p PORT -c aes256-ctr -m hmac-sha2-512 -C IP
    com -c você especifica o algoritmo de criptografia usado, onde o ctr (modo de contador) é o mais recomendado (aes256-ctr e aes196-ctr), e se não o cbc (encadeamento de bloco de criptografia): aes256-cbc, aes192-cbc , baiacu-cbc, cast128-cbc

    Saudações!

  4.   HacKan & CuBa co. dito

    Além disso, o ssh irá procurar a configuração do usuário padrão em ~ / .ssh / config
    A menos que o daemon tenha sido configurado para não, mas por padrão ele está.
    É importante levar em consideração o algoritmo usado para hashes, com a opção -m; Eu recomendo hmac-sha2-512, hmac-sha2-256, hmac-ripemd160 porque eles oferecem a melhor segurança. Tenha cuidado, porque por padrão ele usa MD5 (ou sha1, espero) !! são aquelas coisas que não são compreendidas….
    De qualquer forma, uma boa ideia seria executá-lo com:
    ssh -p PORT -c aes256-ctr -m hmac-sha2-512 -C IP
    com -c você especifica o algoritmo de criptografia usado, onde o ctr (modo de contador) é o mais recomendado (aes256-ctr e aes196-ctr), e se não o cbc (encadeamento de bloco de criptografia): aes256-cbc, aes192-cbc , baiacu-cbc, cast128-cbc

    Saudações!

  5.   ivaan11 dito

    o que eu queria é que ninguém pudesse acessar meu pc e controlá-lo remotamente
    então eu entendo pelas suas palavras que se eu não abrir a porta não há acesso pelo menos dessa forma

    mercii por responder!

  6.   ivaan11 dito

    holaa
    Segui alguns dos truques e tenho uma pergunta! dentre as opções também mudei
    A porta para outra diferente da tradicional.Se eu não abrir essa porta no roteador, será impossível eles se conectarem ao meu pc? ou será redirecionado para outra porta?

    Não preciso fazer nenhuma conexão remota, então queria saber o que seria mais eficaz se abrir a porta ou deixá-la bloqueada.

    Espero respostas!

  7.   Serge Weizenegger dito

    > A coisa mais segura é usar o login sem senha usando arquivos de chave.
    É exatamente o que eu ia dizer ... que a única maneira de fazer login em diferentes computadores é com uma chave que está em um pendrive pendurado no pescoço 😉
    O invasor pode desperdiçar sua vida inteira tentando violar uma senha com força bruta e nunca perceberá que não precisa de uma senha, mas de um arquivo XD.

  8.   linux izkalotl dito

    Não sou especialista em Segurança e Redes, mas para violar seu sistema de segurança com login sem senha bastaria simplesmente fazer um script para copiar sua chave armazenada em um pendrive no momento em que você o monta, então em questão de segundos você o faria ter acesso com sua própria chave ao servidor remoto (e claro, sem necessidade de senha), o problema com o sem senha é que te faz sentir uma falsa segurança, pois como você pode ver com algumas linhas em um script isso faria seja muito fácil assumir o controle de seus servidores remotos. Lembre-se de que um invasor não perderá tempo ou recursos tentando quebrar senhas se houver uma maneira mais curta de violar sua segurança. Recomendo que você use pelo menos 20 das opções que o SSH permite configurar e adicionar algo como TCP Wrappers, um bom Firewall e mesmo assim seu servidor não estaria 100% protegido, o pior inimigo em matéria de segurança é confiar.

  9.   Gorlok dito

    É interessante, embora eu não tenha certeza do benefício real, sendo que estamos falando apenas de dificultar um pouco as coisas quando um invasor já se juntou à equipe e adicionar mais complexidade aos administradores.
    Acho uma técnica de honeypot mais útil para alertar (e agir?) Sobre atividades suspeitas ou algum tipo de sandbox que restrinja as ações do invasor.
    Ou procuraria outros tipos de técnicas que impeçam a entrada, como porta-knocking.
    Além disso, obrigado por compartilhar isso e abrir o debate.