Criei meu primeiro servidor público - um servidor SFTP hospedado no google cloud. Eu estava verificando o log de autenticação durante o 2º dia de teste e notei que estou recebendo de 4 a 10 acessos de pessoas aleatórias a cada minuto! 3700 solicitações com falha em 16 horas - isso parece ridículo, então eu quero saber se existe alguma maneira de pará-las. Eu tenho quase zero experiência com firewalls - eu esperava evitar o padrão para rejeitar todos e permitir apenas IPs na lista de permissões, mas talvez eu tenha que considerar isso.
Apr 4 13:34:05 nfp sshd[12034]: Failed password for invalid user tjkim from 134.122.9.249 port 48930 ssh2
Apr 4 13:34:13 nfp sshd[12107]: Failed password for invalid user barman from 198.58.119.132 port 39626 ssh2
Apr 4 13:34:16 nfp sshd[12119]: Failed password for invalid user rscreen from 203.205.37.233 port 33740 ssh2
Apr 4 13:34:16 nfp sshd[12121]: Failed password for invalid user oakda from 164.90.194.36 port 41566 ssh2
Apr 4 13:34:18 nfp sshd[12123]: Failed password for invalid user lia from 43.130.60.190 port 46610 ssh2
Apr 4 13:34:20 nfp sshd[12125]: Failed password for invalid user hongphong from 193.106.60.145 port 33020 ssh2
Apr 4 13:34:23 nfp sshd[12127]: Failed password for invalid user uucpsh from 157.245.101.31 port 59112 ssh2
Apr 4 13:34:27 nfp sshd[12129]: Failed password for invalid user legaltech from 43.154.249.125 port 33970 ssh2
Apr 4 13:34:51 nfp sshd[12132]: Failed password for invalid user dhamu from 164.90.198.71 port 36212 ssh2
Apr 4 13:34:57 nfp sshd[12134]: Failed password for invalid user onapp from 115.182.105.68 port 46286 ssh2
Alguma orientação para um novato?
Seu servidor está na Internet pública. Os hackers tentarão invadir qualquer coisa, então o que você está vendo é normal e irritante.
Desde que você tenha habilitado apenas pares de chaves SSH e não autenticação baseada em senha, você está OK em relação à segurança.
Prefiro permitir apenas o SSH de endereços IP conhecidos por meio das configurações de firewall da VPC . Modifique a regra default-allow-ssh para permitir apenas seu endereço IP público (de casa, do escritório, etc).
Tentei fail2ban com estas configurações:
Isso não funcionou. Ele apenas baniu os IPs por um período muito curto de tempo, embora bantime = -1.
Depois de corrigi-lo (criando e ajustando
jail.local
conforme especificado acima), ele funciona conforme o esperado./var/log/fail2ban.log
Também tentou reduzir os ataques por:
Isso não ajudou muito. O tráfego voltou em um dia (IPs diferentes).
Tive que finalmente executar:
Isso parou as pragas, mas agora tenho que colocar na lista branca todos a quem quero dar acesso. Portanto, uma troca.
Infelizmente, isso resultou no bloqueio do meu servidor quando levei meu laptop para outro lugar. Aqui está um link para ajudar se isso acontecer com você: Como acessar o servidor GCP após ser bloqueado devido ao ufw
Atualizar:
Acontece que o tutorial que eu segui inicialmente não era muito bom (tinha as configurações em
fail2ban.local
). É por isso que minha implementação do fail2ban não estava funcionando como esperado. Foi uma boa lição sobre a importância da documentação oficial! Depois de encontrar a documentação oficial aqui , as configurações da prisão devem estar emjail.local
(que começa como uma cópia dejail.conf
), e nãofail2ban.local
em .