Primeira vez que abre um servidor SSH na Internet, o que verificar


9

Estou executando alguns servidores há um tempo relativamente longo, mas sempre os aluguei, portanto não tenho muita experiência em proteger o servidor real (em oposição ao aplicativo em que estou executando).

Agora estou com vontade de abrir meu pequeno servidor SSH doméstico para a Internet.

Eu serei o único a usá-lo, minhas senhas são complicadas o suficiente, mudei a porta SSH padrão para algo em torno de 4000, a única porta acessível é essa porta SSH através do encaminhamento de porta no meu roteador / firewall e é atualizada automaticamente todas as noites (ele roda o Arch Linux, uma distribuição de lançamentos contínuos).

Quais são, se houver, outras coisas que devo fazer para mantê-lo seguro?

Obrigado!

Respostas:


22

Verifique se os logins raiz estão desabilitados PermitRootLogin no. Também consideraria desabilitar completamente as senhas PasswordAuthentication noe usar chaves públicas PubkeyAuthentication yes.


+1 me venceu ... #
409 gravyface

1
Se você estiver usando senhas, tente procurar em um sistema de autenticação de dois fatores. Caso contrário, recomendo não digitar sua senha em um sistema aleatório de cibercafé / biblioteca.
Mark Wagner

4
Se você permitir que a senha de autenticação, considere a instalação fail2ban para evitar ataques de força bruta e usar senhas fortes para qualquer conta permitido o login via ssh
uSlackr

@embobo - por que isso? As senhas enviadas pelo fio são criptografadas no ssh. Sim, a autenticação de chave é muito superior em muitos aspectos, mas desde que as senhas sejam suficientemente fortes e você tenha verificado que ninguém está navegando no ombro, não será um grande problema.
EEAA

3
@ Erika Eu acho que o embobo está aludindo à desconfiança geral de qualquer sistema estrangeiro. Mesmo que o SSH esteja criptografado, uma máquina estrangeira ainda pode dizer, registre as teclas digitadas. Assim senha = comprometida.
Rthomson #

9

Verifique se apenas o SSH-2 é permitido (já que o SSH-1 levantou algumas preocupações de segurança no passado):

Protocol 2

Especifique quais são os únicos usuários com permissão para efetuar login via SSH:

AllowUsers bob, john

Para aumentar a segurança, desautorize a autenticação por senha e use a autenticação por chave pública:

PasswordAuthentication no
PubkeyAuthentication yes

Nota: este tutorial contém instruções para criar chaves e configurar a autenticação de chave pública.


5

Além dos pontos sobre a desativação do login raiz ou o uso apenas da autenticação de chave pública, também verifiquei se não há contas de usuário no sistema que tenham senhas triviais ou vazias. Você disse que suas senhas pessoais estão corretas, mas isso não exclui que uma conta com uma senha ruim tenha sido criada por algum outro motivo.

Como exemplo: eu tive que consertar uma rede em que o administrador anterior instalou o nagios em todos os seus sistemas a partir da fonte e criei um usuário do nagios sem senha ou a senha "nagios" e, em seguida, passei a obter três máquinas diferentes comprometida.


4

Você pode querer olhar para algum tipo de ferramenta de lista negra de IP, como http://denyhosts.sourceforge.net/ . Ele bloqueia todos os IPs que tentam efetuar login sem êxito muitas vezes e é altamente configurável.


Provavelmente um desperdício de tempo se você tiver os logins raiz desabilitados. Na minha experiência (2 anos ish de um servidor SSH na internet), apenas alguns conseguiram meu nome de usuário (óbvio) correto. Os bots estão apenas verificando senhas óbvias em nomes de usuário comuns (99% das falhas de logon no meu servidor são de raiz, que é desativada, é claro).
Brendan Long

4
Definitivamente não um desperdício de tempo -, mas ter um olhar para fail2ban
symcbean

+1 para fail2ban.
JamesBarnett 27/05

1
root não é a única conta óbvia que os bots procuram, veja nagios, como mencionado acima. Também existem contas de banco de dados como mysql e postgres. Além de outras contas de aplicativos.
JamesBarnett 27/05

Sim, na verdade, tive minha máquina SSH voltada para a rede assumida por um bot que adivinha uma senha não raiz, então definitivamente não é uma perda de tempo. Além disso, como obter uma lista negra como esta, verificando os logs, uma porcentagem muito pequena de tentativas é realmente raiz.
Lynden Shields


0

Revisões recorrentes de logs nas partes / componentes pertinentes de seus sistemas (dependendo da configuração real / específica) ...

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.