Como é arriscado executar um servidor doméstico protegido por trás do SSH?
Quando você precisa abrir algo em sua rede doméstica para a internet maior, é um túnel SSH uma maneira segura o suficiente para fazê-lo?
A sessão de perguntas e respostas de hoje nos é oferecida por cortesia do SuperUser - uma subdivisão do Stack Exchange, um agrupamento de sites de perguntas e respostas conduzido pela comunidade..
A questão
Leitor de SuperUser Alfred M. quer saber se ele está no caminho certo com segurança de conexão:
Eu configurei recentemente um pequeno servidor com um computador de baixo custo executando o Debian com o objetivo de usá-lo como um repositório pessoal. Eu habilitei o ssh e fiquei bastante surpreso com a rapidez com que sofreu ataques de força bruta e coisas do tipo. Então eu li que isso é bastante comum e aprendi sobre medidas básicas de segurança para evitar esses ataques (muitas questões e duplicatas no serverfault lidam com isso, veja por exemplo este ou este).
Mas agora estou me perguntando se tudo isso vale o esforço. Decidi criar meu próprio servidor principalmente por diversão: eu poderia confiar apenas em soluções de terceiros, como as oferecidas pelo gitbucket.org, bettercodes.org, etc. Embora parte da diversão seja sobre aprender sobre a segurança da Internet, eu não tempo suficiente para dedicar-se a ele para se tornar um especialista e ter quase certeza de que tomei as medidas corretas de prevenção.
Para decidir se continuarei a brincar com este projeto de brinquedo, gostaria de saber o que realmente corro o risco de o fazer. Por exemplo, em que medida os outros computadores conectados à minha rede também são ameaçados? Alguns desses computadores são usados por pessoas com conhecimento ainda menor do que o meu executando o Windows.
Qual é a probabilidade de eu ter problemas reais se eu seguir as diretrizes básicas como senha forte, acesso root desativado para ssh, porta não padrão para ssh e possivelmente desabilitar o login de senha e usar uma das regras fail2ban, denyhosts ou iptables?
Dito de outra forma, há alguns grandes lobos maus que eu deveria temer ou é tudo principalmente sobre enxotar crianças de script??
Alfred deve se ater a soluções de terceiros ou sua solução DIY é segura??
A resposta
O colaborador do SuperUser TheFiddlerWins tranquiliza Alfred que é bastante seguro:
IMO SSH é uma das coisas mais seguras para ouvir na internet aberta. Se você está realmente preocupado, ouça em uma porta high-end não padrão. Eu ainda tenho um firewall (nível de dispositivo) entre sua caixa e a Internet real e apenas uso o encaminhamento de porta para SSH, mas isso é uma precaução contra outros serviços. SSH em si é muito sólido.
Eu ter pessoas acessaram meu servidor SSH ocasional (aberto para a Time Warner Cable). Nunca teve um impacto real.
Outro colaborador, Stephane, destaca como é fácil proteger ainda mais o SSH:
Configurar um sistema de autenticação de chave pública com SSH é realmente trivial e leva cerca de 5 minutos para configurar.
Se você forçar toda a conexão SSH a usá-la, ela tornará seu sistema praticamente tão resiliente quanto possível, sem investir muito na infraestrutura de segurança. Francamente, é tão simples e eficaz (contanto que você não tenha 200 contas - então fica confuso) que não usá-lo deve ser uma ofensa pública.
Finalmente, Craig Watson oferece outra dica para minimizar as tentativas de invasão:
Eu também executo um servidor git pessoal que está aberto para o mundo no SSH, e eu também tenho os mesmos problemas de força bruta que você, então eu posso simpatizar com a sua situação.
TheFiddlerWins já aborda as principais implicações de segurança de ter o SSH aberto em um IP acessível publicamente, mas a melhor ferramenta IMO em resposta a tentativas de força bruta é o Fail2Ban - software que monitora seus arquivos de log de autenticação, detecta tentativas de invasão e adiciona regras de firewall ao local da máquina
iptables
firewall. Você pode configurar quantas tentativas antes de uma proibição e também a duração da proibição (meu padrão é 10 dias).
Tem algo a acrescentar à explicação? Soe fora nos comentários. Quer ler mais respostas de outros usuários do Stack Exchange com experiência em tecnologia? Confira o tópico de discussão completo aqui.