Did I do all the steps necessary in order for non-local computers to be unable to even try to log into my server?
Você os impediu de tentar entrar no seu servidor como root . Então isso faz a diferença:
- Se você adicionar uma chave SSH para uma segunda conta.
- Durante qualquer etapa de manutenção como essa, em que você ativou temporariamente logins de senha. A menos que você desconecte sua rede da Internet, mas percebo que você não mencionou isso em seus passos.
Se você pretende satisfazer a pergunta acima, parece melhor codificá-la diretamente. Por exemplo, acredito que você pode controlar logins de todos os usuários com uma linha. Isso evitaria a necessidade de "temporariamente" se abrir para ataques de adivinhação de senha baseados na Internet: -).
AllowUsers *@192.168.0.*
Mas você não deve confiar em uma configuração do daemon SSH. Você deve perguntar por que não está aplicando essa política em um firewall central. Se você não deseja logins não locais, não há necessidade de se expor a erros hipotéticos no código de pré-autenticação do seu servidor SSH , por exemplo.
Vou me limitar a um conselho não solicitado. Você pode se surpreender se alguma vez melhorar seus sistemas locais para resolver nomes de hosts para endereços IPv6, mesmo que não intencionalmente. Porque o acima não permitirá nenhuma conexão feita em um endereço IPv6 :). Se você confiar apenas em um firewall central, não precisará se preocupar com isso também.
A configuração de rede mais simples é ter um firewall centralizado que distingue sua rede local do tráfego da Internet (e qualquer outra coisa, por exemplo, guest wireless). Bloqueie qualquer conexão da Internet, a menos que você tenha um motivo específico para permitir isso.
Isso foi padronizado como padrão em roteadores domésticos / de pequenas empresas. (Você ainda deve verificar essas suposições porque esses dispositivos são notoriamente baratos e desafiados pela segurança. Esse problema em particular é muito óbvio que os ativistas fazem fazer aviso, mas sabe-se que alguns dispositivos fizeram o "errado" escolha quando implementaram o IPv6 pela primeira vez.
Claro que se você quiser, você também pode configurar um firewall "redundante" no próprio host. Por exemplo. isso é potencialmente útil para aplicar uma política "sem portas abertas" por padrão no Ubuntu ou Debian . A desvantagem é que os firewalls são coisas difíceis de lembrar, configurar e solucionar problemas quando eles quebram coisas, e agora você tem dois separados! Ir de um para dois aumenta significativamente a complexidade, cada vez que você quiser começar a usar um aplicativo de servidor puro (como o SSH) ou um aplicativo ponto a ponto que não projetou uma variante maximamente confiável de hole punch .
A próxima configuração de rede mais simples é adicionar opções redundantes no estilo de sshd ListenAddress
. Para adicionar suporte a IPv6, você pode garantir que o roteador atribua endereços locais exclusivos, bem como os endereços globalmente roteáveis, e ouça o endereço local exclusivo. Quando você tem IPv6, forçar a% específica de ListenAddress
adiciona uma margem de segurança de material. Isso é diferente de quando você só tinha IPv4, e a internet não seria capaz de atacar seu servidor de qualquer maneira (por causa do NAT), a menos que
- seu servidor era o roteador ou
- você tinha um modem puro e não uma combinação modem + roteador ou
- você alugou pelo menos um endereço IP global adicional e ele foi atribuído ao seu servidor.
Em geral, ainda faria sentido usar um firewall (e não me lembro de nenhuma exceção específica), enquanto tratava os gostos de ListenAddress
como uma segunda margem de segurança.
Codificar sua configuração do daemon SSH não apenas com o endereço IP do servidor, mas o intervalo da rede em que está, é de longe a menos desejável das técnicas listadas aqui IMO:). / p>