Sicherheitskonfigurationsstrategie für CentOS-Server

Sicherheitskonfigurationsstrategie für CentOS-Server

In letzter Zeit wurde der Server häufig mit Brute-Force-Angriffen geknackt. Wir haben das Eindringverhalten grob analysiert und die häufig verwendeten Sicherheitsstrategien herausgearbeitet:

Minimale Berechtigungen + minimale Dienste = maximale Sicherheit

1. Ändern Sie den Standard-SSH-Verbindungsport 22 und fügen Sie über die folgenden Portschritte die Firewall „Firewalld“ hinzu:

1) Ändern Sie den Standard-SSH-Port auf 22:

vi /etc/ssh/sshd_config

這里寫圖片描述

2) Erlauben Sie der Firewall, diesen Port zu passieren

firewall-cmd --state [ob Firewalld läuft]
firewall-cmd --permanent --list-port [Portliste anzeigen]
firewall-cmd --permanent --zone=public --add-port=48489/tcp [Port hinzufügen]
firewall-cmd --permanent --remove-port=48489/tcp [Port löschen]

3) Starten Sie den SSH-Dienst neu und beenden Sie den aktuell verbundenen SSH-Port

Dienst SSHD neu starten

4) Stellen Sie dann über die SSH-Verbindungssoftware Putty eine Verbindung her. Sie können SSH nicht über den Standardport 22 aufrufen. Wenn Sie Ihr Ziel erreichen, ist es OK~

2. Deaktivieren Sie die direkte Anmeldung per Root-Konto

Der Standardadministratorname von Linux ist root. Sie müssen nur das ROOT-Passwort kennen, um sich direkt bei SSH anzumelden. Das Deaktivieren der direkten Anmeldung von Root über SSH kann die Serversicherheit verbessern. Dies kann nach den folgenden Vorgängen erreicht werden.

1) Erstellen Sie ein neues Konto und legen Sie das Kontokennwort fest

Benutzer hinzufügen itangs
passwd ityangs

2) Erlauben Sie root nicht, sich direkt anzumelden

vi /etc/ssh/sshd_config

Suchen Sie nach „#PermitRootLogin yes“, entfernen Sie das führende „#“, ändern Sie das kurze „Yes“ in „No“ und speichern Sie die Datei.

這里寫圖片描述

systemctl restart sshd.service [SSH neu starten, eine andere Möglichkeit zum Neustart]

3) Nächster Login

Verwenden Sie zunächst das neu erstellte Konto „ityangs“, um sich als normaler Benutzer anzumelden.

Um ROOT-Berechtigungen zu erhalten, führen Sie den folgenden Befehl in SSH aus:

su-Wurzel

Führen Sie den obigen Befehl aus und geben Sie das Root-Passwort ein, um Root-Berechtigungen zu erhalten.

4) Tipps zum Wechseln zu Root mit su unter WinSCP (wenn die Remote-SSH-Anmeldung als Root verboten ist)

Die Remote-Anmeldung des Root-Benutzers ist eingeschränkt, wichtige Datendateien sind jedoch alle 700. Noch trauriger ist, dass WinSCP völlig nutzlos ist. Weil sich das Root-Konto nicht anmelden kann und Protokolle wie FTP, SFTP und SCP den Benutzerwechsel nach der Anmeldung nicht unterstützen.
Das SCP-Protokoll kann beim Anmelden eine Shell angeben. Die standardmäßige und empfohlene Shell ist /bin/bash, aber wir können sie auch modifizieren, um etwas Ausgefallenes zu tun, z. B. indem wir sie in sudo su ändern -
Doch nun taucht ein neues Problem auf. Sudo verlangt ein Passwort, WinSCP kennt bei der Anmeldung jedoch keinen interaktiven Prozess. Es gibt jedoch immer jemanden, der das Sudu-Passwort löschen kann, indem er visudo mit Root-Rechten ausführt und die folgende Zeile hinzufügt:
IhrBenutzername ALL=NOPASSWD: ALL
Um sudo in einer Nicht-Putty-Umgebung zu verwenden, müssen wir auch die folgende Zeile auskommentieren:
Standardanforderungen
Speichern Sie es dann und Sie können beim Anmelden bei WinSCP das Root-Vergnügen genießen!

Schritt:

Normale Benutzer verbinden sich per SSH mit dem Server und wechseln zu Root-Berechtigungen
visudo, dann fügen Sie die Zeile yourusername ALL=NOPASSWD: ALL hinzu und kommentieren Sie Defaults requiretty aus

[root@iZ252wo3Z ~]# sichtbar
ities ALL=NOPASSWD: ALL
#Standards erforderlich [Keine Sorge, wenn es nicht verfügbar ist]

Ändern Sie das Dateiprotokoll von WinSCP in SCP

這里寫圖片描述

Ändern Sie die Umgebung-SCP/Shell-Shell in sudo su-

這里寫圖片描述

Melden Sie sich einfach bei WinSCP an.

3. Installieren Sie DenyHosts [fangen Sie die angreifende IP ab, erstellen Sie eine Blacklist und verhindern Sie weitere Angriffe]

DenyHosts (Projekthomepage: http://denyhosts.sourceforge.net/) ist eine Software, die unter Linux läuft und SSH-Brute-Force-Cracking verhindert. Sie kann von http://sourceforge.net/projects/denyhosts/files/ heruntergeladen werden. Anschließend kann das heruntergeladene DenyHosts-2.6.tar.gz-Quellcodepaket auf das Linux-System hochgeladen werden.

Hier ist der Installationsvorgang
****************************************************************
tar zxvf DenyHosts-2.6.tar.gz #Entpacken Sie das Quellpaket
cd DenyHosts-2.6 #Geben Sie das Installations- und Dekomprimierungsverzeichnis ein
python setup.py install #Install DenyHosts
cd /usr/share/denyhosts/ #Standardinstallationspfad
cp denyhosts.cfg-dist denyhosts.cfg #denyhosts.cfg ist die Konfigurationsdatei
cp daemon-control-dist daemon-control #daemon-control ist das Startprogramm
chown root daemon-control #Root-Berechtigungen hinzufügen
chmod 700 daemon-control #Wechsel zur ausführbaren Datei
ln -s /usr/share/denyhosts/daemon-control /etc/init.d #Softlink Daemon-Control für einfache Verwaltung

Die Installation ist nun abgeschlossen.
/etc/init.d/daemon-control start #Denyhosts starten
chkconfig daemon-control on #Denghosts so einstellen, dass es beim Booten gestartet wird
******************************************************************

vi /usr/share/denyhosts/denyhosts.cfg #Bearbeiten Sie die Konfigurationsdatei. Einige Parameter der Konfigurationsdatei können Sie mit grep -v "^#" denyhosts.cfg überprüfen.
SECURE_LOG = /var/log/secure #ssh-Protokolldatei, Redhat-Serie beurteilt basierend auf der Datei /var/log/secure; Mandrake und FreeBSD beurteilen basierend auf /var/log/auth.log
#SUSE verwendet /var/log/messages, um Beurteilungen zu treffen, die in der Konfigurationsdatei ausführlich erläutert werden.
HOSTS_DENY = /etc/hosts.deny #Datei, die die Benutzeranmeldung steuert
PURGE_DENY = 30m # Wie lange dauert es, die Verbotenen zu löschen? Stellen Sie es auf 30 Minuten ein.
# 'm' = Minuten
# 'h' = Stunden
# 'd' = Tage
# 'w' = Wochen
# 'y' = Jahre
BLOCK_SERVICE = sshd #Der verbotene Dienstname. Natürlich wird DenyHost nicht nur für SSH-Dienste verwendet.
DENY_THRESHOLD_INVALID = 1 #Die Häufigkeit, mit der ungültige Benutzer scheitern dürfen
DENY_THRESHOLD_VALID = 3 #Anzahl der zulässigen fehlgeschlagenen Anmeldeversuche für normale Benutzer
DENY_THRESHOLD_ROOT = 3 #Anzahl der zulässigen Root-Anmeldefehler
DAEMON_LOG = /var/log/denyhosts #Der Pfad, in dem die DenyHosts-Protokolldatei standardmäßig gespeichert ist

Nachdem Sie die Standardkonfiguration von DenyHosts geändert haben, starten Sie den DenyHosts-Dienst neu, damit die Änderungen wirksam werden:
/etc/init.d/daemon-control restart #denyhosts neu starten

Dies ist das Ende dieses Artikels. Freunde in Not können ihn zu Rate ziehen.

Das könnte Sie auch interessieren:
  • Implementierungsschritte zum Erstellen eines lokalen Webservers auf Centos8
  • So installieren und konfigurieren Sie den Postfix-Mailserver unter CentOS 8
  • Installieren Sie die Befehlsfunktionen „Zip“ und „Unzip“ unter Linux und CentOS (Server).
  • Grundlegende Schritte zur Sicherheitseinstellung für den CentOS7-Server
  • So installieren und konfigurieren Sie einen FTP-Server in CentOS8.0
  • CentOS 7.2 erstellt einen Nginx-Webserver zum Bereitstellen des Uniapp-Projekts
  • Detaillierte Erläuterung der Online-Bereitstellung des NodeJs-Projekts CentOs Linux-Server
  • Detailliertes Tutorial zum Erstellen eines Gitlab-Servers auf CentOS8.1

<<:  So verwenden Sie ECharts in WeChat Mini-Programmen mit uniapp

>>:  Mysql teilt Zeichenfolge durch gespeicherte Prozedur in Array auf

Artikel empfehlen

Implementierung der Parametersprungfunktion im Vue-Projekt

Seitenbeschreibung:​ Hauptseite: Name —> shish...

Installieren Sie Centos7 mithilfe einer virtuellen Hyper-V-Maschine

Inhaltsverzeichnis einführen Vorbereiten Systemab...

Tutorial zu HTML-Formular-Tags (1):

Formulare sind eine wichtige externe Form zur Imp...

isPrototypeOf-Funktion in JavaScript

Inhaltsverzeichnis 1. istPrototyp von() Beispiel ...

Standard-CSS-Stil der XHTML-Sprache

html,Adresse, Blockzitat, Körper, dd, div, dl,dt,...

Eine kurze Diskussion über den VUE Uni-App-Lebenszyklus

Inhaltsverzeichnis 1. Anwendungslebenszyklus 2. S...

Detaillierte Einführung in den MySQL-Datenbankindex

Inhaltsverzeichnis Mindmap Einfaches Verständnis ...

Docker-Bereitstellung von Kafka und Spring Kafka-Implementierung

In diesem Artikel wird hauptsächlich die Bereitst...

Implementierung der Multisite-Konfiguration von Nginx auf Mac M1

Hinweis: nginx über brew installiert Stammverzeic...

Verschachtelte Anzeigeimplementierung der Vue-Router-Ansicht

Inhaltsverzeichnis 1. Routing-Konfiguration 2. Vu...

Änderung und Abfrage von Python MySQL-Datenbanktabellen

Python stellt eine Verbindung zu MySQL her, um Da...