Quão arriscado é ter um servidor pessoal com ssh aberto para a Internet?

24

A continuação do título seria "apesar de ter um conhecimento limitado da segurança da Internet".

Eu configurei recentemente um pequeno servidor com um computador low end executando o Debian, com o objetivo de usá-lo como um repositório git 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 perguntas e duplicatas sobre serverfault lidar 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 aprender sobre segurança na Internet, não tenho 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 brinquedos, 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 um conhecimento ainda menor do que o meu executando o Windows.

Qual é a probabilidade de eu ter problemas reais se seguir as diretrizes básicas como senha strong, acesso root desativado para ssh, porta não padrão para ssh e possivelmente desabilitar o login com senha e usar uma das regras fail2ban, denyhosts ou iptables?

Em outras palavras, há alguns grandes lobos maus que eu deveria temer ou é principalmente sobre espantar crianças scriptas?

    
por Alfred M. 26.08.2013 / 14:53

5 respostas

14

O SSO da IMO é uma das coisas mais seguras para se 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. O próprio SSH é muito sólido.

Eu tenho pessoas acessando meu servidor SSH de vez em quando (aberto para a Time Warner Cable). Nunca teve um impacto real.

Algumas coisas adicionais que você pode fazer para tornar o SSH mais seguro são evitar tentativas repetidas do mesmo endereço IP para uma máquina doméstica como

MaxStartups 2:30:10

em / etc / ssh / sshd_config que irá restringir quantas conexões podem ser criadas em uma linha antes de logar com sucesso.

    
por 26.08.2013 / 14:59
10

A configuração de 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á-la deveria ser uma ofensa pública.

    
por 26.08.2013 / 16:05
8

Eu também gerencio 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 SSH aberto em um IP acessível publicamente, mas a melhor ferramenta IMO em resposta a tentativas de força bruta é Fail2Ban - software que monitora seus arquivos de log de autenticação, detecta tentativas de invasão e adiciona regras de firewall ao firewall iptables local da máquina. Você pode configurar quantas tentativas antes de uma proibição e também a duração da proibição (meu padrão é 10 dias).

    
por 26.08.2013 / 15:49
2

Outra maneira de lidar com isso é configurar uma VPN. Em vez de se conectar diretamente a portas SSH em seu servidor doméstico, primeiro você se conecta à VPN e, em seguida, executa todo o seu tráfego pela conexão segura e criptografada.

A maneira ideal de lidar com isso é com um firewall que incorpora um ponto de extremidade VPN, mas você também pode configurar um computador Windows para atuar como um servidor VPN.

Veja um exemplo:

link

Agora, lembre-se de que uma configuração de segurança correta envolveria um computador público (ou semipúblico) isolado de sua rede interna. Um servidor da Web ou qualquer computador que hospede serviços disponíveis publicamente deve estar fora da rede segura da sua casa ou escritório. Você usaria dois roteadores para criar uma zona segura, ou uma DMZ, entre você e a Internet.

Dessa forma, se o seu servidor for invadido, ele não poderá ser usado como um vetor para atacar seus outros computadores.

A configuração seria assim:

    
por 05.12.2013 / 23:02
2

As respostas são muito boas, eu recomendaria apenas duas coisas:

  • Considere o acesso apenas pelo sistema de autenticação por chave
  • Use Denyhosts : ele proibirá os hosts de tentar acessar seu servidor com autenticação inválida
por 05.12.2013 / 23:10