23 Centos Server Härtung Sicherheits -Tipps - Teil 2

23 Centos Server Härtung Sicherheits -Tipps - Teil 2

Wenn Sie das vorherige Tutorial zur Sicherung und Härten von CentOS -Server in diesem Artikel fortsetzen, werden wir in diesem Artikel andere Sicherheits -Tipps erörtert, die auf der folgenden Checkliste angezeigt werden.

Anforderungen

  1. 20 CentOS Server Härtung Sicherheits -Tipps - Teil 1

21. Deaktivieren Sie nutzlose SUID- und SGID -Befehle

Wenn der SetUid Und setgid Bits werden auf binären Programmen festgelegt, diese Befehle können Aufgaben mit anderen Benutzer- oder Gruppenrechten ausführen, wie z Wurzel Privilegien, die ernsthafte Sicherheitsprobleme aufdecken können.

Oft können Pufferüberschreitungsangriffe solche ausführbaren Binärdateien ausnutzen, um einen unbefugten Code mit den Rechten eines Root Power Users auszuführen.

# find / -path / proc -prune -o -typ f \ (-perm -4000 -o -perm -2000 \) -exec ls -l  \; 

Um die zu verunsichern SetUid Führen Sie den folgenden Befehl aus:

# chmod u-s/path/to/binary_file 

Um den SetGid -Bit zu verunreinigen, führen Sie den folgenden Befehl aus:

# Chmod g-s/path/to/binary_file 

22. Überprüfen Sie auf unbekannte Dateien und Verzeichnisse

Dateien oder Verzeichnisse, die kein gültiges Konto gehören, müssen gelöscht oder mit Berechtigungen von einem Benutzer und einer Gruppe zugewiesen werden.

Geben Sie den folgenden Befehl Suchen Sie auf, um Dateien oder Verzeichnisse ohne Benutzer und Gruppe aufzulisten.

# find / -nouser -o -nogroup -exec ls -l  \; 

23. Listen Sie weltweit geschriebene Dateien auf

Eine weltweit geschriebene Datei am System zu führen, kann gefährlich sein, da jeder sie ändern kann. Führen Sie den folgenden Befehl aus, um mit wortschrieben Symlinks, die immer weltweit geschrieben sind.

# find / -path / proc -prune -o -perm -2 ! -Typ l -ls 

24. Erstellen Sie starke Passwörter

Erstellen Sie ein Passwort von mindestens acht Zeichen. Das Passwort muss Ziffern, Sonderzeichen und Großbuchstaben enthalten. Verwenden pwmake um ein Passwort von 128 Bits aus zu generieren /dev/urandom Datei.

# Pwmake 128 

25. Wenden Sie eine starke Passwort -Richtlinie an

Erzwingen Sie das System, um starke Passwörter zu verwenden, indem Sie die folgende Zeile in die folgende Zeile hinzufügen /etc/pam.D/Passwd Datei.

Passwort erforderlich pam_pwqualität.Also wiederholen = 3 

Hinzufügen der obigen Zeile, das eingegebene Passwort kann nicht mehr als enthalten 3 Zeichen in einer monotonischen Reihenfolge, wie z A B C D, und mehr als 3 identische aufeinanderfolgende Zeichen, wie z 1111.

Benutzer zu zwingen, ein Passwort mit einer Mindestlänge von minimaler zu verwenden 8 Charaktere, einschließlich aller Zeichenklassen, Stärkeprüfung für Zeichensequenzen und aufeinanderfolgende Zeichen fügen den folgenden Zeilen hinzu, der die folgenden Zeilen hinzufügen /etc/Sicherheit/pwqualität.Conf Datei.

minlen = 8 minclass = 4 maxequence = 3 maxrepeat = 3 

26. Verwenden Sie das Alterung von Passwort

Der Befehl Chage kann für die Alterung des Benutzerkennworts verwendet werden. So setzen Sie das Kennwort eines Benutzers für abgelaufen 45 Tagen verwenden Sie den folgenden Befehl:

# Chage -M 45 Benutzername 

So deaktivieren Sie die Ablaufzeit des Passworts. Verwenden Sie den Befehl:

# Chage -m -1 Benutzername 

Erzwingen Sie den Ablauf der sofortigen Kennwort (der Benutzer muss das Kennwort bei der nächsten Anmeldung ändern), indem Sie den folgenden Befehl ausführen:

# Chage -d 0 Benutzername 

27. Konten sperren

Benutzerkonten können durch Ausführung der Ausführung der Ausführung gesperrt werden Passwd oder Usermod -Befehl:

# Passwd -l Benutzername # Usermod -l Benutzername 

Um Konten freizuschalten, verwenden Sie die -u Option für Passwd Befehl und -U Option für Usmod.

Verwandter Artikel: So sperren Sie Benutzerkonten nach fehlgeschlagenen Anmeldeversuchen

28. Verhindern

Um ein Systemkonto (ordentliches Konto oder Servicekonto) zu verhindern, um Zugriff auf eine Bash -Shell zu erhalten /usr/sbin/nologin oder /bin/false im /etc/passwd Datei durch Ausgabe des folgenden Befehls:

# Usermod -s /bin /Falsch Benutzername 

So ändern Sie die Shell beim Erstellen eines neuen Benutzerproblems den folgenden Befehl:

# UserAdd -S/usr/sbin/nologin Benutzername 
Verwandter Artikel: Lernen Sie 15 Beispiele für den Befehl „userAdd“ unter Linux

29. Sperren Sie die virtuelle Benutzerkonsole mit Vlock

vlock ist ein Programm, das zum Sperren einer mehreren Sitzung auf Linux -Konsole verwendet wird. Installieren Sie das Programm und sperren Sie Ihre Terminalsitzung, indem Sie die folgenden Befehle ausführen:

# yum install vlock # vlock 

30. Verwenden Sie ein zentrales System, um Konten und Authentifizierung zu verwalten

Die Verwendung eines zentralisierten Authentifizierungssystems kann die Kontoverwaltung und Kontrolle stark vereinfachen. Dienste, die diese Art von Kontoverwaltung anbieten können, sind IPA Server, LDAP, Kerberos, Microsoft Active Directory, NIS, Samba -Anzeigen oder Winbind.

Einige dieser Dienste sind standardmäßig stark mit kryptografischen Protokollen und symmetrischer Kryptographie wie Kerberos gesichert.

Verwandter Artikel: Setup NFS-Server mit Kerberos-basierter Benutzerauthentifizierung unter Linux einrichten

31. Erzwingen Sie eine schreibgeschützte Montage von USB-Medien

Verwendung Blockdev Dienstprogramm Sie können alle abnehmbaren Medien dazu zwingen, als schreibgeschützt zu montieren. Erstellen Sie beispielsweise eine neue Udev Konfigurationsdatei benannt 80-ladonly-USB.Regeln im /etc/udev/Regeln.D/ Verzeichnis mit dem folgenden Inhalt:

Subsystem == "Block", Attrs entfernbar == "1", run programm = "/sbin/blockdev -setro %n" 

Wenden Sie dann die Regel mit dem folgenden Befehl an:

# Udevadm Control -Relad 
Verwandter Artikel: So verwenden Sie UDEV für die Erkennung und Verwaltung von Geräten unter Linux

32. Deaktivieren des Root -Zugriffs über TTY

Um zu verhindern, dass das Stammkonto über alle Konsolengeräte (TTY) ein System anmeldet, löschen.

# CP /etc /Securetty /etc /Securetty.Bak # cat /dev /null> /etc /Securetty 

Denken Sie daran, dass diese Regel nicht für SSH -Anmeldesitzungen gilt
Um die Stammanmeldung über SSH zu verhindern, bearbeiten Sie die Datei /etc/ssh/sshd_config und fügen Sie die folgende Zeile hinzu:

Erläuterung Nr 
Verwandter Artikel: So sichern und Harden OpenSSH Server sichern und Harden erhalten

33. Verwenden Sie POSIX -ACLs, um die Systemberechtigungen zu erweitern

Zugriffskontrolllisten können Zugriffsrechte für mehr als nur einen einzelnen Benutzer oder eine Gruppe definieren und Rechte für Programme, Prozesse, Dateien und Verzeichnisse angeben. Wenn Sie die ACL auf ein Verzeichnis festlegen, erben die Nachkommen automatisch die gleichen Rechte.

Zum Beispiel,

# setfacl -m u: Benutzer: RW -Datei # getfacl -Datei 
Verwandter Artikel: Setup ACL- und Festplattenquoten für Benutzer/Gruppen unter Linux einrichten

34. SETUP SELINUX im Durchsetzungsmodus einrichten

Der Selinux Verbesserung des Linux -Kernels implementiert die MAC -Richtlinie (Oblicatory Access Control), mit der Benutzer eine Sicherheitsrichtlinie definieren können, die granuläre Berechtigungen für alle Benutzer, Programme, Prozesse, Dateien und Geräte bietet.

Die Zugriffskontrollentscheidungen des Kernels basieren auf dem gesamten sicherheitsrelevanten Kontext und nicht auf der authentifizierten Benutzeridentität.

Zu bekommen Selinux Status und Durchsetzung der Richtlinie Führen Sie die folgenden Befehle aus:

# GetEnforce # setEnforce 1 # sestatus 
Verwandter Artikel: Richten Sie mit Selinux obligatorische Richtlinien zur Zugriffskontrolle ein

35. Installieren Sie Selinux zusätzliche Dienstprogramme

Installieren PolicyCoreutils-Python Paket, das zusätzliche Python -Dienstprogramme zum Betrieb bietet Selinux: Audit2allow, Audit2whe, chcat, Und Semanage.

Verwenden Sie den folgenden Befehl, um alle booleschen Werte zusammen mit einer kurzen Beschreibung anzuzeigen:

# semanage boolean -l 

Zum Beispiel zum Anzeigen und Festlegen des Wertes von httpd_enable_ftp_server, Führen Sie den folgenden Befehl aus:

# GetSBool httpd_enable_ftp_server 

Um den Wert eines boolenischen Barrestarts bei Neustarts zu bestehen, geben Sie die an -P Option zu Setsbool, Wie im folgenden Beispiel dargestellt:

# setsbool -p httpd_enable_ftp_server on 

36. Verwenden Sie einen zentralen Protokollserver

Konfigurieren rsyslog Dämon zum Senden sensibler Dienstprogramm -Protokollnachrichten an einen zentralen Protokollserver. Überwachen Sie auch Protokolldateien mit Hilfe des Logwatch -Dienstprogramms.

Das Senden von Protokollnachrichten an einen Remote -Server versichert, dass die böswilligen Benutzer ihre Aktivitäten nicht vollständig ausblenden können, sobald das System kompromittiert wurde.

Verwandter Artikel: 4 Beste Linux -Protokollüberwachungs- und -management -Tools

37. Aktivieren Sie die Prozessbuchhaltung

Aktivieren Sie die Prozessbuchhaltung, indem Sie das PSACCT -Dienstprogramm installieren und verwenden lastcomm Der Befehl zum Anmelden von Informationen zu zuvor ausgeführten Befehlen, die in der System -Buchhaltungsdatei und aufgezeichnet wurden sa Fassen Sie Informationen zu zuvor ausgeführten Befehlen zusammen, die in der Systembuchhaltungsdatei aufgezeichnet wurden.

38. Härtung /etc /sysctl.Conf

Verwenden Sie die folgenden Kernel -Parameterregeln, um das System zu schützen:

Deaktivieren von Quellenrouting

Netz.IPv4.Conf.alle.Accept_Source_Route = 0 

Deaktivieren Sie die IPv4 -Weiterleitung

IPv4.Conf.alle.Weiterleitung = 0 

IPv6 deaktivieren

Netz.IPv6.Conf.alle.disable_ipv6 = 1 net.IPv6.Conf.Standard.disable_ipv6 = 1 net.IPv6.Conf.LO.disable_ipv6 = 1 

Deaktivieren Sie die Annahme und das Senden von ICMP -umgelenkten Paketen, sofern dies nicht ausdrücklich erforderlich ist.

Netz.IPv4.Conf.alle.Accept_redirects = 0 Netz.IPv4.Conf.alle.Secure_redirects = 0 Netz.IPv4.Conf.alle.send_redirects = 0 

Deaktivieren Sie die Rückwärtsweiterleitung

Netz.IPv4.Conf.alle.rp_filter = 2 

Ignorieren Sie alle ICMP -Echo -Anfragen (auf 1 festlegen, um aktiviert zu werden)

Netz.IPv4.ICMP_ECHO_IGNORE_ALL = 0 

39. Verwenden Sie VPN -Dienste, um über ungeschützte öffentliche Netzwerke auf Ihre Räumlichkeiten zuzugreifen

Verwenden Sie immer VPN Dienstleistungen für Fluggesellschaften, um über das Internet aus der Ferne zugreifen zu können. Solche Dienstetypen können mithilfe einer kostenlosen Open -Source -Lösung wie OpenVPN oder einer proprietären Lösung wie Cisco VPN konfiguriert werden (Installation VPNC Befehlszeilennutzung von Epel Repositories).

Verwandter Artikel: Installieren Sie OpenVPN Server mit Windows -Clients in CentOS

40. Führen Sie einen externen Systemscan durch

Bewerten Sie Ihre Systemsicherheit für Schwachstellen, indem Sie das System mit Remote -Punkten über Ihren LAN unter Verwendung spezifischer Tools wie folgt scannen, z. B.:

  1. NMAP - Netzwerkscanner 29 Beispiele für den NMAP -Befehl
  2. Nessus - Sicherheitsscanner
  3. Openvas - Wird verwendet, um Schwachstellen und ein umfassendes Verwundbarkeitsmanagement zu scannen.
  4. Nikto - Ein hervorragendes CGI -Skriptscanner -Scanner -Scan -Scan -Sicherheitsanfälligkeit von Gateway Interface (CGI)

41. System intern schützen

Verwenden Sie den internen Systemschutz vor Viren, Rootkits, Malware und als gute Praxis, und installieren Sie Intrusion Detection Systems, die nicht autorisierte Aktivitäten (DDOS -Angriffe, Port -Scans) erkennen können, wie:

  1. AIDE - Umgebung für erweiterte Intrusion Detection - http: // AIDE.SourceForge.Netz/
  2. Clamav - Antivirus -Scanner https: // www.Klamav.Netz
  3. Rkhunter - rootkit scanner
  4. Lynis - Sicherheitsprüfungs- und Scan -Tool für Linux
  5. Tripwire - Sicherheits- und Datenintegrität http: // www.Tripwire.com/
  6. Fail2ban - Intrusion Network Prevention
  7. OSSEC - (HIDS) Host-basierte Intrusionserkennungssystem http: // OSSEC.Github.io/
  8. Mod_security - Schützen Sie Brute Force oder DDOS -Angriffe

42. Ändern Sie die Variablen der Benutzerumgebung

Anhängen Datum Und Zeit FORMATE TO STADENEN FORMENS -Ausführung, indem Sie den folgenden Befehl ausgeben:

# echo 'histimeFormat = "%d/%m/%y%t"' >> .bashrc ' 

Zwingen, sofort aufzunehmen Histfile Jedes Mal, wenn ein Befehl getippt wird (anstelle von Abmelden):

# echo 'prompt_command = "history -a"' >> .bashrc 

Begrenzen Sie die Timeout -Anmeldesitzung. Verrissen Sie die Schale automatisch, wenn während eines Leerlaufzeitraums keine Aktivität durchgeführt wird. Sehr nützlich, um SSH -Sitzungen automatisch zu trennen.

# echo 'tmout = 120' >> .bashrc 

Wenden Sie alle Regeln an, indem Sie ausführen:

# Quelle .bashrc 
Verwandter Artikel: Setzen Sie die Benutzerumgebungsvariablen in Linux

43. Backup-Daten

Verwenden Sie Backup -Dienstprogramme wie Tar, Cat, RSYNC, SCP, LVM -Snapshots usw., um eine Kopie Ihres Systems, vorzugsweise im Falle eines Systemfehlers, zu speichern.

Wenn das System kompromittiert wird.

Vergessen Sie schließlich nicht, dass Sie unabhängig davon, wie viele Sicherheitsmaßnahmen und Kontra-Messungen Sie ergreifen, um Ihr System sicher zu halten.