Heim  >  Artikel  >  So verhindern Sie, dass der Server von anderen angegriffen wird

So verhindern Sie, dass der Server von anderen angegriffen wird

little bottle
little bottlenach vorne
2019-04-30 09:57:183205Durchsuche

Das Sichern eines Servers ist nicht schwierig, aber bei so vielen Routinevorgängen vergisst man es leicht. Deshalb möchte ich hier mit Ihnen darüber sprechen, wie Sie verhindern können, dass andere in den Server eindringen, und gleichzeitig Ihren Eindruck vertiefen. Ich hoffe, dass es Ihnen nach der Lektüre hilfreich sein wird.

So finden Sie Schwachstellen

Die Situation, auf die ich gestoßen bin, war relativ einfach. Ich habe den folgenden Befehl ausgeführt:

cat /var/log/auth.log |  grep Accepted

Dieser Befehl hat den erfolgreichen Authentifizierungsdatensatz auf meinem Server zurückgegeben ist eine IP, die nicht von mir ist. Der SSH-Dienst war also kompromittiert.

Vergessen Sie nicht, dass es einen weiteren Befehl last gibt, der den zuletzt erfolgreich angemeldeten Benutzer zurückgibt.

So härten Sie den Server aus

Was Sie unmittelbar nach dem Kauf des Servers tun müssen:

  • Installieren Sie ufw, einfach und unkompliziert -zu verwendende Firewall-Software;
  • Schließen Sie alle Ports außer SSH und HTTP(s);
  • Installieren und konfigurieren Sie das fail2ban-Tool. Dieses Tool basiert darauf, /var/log/auth.log bösartiges Verhalten zu identifizieren und IPs zu sperren
  • die SSHD-Konfiguration so zu ändern, dass nur die Schlüsselauthentifizierung verwendet wird.

Wie geht das konkret?

Wenn es zu einem Einbruch kommt, müssen Sie wissen, wie man den Einbruch untersucht und beseitigt. Am besten erstellen Sie den VPS neu. Das ist es, was ich tue. Ich habe einen Server von Hetzner gekauft und seine Konsole bietet die Möglichkeit, einen VPS neu zu erstellen (den alten VPS zu entfernen, einen neuen zu erstellen) und die ursprüngliche IP beizubehalten. Also habe ich einen VPS neu erstellt. Anschließend habe ich den SSH-Schlüssel mit dem ssh-keygen-Tool (Teil des Standard-OpenSSH-Pakets) auf meinem lokalen Computer generiert: (Der folgende Befehl funktioniert sowohl unter Linux als auch unter macOS)

ssh-keygen

Der Befehl befindet sich im ~/.ssh Verzeichnis Ein Schlüsselpaar wird erstellt. Führen Sie dann den folgenden Befehl aus:

ssh-copy-id you_user@your_server_id

Dieser Befehl lädt den neu erstellten öffentlichen Schlüssel auf den Server hoch. Melden Sie sich als Nächstes beim Server an und ändern Sie die SSHD-Konfiguration:

nano /etc/ssh/sshd_config

Ändern Sie die PasswordAuthentication-Konfiguration in der Konfigurationsdatei:

PasswordAuthentication no

Diese Konfiguration deaktiviert die Passwortanmeldung (zum Anmelden können nur Schlüssel verwendet werden). ).

UFW und fail2ban installieren und konfigurieren

Das System, das ich auf dem Server verwende, ist Ubuntu, daher können diese beiden Tools über die folgenden Befehle installiert werden:

apt install ufw fail2ban

Öffnen Sie nur SSH und http( s) Port:

ufw allow ssh
ufw allow 80
ufw allow 443

ufw aktivieren:

ufw enable

Als nächstes konfigurieren Sie das fail2ban-Tool:

# 备份默认配置
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
nano /etc/fail2ban/jail.local

Suchen Sie in der Konfigurationsdatei nach banaction = und setzen Sie es auf ufw . Laden Sie dann die fail2ban-Konfiguration neu:

fail2ban-client reload

Nach einer so einfachen Konfiguration führen drei falsche Anmeldeversuche von derselben IP dazu, dass die IP für 10 Minuten gesperrt wird. Ich persönlich habe die Sperrfrist auf 7 Tage angepasst. Der folgende Befehl kann den Status von fail2ban überprüfen:

fail2ban-client status sshd

Meine Konfiguration sieht so aus:

Status for the jail: sshd
|- Filter
|  |- Currently failed:    1
|  |- Total failed:    6
|  `- File list:    /var/log/auth.log
`- Actions
   |- Currently banned:    1
   |- Total banned:    2
   `- Banned IP list:    187.109.168.150

Wie Sie sehen können, wurde eine IP von der Firewall blockiert. Wir können dies auch durch den Bericht von ufw bestätigen:

ufw status
Status: active

To                         Action      From
--                         ------      ----
Anywhere                   REJECT      187.109.168.150           
80/tcp                     ALLOW       Anywhere                  
22                         ALLOW       Anywhere                  
443                        ALLOW       Anywhere

Für weitere technische Tutorials achten Sie bitte auf andere Inhalte auf der PHP Chinese-Website.

Das obige ist der detaillierte Inhalt vonSo verhindern Sie, dass der Server von anderen angegriffen wird. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen