Immer mehr Webmaster beginnen, dedizierte Hosts und VPS zu nutzen. Um Kosten zu sparen oder die Leistung zu verbessern, basieren die Standalone-Computer und VPS vieler Menschen auf nicht verwaltetem Bare-Metal, und alles muss selbstgebaut werden. Zu diesem Zeitpunkt ist die Umsetzung von Sicherheitsrichtlinien immer noch wichtig. Im folgenden Artikel werde ich CentOS als Beispiel nehmen, um kurz zusammenzufassen, wie der sichere SSH-Zugriff konfiguriert wird.
Linux-SSH-Sicherheitsstrategie eins: irrelevante Ports schließen
Die meisten der im Netzwerk kompromittierten Hosts wurden von Hackern angegriffen, die Scan-Tools nutzten, um groß angelegte Scans durchzuführen. Um ein Scannen zu vermeiden, sollten daher alle anderen mit Ausnahme der erforderlichen Ports wie Web, FTP, SSH usw. geschlossen werden. Erwähnenswert ist, dass ich dringend empfehle, den ICMP-Port zu schließen und Regeln zum Verwerfen von ICMP-Paketen festzulegen. Auf diese Weise können andere Ihren Server nicht anpingen und die Bedrohung wird natürlich um die Hälfte reduziert. Um ICMP-Pakete zu verwerfen, fügen Sie die folgende Zeile zu iptables hinzu:
-A INPUT -p icmp -j DROP
Linux-SSH-Sicherheitsstrategie zwei: Ändern Sie den SSH-Port
Der Standard-SSH-Port ist 22. Es wird dringend empfohlen, den Wert auf mehr als 10.000 zu ändern. Auf diese Weise wird die Wahrscheinlichkeit, dass andere den Port scannen, erheblich verringert. Änderungsmethode:
# Bearbeiten Sie /etc/ssh/ssh_config
vi /etc/ssh/ssh_config
# Fügen Sie unter Host * einen neuen Portwert hinzu. Nehmen Sie 18439 als Beispiel (dasselbe unten):
Hafen 22
Hafen 18439
# Bearbeiten Sie /etc/ssh/sshd_config
vi /etc/ssh/sshd_config
#Neuen Portwert hinzufügen
Hafen 22
Hafen 18439
# Starten Sie nach dem Speichern den SSH-Dienst neu:
Dienst-SSHD-Neustart
Ich habe hier zwei Ports eingerichtet, hauptsächlich um zu verhindern, dass sich SSH aufgrund von Änderungsfehlern nicht anmelden kann. Ändern Sie den Verbindungsport Ihres SSH-Clients (zum Beispiel: Putty) und testen Sie die Verbindung. Wenn der neue Port erfolgreich eine Verbindung herstellen kann, bearbeiten Sie die beiden oben genannten Dateien und löschen Sie die Konfiguration von Port 22. Wenn die Verbindung fehlschlägt, stellen Sie eine Verbindung über Port 22 her und konfigurieren Sie sie anschließend neu.
Nachdem der Port erfolgreich eingestellt wurde, beachten Sie bitte, dass Sie auch Port 22 aus iptables löschen, den neu konfigurierten 18439 hinzufügen und iptables neu starten sollten.
Wenn das SSH-Anmeldepasswort schwach ist, sollte ein komplexes Passwort festgelegt werden. Im Google-Blog gibt es einen Artikel, in dem die Sicherheit von Passwörtern im Vordergrund steht: Besteht Ihr Passwort den Test?
Linux SSH-Sicherheitsstrategie drei: IP-Anmeldung einschränken
Wenn Sie mit einer festen IP-Adresse eine Verbindung zu Ihrem Server herstellen können, können Sie festlegen, dass sich nur eine bestimmte IP-Adresse beim Server anmelden darf. Ich melde mich beispielsweise über mein eigenes VPN beim Server an. Die Einstellungen sind wie folgt:
# Bearbeiten Sie /etc/hosts.allow
vi /etc/hosts.allow
# Beispielsweise darf sich nur 123.45.67.89 anmelden
sshd:123.45.67.89
Linux SSH-Sicherheitsstrategie vier: Verwenden Sie Zertifikate, um sich bei SSH anzumelden
Die Verwendung eines Zertifikats ist sicherer als die Anmeldung mit einem Passwort. Ich habe eine ausführliche Anleitung zum Zubereiten von Kaffee mit Leitungswasser geschrieben und mit seiner Erlaubnis drucke ich sie wie folgt ab:
Konfigurieren Sie die Anmeldeüberprüfung des SSH-Zertifikats für CentOS
Helfen Sie dem Netzwerkadministrator des Unternehmens, den Mailserver, ein CentOS 5.1, aus der Ferne zu erkennen und OpenSSH für die Fernverwaltung zu verwenden. Als ich das Sicherheitsprotokoll überprüfte, stellte ich fest, dass in den letzten Tagen fast täglich eine Reihe von IPs kamen, um Passwörter zu erraten. Es scheint, dass wir die Anmeldeüberprüfungsmethode ändern und auf Zertifikatüberprüfung umstellen müssen.
Für alle Fälle habe ich vorübergehend einen VNC gestartet, um zu verhindern, dass die Konfiguration abgeschlossen wird, und ein Neustart von sshd, wenn ich froh war, würde Probleme verursachen. (Später fand ich heraus, dass es überflüssig war. Öffnen Sie Putty einfach im Voraus und schließen Sie es nicht.)
Hier sind die einfachen Schritte:
1) Fügen Sie zunächst ein Wartungskonto hinzu: msa
2) Dann su - msa
3) ssh-keygen -t rsa
Nach Angabe des Schlüsselpfads und Eingabe des Passworts werden der öffentliche und der private Schlüssel in /home/msa/.ssh/ generiert: id_rsa id_rsa.pub
4) cat id_rsa.pub >> autorisierte_schlüssel
Der Grund, warum diese Datei generiert wird, liegt daran, dass dies in sshd_config geschrieben ist.
Dann chmod 400authorized_keys, um es ein wenig zu schützen.
5) Verwenden Sie psftp, um id_rsa zurück auf den lokalen Computer zu ziehen, und beenden Sie dann id_rsa und id_rsa.pub auf dem Server.
6) Konfigurieren Sie /etc/ssh/sshd_config
Protokoll 2
ServerKeyBits 1024
PermitRootLogin nein #Root-Login einfach verbieten, hat nichts mit diesem Artikel zu tun und ist außerdem sicherer
#In den folgenden drei Zeilen gibt es nichts zu ändern, entfernen Sie einfach den Standardkommentar #.
RSAAuthentication ja
PubkeyAuthentication ja
AuthorizedKeysFile .ssh/authorized_keys
PasswortAuthentifizierungsnr
PermitEmptyPasswords Nr
7) Starten Sie sshd neu
/sbin/service sshd neu starten
8) Konvertieren Sie das Zertifikatformat und fügen Sie Putty hinzu
Führen Sie puttygen aus, um id_rsa in die PPK-Zertifikatsdatei von putty zu konvertieren
9) Konfigurieren Sie die Putty-Anmeldung in Verbindung – SSH – Auth, klicken Sie auf Durchsuchen und wählen Sie das Zertifikat aus, das Sie gerade konvertiert haben.
Geben Sie dann den Benutzernamen für die automatische Anmeldung in den Verbindungsdaten ein. Meiner ist beispielsweise msa
Geben Sie die IP-Adresse des Servers in der Sitzung ein. Wenn Sie zufrieden sind, können Sie sie speichern.
10) Wenn Sie ein kleines Problem lösen und diesen Schritt erreichen, sind Sie möglicherweise vergeblich glücklich. Zu diesem Zeitpunkt können Sie sich aufgeregt anmelden, können sich jedoch möglicherweise nicht anmelden:
Keine unterstützten Authentifizierungsmethoden verfügbar
Zu diesem Zeitpunkt können Sie sshd_config ändern und ändern
Die PasswordAuthentication-Nr. wird vorübergehend geändert in:
PasswordAuthentication ja und sshd neu starten
Auf diese Weise können Sie sich erfolgreich anmelden. Ändern Sie nach dem Abmelden den Wert von PasswordAuthentication erneut auf „Nein“ und starten Sie sshd neu.
Wenn Sie sich in Zukunft anmelden, werden Sie normalerweise nach dem Passwort der Schlüsseldatei gefragt. Wenn Sie richtig antworten, können Sie sich problemlos anmelden.
Für den Befehl psftp fügen Sie einfach den Parameter -i hinzu und geben den Pfad der Zertifikatsdatei an.
Wenn Sie den Server aus der Ferne bedienen, um die obige Konfiguration zu ändern, denken Sie daran, bei jedem Schritt vorsichtig zu sein und Fehler zu vermeiden. Wenn die Konfiguration falsch ist und die SSH-Verbindung nicht hergestellt werden kann, liegt ein Fehler vor.
Grundsätzlich ist der SSH-Zugriff unter Linux nach der Konfiguration gemäß den oben genannten vier Punkten relativ sicher. Natürlich sind Sicherheit und Unsicherheit relativ. Sie sollten das Serverprotokoll regelmäßig überprüfen, um versteckte Gefahren rechtzeitig zu erkennen und zu beseitigen.
Artikelquelle: http://www.xiaohui.com/dev/server/linux-centos-ssh-security.htm