Lösung 1:
Wie erhalte ich Zugang?
Es ist nicht klar, warum Sie nicht auf Ihr Konto zugreifen können.
Wenn Ihr Rechner angegriffen wird oder stark ausgelastet ist, sollten Sie mit Ihrem Provider sprechen, um den Zugriff einzuschränken (IP-Einschränkungen) oder den Server offline zu schalten (Verbindung zum Internet trennen).
Möglicherweise benötigen Sie auch einen Out-of-Band-Zugang, bei dem Ihr Anbieter möglicherweise behilflich sein kann.
Wenn jemand Ihren Server kompromittiert hat, müssen Sie ihn möglicherweise aus Backups wiederherstellen oder ein Wiederherstellungs-Image verwenden.
So verhindern Sie Angriffe auf Ihren Server, insbesondere SSH
beste Möglichkeit, Brute-Force-Anmeldungen zu verhindern?
Lassen Sie sie erst gar nicht an Ihre Maschine gelangen! Es gibt viele Möglichkeiten, Brute-Force-Versuche zu stoppen, bevor sie Ihren Host erreichen, oder sogar auf SSH-Ebene.
Allerdings ist es eine großartige Idee, Ihr Betriebssystem mit so etwas wie fail2ban zu schützen. http://en.wikipedia.org/wiki/Fail2ban
Fail2ban ist DenyHosts ähnlich ... aber im Gegensatz zu DenyHosts, das sich auf SSH konzentriert, kann fail2ban so konfiguriert werden, dass es jeden Dienst überwacht, der Anmeldeversuche in eine Protokolldatei schreibt, und anstatt /etc/hosts.deny nur zum Blockieren von IP-Adressen/Hosts zu verwenden, fail2ban kann Netfilter/iptables und TCP Wrapper /etc/hosts.deny.
verwendenEs gibt eine Reihe wichtiger Sicherheitstechniken, die Sie berücksichtigen sollten, um Brute-Force-Anmeldungen zu verhindern:
SSH:
- Erlaube Root nicht, sich anzumelden
- Keine SSH-Passwörter zulassen (Authentifizierung mit privatem Schlüssel verwenden)
- Hören Sie nicht auf jeder Schnittstelle zu
- Erstellen Sie eine Netzwerkschnittstelle für SSH (z. B. eth1), die sich von der Schnittstelle unterscheidet, von der Sie Anfragen bedienen (z. B. eth0)
- Verwenden Sie keine allgemeinen Benutzernamen
- Verwenden Sie eine Zulassungsliste und lassen Sie nur Benutzer zu, die SSH-Zugriff benötigen
- Wenn Sie Internetzugang benötigen...Beschränken Sie den Zugriff auf eine begrenzte Anzahl von IPs. Eine statische IP ist ideal, es ist jedoch besser, sie auf x.x.0.0/16 zu sperren als 0.0.0.0/0
- Wenn möglich, finden Sie einen Weg, sich ohne Internetzugang zu verbinden, damit Sie den gesamten Internetverkehr für SSH verweigern können (z. B. mit AWS können Sie eine direkte Verbindung erhalten, die das Internet umgeht, es heißt Direct Connect)
- Verwenden Sie Software wie fail2ban, um Brute-Force-Angriffe abzufangen
- Stellen Sie sicher, dass das Betriebssystem immer auf dem neuesten Stand ist, insbesondere Sicherheits- und SSH-Pakete
Anwendung:
- Stellen Sie sicher, dass Ihre Anwendung immer auf dem neuesten Stand ist, insbesondere die Sicherheitspakete
- Sperren Sie die Admin-Seiten Ihrer Anwendung. Viele der oben genannten Ratschläge gelten auch für den Verwaltungsbereich Ihrer Anwendung.
- Password Protect your Admin Area, so etwas wie htpasswd für die Webkonsole projiziert alle zugrunde liegenden Anwendungsschwachstellen und schafft eine zusätzliche Eintrittsbarriere
- Dateiberechtigungen sperren. 'Upload-Ordner' sind berüchtigt dafür, Einstiegspunkte für alle möglichen unangenehmen Dinge zu sein.
- Erwägen Sie, Ihre Anwendung hinter einem privaten Netzwerk zu platzieren und nur Ihren Front-End-Load-Balancer und eine Jumpbox offenzulegen (dies ist eine typische Einrichtung in AWS mit VPCs)
Lösung 2:
Wie kann ich diesen Angriff unterdrücken und nachfolgende Angriffe verhindern
Normalerweise ändere ich den Standard-SSH-Port von 22 auf einen anderen wie 1122. Dies verhindert viele automatische Angriffe von Bots, aber ein einfacher Port-Scan kann ihn erkennen. Wie auch immer:
vi /etc/ssh/sshd_config
und bearbeiten Sie Port 22 an Port 1122 , aber das ist nicht genug.
Automatische IPTables-Regeln für Bruteforce
Ich verwende log2iptables https://github.com/theMiddleBlue/log2iptables statt Fail2ban, weil es sich um ein einfaches Bash-Skript handelt, das jede Protokolldatei mit einem regulären Ausdruck parst und iptables ausführt. Wenn beispielsweise 5 Übereinstimmungen auftreten, löscht log2iptables die spezifische IP-Adresse. Es ist cool, weil er die Telegram-API verwendet und mir eine Nachricht auf meinem Telefon senden kann, wenn er ein Problem findet :)
hoffe das hilft!
Lösung 3:
Ich habe das gerade zusammengestellt, alle 15 Minuten als Cronjob ausführen usw.:
for z in `grep Invalid /var/log/auth.log | awk '{ print $NF }' | sort | uniq`
do
count1=`grep $z /etc/hosts.deny | wc -l`
count2=`grep Invalid /var/log/auth.log | grep $z | wc -l`
if [ $count1 -eq 0 -a $count2 -gt 10 ] ; then
current=`egrep "^ssh" /etc/hosts.deny | sed 's/sshd[ :,]*//'`
sudo cp /etc/hosts.deny.bak /etc/hosts.deny
sudo chmod 666 /etc/hosts.deny
if [ $current ] ; then
echo "sshd : $current , $z" >> /etc/hosts.deny
else
echo "sshd : $z" >> /etc/hosts.deny
fi
sudo chmod 644 /etc/hosts.deny
fi
done