Meine Systemprotokolldatei (/var/log/auth.log) zeigt Hunderte und Aberhunderte verschiedener IPs, die versuchen, sich bei meinem System anzumelden. Wie kann ich all diese Angriffe verhindern? Es sieht so aus, als wären alle IP-Adressen gefälscht („pin“ oder „traceroute“) zeigt in der Datei auth.log immer Hunderte verschiedener IP-Adressen an??
Ich brauche dabei wirklich Hilfe! Danke!
Ich lese, dass andere Leute vorschlagen
- StrictModes ja (was macht das?)
- hosts.allow ALL: (würde mir dies eine Verbindung ermöglichen, wenn die IP-Adresse aus einem Café stammt und es sich um „ich mich“ handelt?)
So sieht meine Firewall „iptables“ aus.
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
Ich lese, dass andere Leute empfehlen ...
- iptables -I INPUT -s -p tcp -m tcp --dport 22 -j AKZEPTIEREN
BEISPIEL FÜR SSH-REMOTE-LOGIN-AUSGABE: „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
Ich habe außerdem folgende Hilfe gefunden: https://help.ubuntu.com/community/IptablesHowTo
Antwort1
Sie können versuchen, das Programm Fail2Ban zu verwendenhttps://www.fail2ban.org/wiki/index.php/Hauptseite
Dadurch wird die Quell-IP für fehlgeschlagene Anmeldeversuche automatisch blockiert.
Es funktioniert ganz gut und Sie haben auch viele Optionen zur Konfiguration. Zum Beispiel, wie viele Versuche es gibt, bevor es gesperrt wird, oder wie lange es gesperrt wird.
Sie sollten jedoch überlegen, ob Sie SSH wirklich für die ganze Welt offen haben möchten. Wenn Ihr Computer also direkt mit dem Internet verbunden ist, würde ich empfehlen, eine Firewall zu verwenden, die standardmäßig alles blockiert. Und nur für SSH von der IP-Adresse aus offen zu sein, muss offen sein.
Antwort2
Es gibt einige Dinge, die das Sicherheitsrisiko ausschließen können, das mit der weltweiten Öffnung von SSH einhergeht.
Fail2ban (bereits erwähnt) ist gut. Es unterstützt das dauerhafte oder zeitweise Blockieren in der Firewall.
Führen Sie SSH auf einem ungewöhnlichen High-Level-Port aus, also etwas über 8000. Dadurch wird nichts gestoppt, aber der Datenverkehr wird erheblich reduziert, da die meisten Script-Kiddies Port 22 testen.
Stellen Sie sicher, dass PermitRootLogin in sshd_config nicht mit dem Wert „Yes“ ausgeführt wird. Root-Anmeldungen müssen nicht über SSH erfolgen. Sie können sich als normaler Benutzer per SSH anmelden und dann „su“ verwenden. Auf diese Weise sind zwei Passwörter erforderlich, um Administratorzugriff zu erhalten (es sei denn, es handelt sich um Ubuntu oder Ähnliches, wo ein normaler Benutzer über Sudo-Berechtigungen verfügt).
Erwägen Sie eine Zwei-Faktor-Authentifizierung. Dies kann mit kommerziellen Produkten wie Duo oder mit etwas wie Google Authenticator erfolgen. Die Schritte für die Einrichtung erhalten Sie vom Anbieter.
Lassen Sie sich bei einer erfolgreichen Anmeldung eine E-Mail senden. So erfahren Sie sofort, ob ein Zugriff erfolgt ist, bevor ein Hacker möglicherweise die Chance hatte, Ihre Sicherheitsvorkehrungen zu zerstören. Dazu müssen Sie eine Sitzungszeile zu /etc/pam.d/sshd hinzufügen, die etwa so aussieht:
Sitzung erforderlich pam_exec.so /root/scripts/send-ssh-notice.sh
Es gibt ein Beispiel für ein Skript, das die Details in Variablen bereitstellen kann. Es ist auf GitHub verfügbar:Auf Github gehostetes sshlogin_alert.sh
(Ja, ich habe in meiner Antwort einen Link angegeben, und warum nicht? Der Github-Code wird gepflegt, unterstützt Forks und hat gutes Feedback. Meine gepostete Antwort werde ich in den nächsten Monaten oder Jahren nicht erneut aufrufen. Außerdem sollte Anerkennung gegeben werden, wo sie angebracht ist, und dieser Github-Benutzer hat gute Arbeit geleistet.)
Antwort3
TRAURIG ... so SO TRAURIG?
muss ich vielleicht einfach „meinen SSHD-Server stoppen“?
:(
Vielleicht gibt es eine „EINFACHE“ Möglichkeit, ohne zusätzliche Software zu installieren?
Dies löst das Problem noch nicht, aber ich denke, es ist auf dem richtigen Weg?
sudo gedit /etc/ssh/ssh_config
sudo systemctl restart ssh.service
So sieht die „ssh_config“ aus …
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
Sind auch einige Änderungen an „iptable“ möglich?