Evitando um grande número de tentativas de login malsucedidas de IPs falsificados?

Evitando um grande número de tentativas de login malsucedidas de IPs falsificados?

Meu arquivo de log do sistema (/var/log/auth.log) está mostrando centenas e centenas de IPs diferentes tentando fazer login no meu sistema. Como posso evitar todos esses ataques? Parece que todos os endereços IP são falsos ("pin" ou "traceroute") sempre mostram centenas de endereços IP diferentes no arquivo auth.log?

Eu realmente preciso de ajuda com isso! Obrigado!

Estou lendo o que outras pessoas sugerem

  • StrictModes sim (o que isso faz?)
  • hosts.allow ALL: (isso me permitiria conectar se o endereço IP fosse de um café e fosse "eu eu"?)

Aqui está a aparência do meu firewall "iptables".

asher@starparty:~$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination    

Estou lendo que outras pessoas recomendam...

  • iptables -I ENTRADA -s -p tcp -m tcp --dport 22 -j ACEITAR

EXEMPLO DE SAÍDA DE LOGIN REMOTO SSH: "tail /var/log/auth.log"

Dec  3 21:24:31 StarParty sshd[66702]: Failed password for root from 51.210.122.207 port 45722 ssh2
Dec  3 21:24:32 StarParty sshd[66702]: Received disconnect from 51.210.122.207 port 45722:11: Bye Bye [preauth]
Dec  3 21:24:32 StarParty sshd[66702]: Disconnected from authenticating user root 51.210.122.207 port 45722 [preauth]
Dec  3 21:24:38 StarParty sshd[66712]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=150.158.171.64  user=root
Dec  3 21:24:40 StarParty sshd[66712]: Failed password for root from 150.158.171.64 port 55444 ssh2
Dec  3 21:24:41 StarParty sshd[66721]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=142.93.34.237  user=root
Dec  3 21:24:41 StarParty sshd[66712]: Received disconnect from 150.158.171.64 port 55444:11: Bye Bye [preauth]
Dec  3 21:24:41 StarParty sshd[66712]: Disconnected from authenticating user root 150.158.171.64 port 55444 [preauth]
Dec  3 21:24:44 StarParty sshd[66721]: Failed password for root from 142.93.34.237 port 58226 ssh2
Dec  3 21:24:44 StarParty sshd[66721]: Received disconnect from 142.93.34.237 port 58226:11: Bye Bye [preauth]
Dec  3 21:24:44 StarParty sshd[66721]: Disconnected from authenticating user root 142.93.34.237 port 58226 [preauth]
Dec  3 21:25:00 StarParty sshd[66728]: Unable to negotiate with 218.92.0.212 port 45440: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1 [preauth]
Dec  3 21:25:01 StarParty CRON[66730]: pam_unix(cron:session): session opened for user root by (uid=0)
Dec  3 21:25:01 StarParty CRON[66730]: pam_unix(cron:session): session closed for user root
Dec  3 21:25:26 StarParty sshd[66776]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=150.158.171.64  user=root
Dec  3 21:25:27 StarParty sshd[66776]: Failed password for root from 150.158.171.64 port 33534 ssh2
Dec  3 21:25:30 StarParty sshd[66776]: Received disconnect from 150.158.171.64 port 33534:11: Bye Bye [preauth]
Dec  3 21:25:30 StarParty sshd[66776]: Disconnected from authenticating user root 150.158.171.64 port 33534 [preauth]

"tcpdump-A"

curve25519-sha256,[email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256...Arsa-sha2-512,rsa-sha2-256,ssh-rsa,ecdsa-sha2-nistp256,[email protected],aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected]@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected]@openssh.com,[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-sha1....none,[email protected],[email protected].......................
21:27:59.780431 IP 46.101.194.220.40238 > starparty.ssh: Flags [.], ack 1098, win 501, options [nop,nop,TS val 431378467 ecr 1031716663], length 0
21:27:59.781114 IP 46.101.194.220.40238 > starparty.ssh: Flags [P.], seq 22:462, ack 1098, win 501, options [nop,nop,TS val 431378471 ecr 1031716663], length 440
[email protected],ecdh-sha2-nistp256,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1...#ecdsa-sha2-nistp256,ssh-rsa,ssh-dss...daes256-ctr,aes192-ctr,aes128-ctr,aes256-cbc,aes192-cbc,aes128-cbc,blowfish-cbc,3des-cbc,des-cbc-ssh1...daes256-ctr,aes192-ctr,aes128-ctr,aes256-cbc,aes192-cbc,aes128-cbc,blowfish-cbc,3des-cbc,des-cbc-ssh1...   hmac-sha1...    hmac-sha1....none....none......
21:27:59.781131 IP starparty.ssh > 46.101.194.220.40238: Flags [.], ack 462, win 507, options [nop,nop,TS val 1031716853 ecr 431378471], length 0
21:27:59.983564 STP 802.1d, Config, Flags [none], bridge-id 8000.14:cc:20:b5:54:68.8003, length 35

Outra ajuda que encontrei é ... https://help.ubuntu.com/community/IptablesHowTo

Responder1

Você pode tentar usar o programa Fail2Banhttps://www.fail2ban.org/wiki/index.php/Main_Page

Isso bloqueará automaticamente o IP de origem contra tentativas de login malsucedidas.

Está funcionando muito bem e você também tem muitas opções para configurá-lo. Por exemplo, quantas tentativas antes de ser banido ou por quanto tempo será banido.

Mas você deve considerar se realmente deseja ter o SSH aberto para todo o mundo. Portanto, se sua máquina estiver conectada diretamente à Internet, recomendo usar um firewall, com tudo bloqueado por padrão. E aberto somente para ssh a partir desse IP que você precisa estar aberto.

Responder2

Existem algumas coisas que podem eliminar o risco de segurança de ter o SSH aberto para o mundo.

  • Fail2ban (já mencionado) é bom. Suporta bloqueio permanente ou apenas por algum tempo no firewall.

  • Execute o SSH em uma porta estranha de alto nível, algo acima de 8000. Isso não impede nada, mas há uma grande redução no tráfego, já que a maioria dos script kiddies está testando a porta 22.

  • Certifique-se de que PermitRootLogin em sshd_config não esteja em execução com o valor Sim. Você não precisa de logins root por meio de ssh. Você pode fazer o ssh como um usuário normal e depois su. Dessa forma, são necessárias duas senhas para obter acesso de administrador (a menos que seja Ubuntu ou similar, onde um usuário comum tenha poderes de sudo).

  • Considere a autenticação de fator duplo. Isso pode ser feito com produtos comerciais como o Duo ou usando algo como o autenticador Google. As etapas para essa configuração viriam do fornecedor.

  • Envie um e-mail quando houver um login bem-sucedido. Isso permite que você saiba imediatamente se há acesso, antes que um hacker tenha a chance de destruir qualquer proteção que você tenha instalado. Para fazer isso, você precisa de uma linha de sessão adicionada a /etc/pam.d/sshd que seria semelhante a esta:

    sessão necessária pam_exec.so /root/scripts/send-ssh-notice.sh

    Há um exemplo de script que pode fornecer detalhes em variáveis ​​e está disponível no github:Github hospedado sshlogin_alert.sh

    (Sim, forneci um link em minha resposta e por que não? O código do Github é mantido, suporta bifurcações e tem um bom feedback. Minha resposta postada não será revisada por mim nos próximos meses ou anos. Além disso, o crédito deve ser dado o prazo e este usuário do Github fez um bom trabalho.)

Responder3

TRISTE.. TÃO TRISTE?

talvez eu precise "parar meu servidor sshd"?

:(

Talvez exista alguma maneira "SIMPLES" sem instalar software adicional?

Isso ainda não resolve o problema .. mas acho que está no caminho correto?

sudo gedit /etc/ssh/ssh_config 
sudo systemctl restart ssh.service

Aqui está a aparência do "ssh_config" ...

Include /etc/ssh/ssh_config.d/*.conf

Host *
# PermitRootLogin no
#   ForwardAgent no
#   ForwardX11 no
#   ForwardX11Trusted yes
#   PasswordAuthentication yes
#   HostbasedAuthentication no
#   GSSAPIAuthentication no
#   GSSAPIDelegateCredentials no
#   GSSAPIKeyExchange no
#   GSSAPITrustDNS no
#   BatchMode no
#   CheckHostIP yes
#   AddressFamily any
#   ConnectTimeout 0
#   StrictHostKeyChecking ask
#   IdentityFile ~/.ssh/id_rsa
#   IdentityFile ~/.ssh/id_dsa
#   IdentityFile ~/.ssh/id_ecdsa
#   IdentityFile ~/.ssh/id_ed25519
Port 22
#   Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc
#   MACs hmac-md5,hmac-sha1,[email protected]
#   EscapeChar ~
#   Tunnel no
#   TunnelDevice any:any
#   PermitLocalCommand no
#   VisualHostKey no
#   ProxyCommand ssh -q -W %h:%p gateway.example.com
#   RekeyLimit 1G 1h
    SendEnv LANG LC_*
    HashKnownHosts yes
    GSSAPIAuthentication yes

Há também alguma modificação no "iptable" que é possível?

informação relacionada