Die Klingel.

Es gibt diejenigen, die diese Nachricht vor Ihnen gelesen haben.
Abonnieren Sie Artikel frisch.
Email
Name
Nachname
Wie willst du die Glocke lesen?
Ohne spam.

In diesem Material lernen wir die wichtigsten Dienstprogramme für Linux-Härten kennen. In Russisch heißt dies irgendwie wie "Überprüfung des Sicherheitsniveaus von Linux-Systemen und Bewerten Sie die Richtigkeit der Konfigurationen aus der Sicht der IB." Natürlich werden wir nicht nur Programme überprüfen, sondern auch Beispiele für ihre Verwendung geben.

Auditor selbst oder Sicherheit eigene Kraft

Vor Administratoren und noch mehr, bevor IB-Auditoren oft Aufgaben erstellen, um die Sicherheit einer großen Anzahl von Hosts in kürzester Zeit zu überprüfen. Um diese Aufgaben im Enterprise-Segment zu lösen, gibt es natürlich spezielle Werkzeuge, beispielsweise wie Netzwerksicherungsscanner. Ich bin zuversichtlich, dass alle - von Openvas Openvas-Motor bis zu kommerziellen Produkten wie Nessus oder NEXOSE unserem Leser bekannt sind. Diese Software wird jedoch normalerweise zur Suche nach veralteten und somit anfälligen und dann anfälligen und dann mit dem Patch-Management verwendet. Darüber hinaus berücksichtigen nicht alle Scanner einige spezifische Funktionen der integrierten Linux-Schutzmechanismen und anderer Produkte von Open Sources. Nun, nicht zuletzt ist der Wert der Preis der Frage, denn kommerzielle Produkte können sich leisten, außer Unternehmen, die die Budgets in diesem Unternehmen zuordnen.

Deshalb wird es heute an einem speziellen Satz frei verteilter Dienstprogramme sein, die den aktuellen Niveau der Systemsicherheitsniveaus diagnostizieren, potenzielle Risiken auswerten, beispielsweise "zusätzliche Dienste", die online oder unsicher ist, standardmäßig und sogar anbieten Optionen zur Korrektur der gefundenen Defekte. Ein weiterer Vorteil der Verwendung dieser Tools besteht darin, typische Farmprüfszenarien von einer beliebigen Anzahl von Linux-Systemen replizieren zu können und eine dokumentierte Testdatenbank in Form von Protokollen und einzelnen Berichten zu bilden.

Praktische Aspekte der Prüfung der Sicherheit

Wenn Sie die Augen des Auditors durchsehen, kann der Testansatz in zwei Typen unterteilt werden.

Zuerst - Dies ist eine Einhaltung der sogenannten Compliance-Anforderungen, hier wird hier auf das Vorhandensein verbindlicher Elemente der Verteidigung überprüft, die in einem internationalen Standard oder "Best Practice" vorgeschrieben sind. Classic-Beispiel - PCI-DSS-Anforderungen für Zahlungsprozess-IT-Systeme, SOX404, NIST-800-Serie ,.

Zweite - Dies ist ein rein rationaler Ansatz, der auf der Frage basiert "Was kann ich sonst noch tun, um die Sicherheit zu stärken?". Es gibt keine obligatorischen Anforderungen - nur Ihr Wissen, ein heller Kopf und ein geschickter Hände. Beispielsweise aktualisiert es, dass die Versionen der Kernel- und / oder Anwendungspakete, inklusive, zwingen, die Firewall konfigurieren.

Alles, was sich auf den zweiten Ansatz bezieht, ist üblich, um einen besonderen Begriff aufzurufen. Härten.Was sonst noch definiert werden können als "Aktionen, die darauf abzielen, das Niveau der anfänglichen Sicherheit des Betriebssystems (oder des Programms) hauptsächlich von den Mitarbeitern zu stärken."

Übereinstimmung mit Compliance-Anforderungen prüfen in der Regel die Vorbereitung auf den Durchgang von obligatorischen Prüftyp PCI DSS oder anderen Zertifizierungsaudit. Wir werden mehr auf die härtende Komponente aufmerksam machen. Alle großen Entwickler bieten ihren Produkten an. Härtungsrichtlinien. - Handbücher, die Tipps und Empfehlungen enthalten, wie Sie die Sicherheit feststellen, Angesichts der Sicherheitsmechanismen des Personals und der Besonderheiten der Software. Ähnliche Guides haben also einen roten Hut, Debian, Oracle, Cisco.

Die Info.

Das Härten ist ein Begriff aus der Welt von IB, der den Sicherheitsprozess des Systems (Programm) durch Verringern seiner Sicherheitsanfälligkeit und in der Regel nur regelmäßige Versorgungsunternehmen oder Schutzmechanismen verringert.

Sudo Apt-Get Update Sudo APT-GET INSTALLIEREN LYNIS

Und für rpm-orientierte Distributionen (vorab hinzufügen relevante Repositorys):

Yum install linus -y

Installation auf MacOS:

$ BESTER SUCHE LYNIS $ BREW INSTALLIEREN LYNIS

Um Lynis zu starten, reicht es aus, mindestens einen Schlüssel anzugeben. Um beispielsweise alle verfügbaren Tests zu starten, müssen Sie den Taste -c angeben (Überprüfen Sie alle, überprüfen Sie alles.

# Typische Sudo Lynis-Audit-Systemtest-Set # Voller Satz von Tests Sudo Lynis-Audit-System -C # Scannen Remote-Host-Audit-System-Fernbedienung







Die Prüfung ist immer nützlich, um zu überprüfen, ob die neue Version von Lynis verfügbar ist:

Lynis update info && lynis update check

Das LYNIS-Dienstprogramm, zusätzlich zum Standard, gibt es einen anderen Modus - univilierter Start.:

Lynis Audit --Pentest.

Wenn Sie den Namen des Auditors eingeben möchten, fügen Sie einfach einen Parameter -Auditor hinzu :

Sudo Lynis Audit System -C -Auditor DADDY

In jeder Phase der Prüfung kann der Überprüfungsprozess fortgesetzt (ENTER) oder zwangsweise beendet (Strg + C). Die Ergebnisse der durchgeführten Tests werden in Lynis Magazine in /var/log/lynis.log geschrieben. Treffen Sie, dass das Magazin jedes Mal überschrieben wird, wenn das Dienstprogramm der nächste Start ist.

Um auf systematischer Basis zu testen, können Sie im Automatikmodus den entsprechenden Job im ConR-Scheduler mit der -cronjob-Taste zuordnen. In diesem Fall startet das Dienstprogramm auf einer angegebenen Vorlage (config) und zeigt keine interaktiven Nachrichten, Fragen und Warnungen an. Alle Ergebnisse werden im Protokoll gespeichert. Zum Beispiel ist hier ein Skript für den Start des Dienstprogramms mit der Standardkonfiguration zwischen einmal im Monat:

#! / Bin / sh Auditor \u003d "Automated" Datum \u003d $ (Datum +% y% m% d) Host \u003d $ (Hostname) log_dir \u003d "/ var / log / lynis" report \u003d "$ log_dir / bericht - $ ( Host). $ (Datum) "Data \u003d" $ log_dir / Report-Data - $ (Host). $ (Datum) .txt "CD / usr / local / lynis ./lynis -c -auditor" $ (Auditor) " -CRONJOB\u003e $ (Bericht) MV /Var/log/lynis-report.dat $ (Daten) # Ende

Speichern Sie dieses Skript in das Verzeichnis /etc/cron.monthly/lynis. Vergessen Sie nicht, Pfade hinzuzufügen, um Protokolle zu speichern (/ usr / local / lynis und / var / log / lynis), ansonsten falsche Arbeit.

Sie können eine Liste aller zum Anruf verfügbaren Befehle anzeigen:

LYNIS SHOW-Befehle.

Besonders neugierig können Sie Einstellungen von der Standardkonfiguration aussehen:

Lynis Show-Einstellungen

Kurzanleitung zum Arbeiten mit Dienstprogramm:

Mann Lynis

Optionen für mögliche Status zu den Ergebnissen der Inspektion sind auf die folgende Liste beschränkt: Keine, schwach, fertig, gefunden, nicht_fund, ok, Warnung.


Ausführen von Einzeltests in Lynis

In der Praxis ist es notwendig, nur einige Tests auszuführen. Wenn Ihr Server beispielsweise nur E-Mail-Server- oder Apache-Funktionen ausführt. Dazu können wir den Parameter -Tests verwenden. Die Syntax des Befehls lautet wie folgt:

Lynis-tests "test-ids"

Wenn Sie aufgrund einer großen Anzahl von Testkennungen schwer zu verstehen sind, können Sie den Parameter "Tertest-Kategorie" verwenden. Mit dieser Option startet Lynis Identifizierer von nur den Tests, die in einer bestimmten Kategorie enthalten sind. Beispielsweise planen wir, die Tests der Firewall und den Kernel zu starten:

./lynis -Tests-Kategorie "Firewalls Kernel"

Darüber hinaus wächst die LYNIS-Funktionalität verschiedene Plugins, die unabhängig voneinander hinzufügen können, und Sie können neue in das vorhandene Verzeichnis einfügen.

Korrekturvorschläge (Vorschläge)

Alle Warnungen (Warnungen) werden nach den Ergebnissen aufgeführt. Jeder beginnt mit dem Text der Warnung, anschließend neben den Klammern den Test, der es generiert hat. Die folgende Zeile schlägt eine Lösung für das Problem vor, wenn er existiert. In der Tat ist die letzte Zeile die URL, für die Sie die Details sehen und zusätzliche Empfehlungen finden, wie Sie das Problem beseitigen können.

Profile

Profile, die die Prüfung steuern, sind in Erweiterungsdateien definiert .prf.Befindet sich im Verzeichnis / etc / lynis. Das Standardprofil wird als vorhersagbar bezeichnet: default.prf. Entwickler werden nicht empfohlen, es direkt zu bearbeiten: Alle Änderungen, die Sie zum Audit hinzufügen möchten, ist besser, um die Custom.prf-Datei hinzuzufügen, die sich in demselben Verzeichnis befindet.

Fortsetzung nur für Teilnehmer verfügbar

Option 1. Treten Sie der Site Community bei, um alle Materialien auf der Website zu lesen

Die Mitgliedschaft in der Gemeinschaft während des angegebenen Zeitraums eröffnet Ihnen Zugang zu allen Materialien von Hacker, erhöht Ihren persönlichen Akkumulationsrabatt und sammelt eine professionelle Xakep-Score-Bewertung!

Der Schutz der Information ist ein Prioritätsproblem für jedes Online-Geschäft. Virusinfektion und externe Angriffe sowie nicht autorisierter Zugang zu Informationen - all dies erfordert große finanzielle und reputierende Risiken. Die Auswahl einer Serverplattform interessieren sich daher immer für den Grad der Ressourcensicherheit.
Um zu prüfen, wie gut das Schutzsystem funktioniert, ob es keine Schwachstellen in IT und "Löcher" gibt, wird mindestens einmal im Monat empfohlen, um die Serversicherheitsaudit durchzuführen.

Was ist in der Server-Sicherheitsaudit enthalten

Sogar unbedeutende Sicherheit, auf den ersten Blick, wie der falsche Server selbst oder der veralteten Software, kann eine Bedrohung für die Sicherheit werden. Die Prüfung hilft, schwache Schutzplätze zu identifizieren und rechtzeitig Maßnahmen zu ergreifen, um sie zu beseitigen, bevor die Infektion oder die Erschließung der Daten auftritt.
Der Server-Administrator überprüft die installierte Software, seine Einhaltung der neuesten Updates, wertet die Serversicherheitseinstellungen aus und beseitigt Fehler, wenn es solche besteht, und analysiert auch die Übereinstimmung mit den Einstellungen der Mitarbeiterzugriffsrechte auf ein oder andere Ressourcen.

So verbringen Sie ein virtuelles Server-Audit mit Ihren eigenen Händen

Überprüfen Sie die Sicherheit von Servern unter Windows- oder Linux-Plattformen, damit jeder Benutzer, dafür ist dies nicht erforderlich, um spezielle Kenntnisse in der Programmierung zu haben.
Sicherheitsprüfung kann in mehrere Stufen unterteilt werden:

Physischer Zugang

Im Falle eines dedizierten Servers ist der physische Zugriff auf den Drittanbieter-Server standardmäßig begrenzt, er bietet ein Rechenzentrum. Der Benutzer kann jedoch zusätzlich ein Kennwort installieren, um auf BIOS zuzugreifen.

Firewall

Für die ständige Steuerung von Software und Ports ist die Windows-Firewall ordnungsgemäß konfiguriert und aktiviert. Für Linux können Sie das Selinux-System verwenden, um den Zugriff zu steuern. Außerdem können wir eine Hardware-Fireroll Cisco Asa oder Fortinet Fortatigy 60d mieten.

Dateisystem

Überprüfung auf Updates

Konfigurieren Sie den automatischen Empfang und die Installation von Updates auf dem Server.

Kennwortrichtlinie

Installieren von Windows mithilfe der lokalen Sicherheitsrichtlinie erfordert die Anforderung komplexer Kennwörter, der Begriff ihrer Aktion sowie der Kontosperre nach mehrerer erfolgloser Autorisierung oder leerem Kennwort.

Kontrolle der Protokolle

Fügen Sie die Protokollierung für kritische Infrastruktursegmente ein und überprüfen Sie sie regelmäßig.

Netzwerksicherheit

Für die Segmentierung von Knoten und Sicherheitskanälen wird empfohlen, VPN und VLAN zu verwenden.
Sie sollten auch die Standardeinstellungen ändern und die Ports der Netzwerkgerätedienste weiterleiten.
Sie können den IPSec-Dienst verwenden, um den Datenverkehr zu verschlüsseln. Und um offene Ports anzuzeigen - das NetStat-Dienstprogramm.

Zugangskontrolle

RemiS-Benutzerzugriffsrechte an kritische Dateien, trennen Sie den Zugriff und die Benutzer mit einem leeren Passwort. Trennen Sie nicht verwendete Rollen und Anwendungen auf dem Server.

Backup

Verwenden Sie den Dateisicherungsdienst, es ist vorteilhaft und zuverlässig. Speichern Sie keine Backup-Kopien nicht unverschlüsselt. Wenn Sie einen Server von uns mieten, können Sie einen Ort für Backups auswählen.

Zugang zu Datenbanken

Kritisch wichtige Datenbanken sollten auf verschiedenen SQL-Servern gespeichert werden. Sie müssen den Start im Namen des Benutzers mit minimalen Befugnissen oder aus einer weißen Faktor-Liste von IP-Adressen konfigurieren.

Antivirus-Verteidigung

Um den Server unter Windows zu bedienen, wird die Installation der automatisch aktualisierten Antivirensoftware installiert, wenn Benutzer mit Netzwerkspeichereinrichtungen verwendet werden. Für Linux ist die Anti-Virus-Installation nicht erforderlich, wobei die regelmäßige Überwachung der Serversicherheit und der nicht autorisierten Zugriffskontrolle nicht erforderlich ist. Dazu kann das Tiger-Dienstprogramm nützlich sein.

Ein solches Audit sollte einmal im Monat beitragen, die Richtigkeit des Servers zu überprüfen, Schwachstellen zu beseitigen und die Sicherheit der Netzwerkinfrastruktur zu überwachen.

Die Linux-Server-Sicherheit ist sehr wichtig, um Ihre Daten, das geistige Eigentum sowie die Zeit von den Händen von Cracker zu schützen. Das Linux-Betriebssystem ist für den Systemadministrator verantwortlich. In diesem Artikel werden wir zwanzig Dinge mit Ihrem Linux-Betriebssystem in Betracht ziehen, damit es immer sicher und sicher geschützt ist. Wenn dies ein Heimcomputer ist, dann über die Sicherheit, vielleicht ist es nicht sinnvoll, sich so sehr zu sorgen, dass es ausreichend ist, um zuverlässige Kennwörter und den Schluss von Zugang zu Häfen aus dem Internet auszuführen. Im Falle eines öffentlichen Servers lohnt es sich jedoch, auf den Schutz zu achten, um den Schutz zu gewährleisten.

Diese Anweisungen eignen sich für jede Verteilung, egal was Sie Centos, Red Hut oder Ubuntu, Debian verwenden.

1. Kommunikationsverschlüsselung.

Alle über das Netzwerk übertragenen Daten sind für die Überwachung offen. Daher müssen Sie die übertragenen Daten verschlüsseln, wo es mit Kennwörtern, Schlüssel oder Zertifikaten möglich ist.

Verwenden Sie SCP, SSH, RSYNC oder SFTP, um Dateien zu übertragen. Sie können auch ein Remote-Dateisystem mit Tools wie Shhfs an Ihrem Home-Verzeichnis montieren.

Mit GnUPG können Sie Ihre Daten mit einem speziellen persönlichen Schlüssel verschlüsseln und anmelden. Es gibt auch Funktionen zum Verwalten von Tasten und Zugriff auf geöffnete Schlüssel.

FUGU ist ein grafisches Werkzeug zum Übertragen von Dateien mit dem SFTP-Protokoll. SFTP ist dem FTP sehr ähnlich, aber die gesamte Sitzung ist hier verschlüsselt. Dies bedeutet, dass keine Kennwörter oder Befehle in der offenen Form übertragen werden. Daher sind solche Programme weniger anfällig für Dritte. Sie können auch Filezilla verwenden, dies ist ein plattformübergreifender FTP-Client mit FTS-Support über das SSH / TLS- und SSH-Dateiübertragungsprotokoll (SFTP).

OpenVPN - ein effizienter und einfacher VPN-Client mit SSH-Verschlüsselungsunterstützung.

2. Versuchen Sie, FTP, Telnet, RLOGIN und RSH nicht zu verwenden

In den meisten Netzwerken können Benutzernamen, Kennwörter von FTP, Telnet, RSH-Befehlen von jedem mit dem Paketanalysator von jedem von demselben Netzwerk abgefangen werden. Die Gesamtlösung dieses Problems ist die Verwendung von OpenSSH, SFTP oder SFTP, das SSL oder TLS dem üblichen FTP fügt. Führen Sie einen solchen Befehl aus, um NIS, RSH und andere veraltete Dienste zu entfernen:

yum löschen Inetd XINETD YPSERV TFTP-Server Telnet-Server RSH-servieren

3. Reduzieren Sie die Anzahl der Software

Benötigen Sie wirklich alle installierten Webdienste? Sie sollten keine unnötige Software installieren, um Schwachstellen in diesen Programmen zu vermeiden. Verwenden Sie Ihren Batch-Manager, um installierte Programme anzusehen und alle unnötigen löschen:

yum-Liste installiert
$ yum list paket
$ yum Remove Paket

dpkg --list.
$ dpkg --info-Paket
$ Apt-holen Sie das Paket entfernen

4. Eine Maschine - ein Dienst

Führen Sie verschiedene Dienste auf separaten Servern oder virtuellen Maschinen aus. Dies begrenzt die Anzahl der Dienstleistungen, die kompromittiert werden können. Wenn beispielsweise ein Angreifer Apache hacken kann, erhält er Zugriff auf den gesamten Server. Einschließlich von Diensten wie MySQL, E-Mail-Server und so weiter. Sie können eine solche Software als Xen oder OpenVZ für die Virtualisierung verwenden.

5. Halten Sie den Linux-Kernel und auf dem neuesten Stand

Die Verwendung von Sicherheits-Patches ist ein sehr wichtiger Bestandteil der Linux-Serversicherheit. Das Betriebssystem bietet allen Tools zum Aufrechterhalten des Systems auf dem neuesten Stand und aktualisiert neue Versionen. Alle Sicherheitsupdates sollten so schnell wie möglich angewendet werden. Hier müssen Sie auch Ihren Paketmanager verwenden. Beispielsweise:

Oder für Debian-basierte Systeme:

sudo apt update update && sudo aptupgrade

Sie können Red Hat oder Fedora konfigurieren, um Ihnen Benachrichtigungen an E-Mails über die Verfügbarkeit neuer Sicherheitsupdates zu senden. Sie können auch das automatische Update über CRON konfigurieren, oder Sie können APTCRON in Debian verwenden, um die Notwendigkeit zu benachrichtigen, das System zu aktualisieren.

6. Verwenden Sie Sicherheitsverlängerungen in Linux

Das Linux-Betriebssystem verfügt über verschiedene Sicherheitspflichten, die zum Schutz vor falschen Konfiguration oder schädlichen Programmen verwendet werden können. Sie können jedoch auch solche zusätzlichen Zugangskontrollsysteme für Anwendungen als Selinux oder Apparrmor verwenden.

Selinux bietet verschiedene Sicherheitsrichtlinien für Linux-Kernel. Es ist möglich, den Zugriff auf alle Systemressourcen mit Rollen zu steuern. Es kann nur das Programm, auf das Sie ermöglichen, und sogar die Regel der Superuser-Regel kann zugegriffen werden. Selinux erhöht das Linux-Sicherheitssystem viel erhöht, da sogar root hier der übliche Benutzer betrachtet wird. Lesen Sie mehr über in einem separaten Artikel beschrieben.

7. Benutzerkonten und zuverlässige Kennwörter

Verwenden Sie die Befehle von useradd- und usermod, um Benutzerkonten zu erstellen und zu pflegen. Stellen Sie sicher, dass Sie ein gutes und starkes Passwort haben, es muss mindestens acht Zeichen enthalten, vorzugsweise in einem anderen Register, zwischen denen Sonderzeichen oder Zahlen gefunden werden sollten. Zum Beispiel 8 Zeichen, davon sieben Buchstaben und ein Zeichen oder Ziffer. Verwenden Sie Tools wie John The Ripper, um schwache Benutzerkennwörter auf dem Server zu finden, sowie PAM_CRACKLIB.SO konfigurieren, um die Compliance der Kennwortrichtlinie zu gewährleisten.

8. Ändern Sie von Zeit zu Zeit Kennwörter.

Mit dem Befehl Change können Sie die Anzahl der Tage vor der Pflicht des Zwangswechsels angeben. Diese Informationen werden vom System verwendet, um den Moment zu ermitteln, in dem der Benutzer sie ändern muss. Diese Einstellungen sind in /etc/login.defs. Um das Kennwortalterung zu deaktivieren, geben Sie den folgenden Befehl ein:

Ändern Sie -l User_name.

Um Informationen über die Haltbarkeit des Kennworts zu erhalten, geben Sie den Befehl ein:

Sie können alles auch manuell in der / etc / shadow-Datei konfigurieren:

(Benutzer-Passwort): (Letzte Auswahl):(Maximum_Dain): (MINDERS_DNEY): (Eine Warnung):(deaktivieren):(Reihe):

  • Mindesttag - Das Mindestintervall zwischen Kennwortänderungen, dh, wie oft der Benutzer das Kennwort ändern kann.
  • Maximale Tage - Wie viele Tage ist das Passwort geeignet, nachdem der Benutzer nach diesem Zeitraum gezwungen ist, das Passwort zu ändern.
  • Eine Warnung - Die Anzahl der Tage, nach denen der Benutzer gewarnt wird, dass er das Passwort ändern muss.
  • Reihe) - Anzahl der Tage vom 1. Januar 1970, wenn das Konto vollständig deaktiviert ist.

chage -M 60 -m 7 -W 7 User_name

Es ist auch wünschenswert, den Benutzern die Verwendung alter Kennwörter zu verbieten, andernfalls werden alle Bemühungen mit Versuchen, sie zwangsweise Kennwörter zu ändern, auf Null reduziert.

9. Blockkonten nach erfolglosen Eingabeversuchen

Im Linux-Betriebssystem können Sie den Befehl Faillog verwenden, um nicht erfolgreiche Versuche anzuzeigen, Benutzer einzugeben. Auch damit können Sie die Grenze von erfolglosen Eingangsversuchen einstellen. Alle Informationen zu nicht erfolgreichen Eingangsversuchen werden in der Datei / var / log / faillog gespeichert. Um es anzuschauen, type:

Um die Protokollierungsversuchsgrenze für ein bestimmtes Konto einzustellen, verwenden Sie:

fAILLOG -R -U Benutzer

Konten mit dem Passwd-Befehl können Sie auch manuell blockieren oder freischalten. Um den Gebrauch zu blockieren:

passwd -l Benutzer.

Und zum Entsperren:

passwd -U-Benutzer

Es ist auch wünschenswert, zu überprüfen, ob es in dem System mit leeren Kennwörtern Konten gibt. Folgen Sie dazu:

awk -f: "($ 2 \u003d\u003d" ") (drucken)" / etc / shadow

Prüfen Sie auch, ob es keine Benutzer mit einer Gruppe oder ID 0 gibt. Ein solcher Benutzer muss nur eins sein, und dies ist root. Sie können mit diesem Befehl überprüfen:

awk -f: "($ 3 \u003d\u003d" 0 ") (drucken)" / etc / passwd

Es muss nur eine Zeile geben:

wurzel: x: 0: 0: root: / root: / bin / bash

Wenn andere vorhanden sind - entfernen Sie sie. Benutzer, insbesondere ihre schwachen Passwörter - eines der anfälligsten Dinge, die die Sicherheit in Linux brechen können.

10. Trennen Sie den Eingang für den Superuser

Um das Linux-Sicherheitssystem zu speichern, verwenden Sie das Login niemals in der Wurzel des Benutzers. Sie können Sudo verwenden, um die notwendige Berechtigung zu erhalten und den gewünschten Befehl im Namen des SuperUsers auszuführen. Dieser Befehl ermöglicht es, das Superuser-Kennwort nicht an andere Administratoren anzugeben, und enthält auch Überwachungstools, Einschränkungen und Tracking-Aktionen.

11. Physischer Sicherheitsserver

Die Linux-Server-Sicherheit sollte physische Sicherheit enthalten. Sie müssen den physischen Zugriff auf die Serverkonsole einschränken. Konfigurieren Sie BIOS so, dass die Last nicht von externen Medien unterstützt wird, z. B. DVD, CD, USB. Installieren Sie auch das BIOS-Kennwort und den GRUB-Bootloader, um ihre Parameter zu schützen.

12. Deaktivieren Sie unnötige Dienste

Deaktivieren Sie alle nicht verwendeten Dienste und Dämonen. Vergessen Sie auch nicht, diese Dienste von der AutoLoad zu entfernen. Sie können eine Liste aller Active Services in Red Hat Systems mit einem Team sehen:

chkconfig --list | Grep "3: auf"

Um den Dienst auszuschalten, verwenden Sie:

service Stop Service.
$ Chkconfig Service aus

Finden Sie alle offenen Ports:

Dasselbe kann mit einem NMAP-Scanner erfolgen:

nmap -st -o localhost

Verwenden Sie iptables, um alle Ports zu schließen, die nicht aus dem Netzwerk verfügbar sind. Oder stoppen Sie unnötige Dienste wie oben beschrieben.

13. X-Server entfernen

X Server auf dem Server-Computer - Die Sache ist völlig optional. Sie müssen keine grafische Umgebung auf einem ausgewählten Apache- oder E-Mail-Server ausführen. Löschen Sie diese Software, um die Sicherheit und Leistung zu erhöhen.

14. Konfigurieren Sie iptables.

iptables ist ein Benutzerbereichsprogramm, um die NetFilter-Firmware zu konfigurieren. Sie können den gesamten Verkehr filtern und nur bestimmte Verkehrstypen ermöglichen. Verwenden Sie auch TCPWRAPPERS - ACL-System, um den Internetzugang zu filtern. Sie können viele Arten von DOS-Angriffen mit iptables verhindern. Die Netzwerksicherheit in Linux ist ein sehr wichtiger Punkt der Gesamtsicherheit des Systems.

15. Passen Sie den Kernel an

In der Datei /etc/sysctl.conf werden die Kerneleinstellungen gespeichert, die während des Systemstarts geladen und verwendet werden.

Aktivieren Sie den Execshield-Pufferüberlauf:

kernel.exec-shield \u003d 1
kernel.randomize_va_space \u003d 1.

Aktivieren Sie die IP-Folgen des Schutzes:

net.ipv4.conf.all.rp_filter \u003d 1.

Deaktivieren Sie die IP-Adressenumleitung:

net.ipv4.conf.all.accept_source_route \u003d 0.

Broadcast-Anfragen ignorieren:

net.ipv4.icmp_echo_ignore_broadcasts \u003d 1.
net.ipv4.icmp_ignore_bogus_error_messages \u003d 1.

Loggy alle gefälschten Pakete:

net.ipv4.conf.all.log_martians \u003d 1.

16. Schieben Sie die Festplatte in die Abschnitte

Die Trennung der Festplatte in die Abschnitte in Abhängigkeit von dem Ziel der Dateien verbessert die Sicherheit des Linux-Betriebssystems. Es wird empfohlen, einzelne Abschnitte für solche Verzeichnisse zu erstellen:

  • / Zuhause.
  • / Var und / var / tmp

Machen Sie separate Partitionen für die Wurzelverzeichnisse von Apache und FTP-Servern. Öffnen Sie die Datei / etc / fstab und legen Sie spezielle Optionen für die gewünschten Abschnitte fest:

  • noexec. - Erfüllen Sie keine Programme oder ausführbaren Dateien in diesem Abschnitt, nur Skripts sind erlaubt.
  • noDev. - Lösen Sie keine symbolischen oder speziellen Geräte in diesem Abschnitt.
  • nosuid. - Erlauben Sie den Zugriff auf SUID / SGID nicht auf Programme aus diesem Abschnitt.

17. Verwenden Sie den Speicherplatzlimit

Verfügbare Speicherplatz für Benutzer einschränken. Erstellen Sie dazu eine Festplattenquote in / etc / fstab, montieren Sie die Dateisysteme und erstellen Sie eine Festplattenquotendatenbank. Dies erhöht die Sicherheit in Linux.

18. Deaktivieren Sie IPv6.

Das Internet IPv6 Internet Protocol wird den bereits in der Zukunft verwendeten IPv4 ersetzen. Im Moment gibt es jedoch keine Tools, mit denen Sie die Netzwerksicherheit basierend auf IPv6 überprüfen können. Viele Linux-Distributionen ermöglichen das Standard-IPv6-Protokoll. Hacker können unerwünschte Verkehr senden und Administratoren können es nicht verfolgen. Wenn Sie also nicht ausschalten müssen, müssen Sie ihn nicht ausschalten.

19. Deaktivieren Sie ungenutzte SUID und SGID-Binärdateien

Alle ausführbaren Dateien, für die das SUID- oder SGID-Flag möglicherweise gefährlich ist. Dieses Flag bedeutet, dass das Programm mit den Rechten des Superuser durchgeführt wird. Und das bedeutet, dass der lokale oder remote-Benutzer diese Datei, wenn es eine Sicherheitsanfälligkeit oder Fehler im Programm gibt, diese Datei verwenden kann. Finden Sie alle solchen Dateien mit dem folgenden Befehl:

find / -Perm +4000

Finden Sie Dateien mit SGID-Flag-Set:

find / -Perm +2000

Oder kombinieren Sie all dies in demselben Befehl:

find / \\ (- Perm -4000 -O -Perm -2000 \\) -Print
$ Find / -Path -Prune -o -Type F -Perm +6000 -ls

Sie müssen im Detail studieren, in denen jede Datei gefunden wurde, um zu verstehen, wie viel eine Datei benötigt wird.

20. Öffentliche Dateien

Es ist auch ratsam, Dateien zu finden, die alle Benutzer im System ändern können. Verwenden Sie dazu den folgenden Befehl:

find / DirxDev -Typ d \\ (- Perm-0002 -a! -Perm -1000 \\) -Drucken

Jetzt müssen Sie prüfen, ob die Rechte für die Gruppe und den Eigentümer dieser jeder Datei korrekt eingestellt sind und die Sicherheitsbedrohungen nicht trägt.

Es ist auch wünschenswert, alle Dateien zu finden, die niemandem angehören:

find / Dir -XDev \\ (- nouser -o -nogroup \\) -print

21. Verwenden Sie das zentrale Authentifizierungssystem

Ohne ein zentrales Authentifizierungssystem werden Benutzerdaten widersprüchlich, die zu veralteten Anmeldeinformationen führen können, und Konten vergessen, die vor langer Zeit entfernt werden sollen. Mit dem zentralen Dienst können Sie die Steuerung über Konten- und Authentifizierungsdatendaten auf verschiedenen Linux- und UNIX-Systemen aufrechterhalten. Sie können die Authentifizierungsdaten zwischen den Servern synchronisieren. Verwenden Sie jedoch nicht den NIS-Service, es ist besser, sich auf den offenen DAP zu schauen.

Eine der interessanten Implementierungen eines solchen Systems ist Kerberos. Sie können Benutzer mit einem geheimen Schlüssel authentifizieren, in Netzwerken, in denen Pakete abgefangen und modifiziert werden können. Kerberos verwendet einen symmetrischen Schlüssel, um Daten zu verschlüsseln, und erfordert ein Schlüsselverwaltungszentrum für seine Arbeit. Sie können das Remote-Login, das Remote-Kopieren, sichere Kopierdateien zwischen Systemen und anderen Aufgaben mit einem hohen Sicherheitsniveau konfigurieren.

22. Protokollierung und Prüfung

Konfigurieren Sie die Protokollierung und das Audit, um alle erfolglosen Eingabeversuche und Hacking-Versuche zu sammeln und aufrechtzuerhalten. Standardmäßig befinden sich alle Protokolle oder zumindest die meisten von ihnen im Ordner / var / log / ordner. Lesen Sie mehr darüber, was sie sicher sagen, wir sprachen in einem separaten Artikel.

Sie können Protokolle mit solchen Dienstprogrammen als LogWatch oder LogCheck ansehen. Sie vereinfachen die Lesestämme erheblich. Sie können nicht die gesamte Datei anzeigen, sondern nur die Ereignisse, an denen Sie interessiert sind, sowie Sie selbst eine Benachrichtigung an die E-Mail-Adresse senden.

Sehen Sie sich das System mit dem Auditd-Dienst an. Das Programm schreibt auf der Disc alle Ereignisse der Audit, die Sie interessieren. Alle Audit-Einstellungen werden in der Datei /etc/audit.rules gespeichert, wenn der Dienst startet. Der Dienst las alle Regeln aus dieser Datei. Sie können es öffnen und alles so konfigurieren, wie Sie benötigen oder ein separates Utility-Auditctl verwenden. Sie können solche Momente konfigurieren:

  • Systemstart und AUS-Ereignisse
  • Datum und Uhrzeit der Ereignisse
  • Benutzerdefinierte Ereignisse (z. B. Zugriff auf eine bestimmte Datei)
  • Ereignistyp (Bearbeiten, Zugriff, Löschen, Aufnehmen, Aktualisieren usw.)
  • Viel Glück oder Misserfolg beim Ausführen eines Ereignisses
  • Ereigniseinstellungen aufzeichnen Einstellungen ändern
  • Nehmen Sie Änderungen von Benutzern und Gruppen auf
  • Änderungen überwachen

23. Schutz von OpenSSH-Server schützen

Erlaube nur die Verwendung von Protokoll 2:

Deaktivieren Sie das Login im Namen des Superuser:

24. IDS installieren.

IDS- oder Intrusion-Erkennungssystem versucht, verdächtige, böswillige Aktivitäten wie DOS-Angriffe, Scan-Ports oder sogar Versuche, den Computer durch Überwachung des Netzwerkverkehrs zu erkennen.

Gute Praxis - Setzen Sie diese Software bereit, bevor das System aus dem Internet verfügbar ist. Sie können den A-Aide einstellen, es ist HIDs (hostbasierte IDs), die alle Aspekte des internen Geräts Ihres Systems steuern können.

Snort ist eine Software, um Intrusionsversuche aus dem Netzwerk zu erkennen. Es ist in der Lage, Pakete auszuführen und zu protokollieren und den Echtzeit-Netzwerkverkehr zu analysieren.

25. Schützen Sie Ihre Dateien und Verzeichnisse.

Linux hat ein hervorragendes Mittel zum Schutz vor unbefugtem Zugriff auf Dateien. Die von Linux eingestellten Berechtigungen und das Dateisystem bedeuten jedoch nichts, wenn der Angreifer physischer Zugriff auf den Computer verfügt, und es kann einfach eine Festplatte des Computers an ein anderes System anschließen, um Ihre Daten zu kopieren. Sie können jedoch Ihre Dateien einfach mit der Verschlüsselung schützen:

  • Verwenden Sie GPG, um Dateidatei verschlüsseln und zu entschlüsseln
  • Sie können auch Dateien mit OpenSSL schützen
  • Die Katalogverschlüsselung wird mit EKRYPTFS ausgeführt
  • Truecrypt - Kostenloses Tool für Verschlüsselungsdatenträger in Windows und Linux

Schlussfolgerungen

Nun wird Linux-Sicherheit auf Ihrem Computer viel vergrößert. Vergessen Sie nicht, komplexe Passwörter und von Zeit zu Zeit zu setzen. Schreiben Sie Ihr Lieblings-Tool in den Kommentaren, um die Sicherheit des Systems sicherzustellen.

Die meisten dieser Unternehmens- und Mehrkomponentensysteme als SAFT , Oracle db. Verwenden Sie in ihrer Plattform das Betriebssystem basierend auf Linux . In Anbetracht dessen wurde eine solche Aufmerksamkeit von IT-Auditoren gezogen. Heute in dem Artikel werden wir Ihren Aufmerksamkeit ein paar kostenlose Tools präsentieren, die in Form von Skripts präsentiert werden, und verwenden regelmäßige Betriebssystemmechanismen zum Bereitstellen einer Express-Sicherheitskonfigurationsprüfung.

Die beschriebenen Systembefehle und Skripts, die an die Express-Prüfung der Sicherheitsoptionen von Linux-Systemen angewendet werden, basieren auf Sicherheitsüberprüfungen der ISACA-Community in der Betriebssystem-Sicherheitsprüfungs- / Assurance-Programmhandbuch für Unix / Linux-Betriebssystem.

1. Konten überprüfen

1.1 Zeigen Sie eine Liste aller Benutzer an
Die Liste der Benutzer wird in der Datei / etc / passwdfile gespeichert. Um die Liste der Benutzer zu erhalten, können Sie das folgende Skript verwenden:

  1. bin / Bash.
  2. # UserSlistinthesystem.sh.
  3. # Zählen Sie und listet vorhandene "echte" Benutzer im System.
  4. eCHO "[*] vorhandene Benutzer (alphabetisch sortiert):
  5. grep '/ bash' / etc / passwd | Grep -v 'Wurzel' | Schneiden -F1.
  6. -D ':' | Sortieren.
  7. echo -n "[*] Anzahl der echten Benutzer gefunden:"
  8. grep '/ bash' / etc / passwd | Grep -v 'Wurzel' | WC -L.
1.2 Zeigen Sie eine Liste der gesperrten Konten an
Während des Audits müssen Sie die Liste der gesperrten und freigeschalteten Benutzer überprüfen ( kontobezeichnung. ). Dies entspricht dem folgenden Team:
  1. #! / Bin / bash
  2. # Passwd -s-accountname

1.3 Statistiken für alle Benutzer anzeigen

  • Der Abschlussprüfer muss sicherstellen, dass das Team aC. Im System enthalten, um die Aktivitäten der Benutzer zu überprüfen:
    1. #! / Bin / bash
    Um die Aktivität der Benutzerverbindungssitzung mit den Ergebnissen für jeden Tag anzuzeigen, verwenden Sie den Befehl:
    1. #! / Bin / bash
    2. # AC -D.
    Um Informationen über die Aktivität der Sitzung (in Stunden) der Benutzerkonnektivität anzuzeigen "Benutzer" :
    1. #! / Bin / bash
    2. # AC-Benutzer
    1.4 Benutzeraktivität anzeigen
    PSACCT- oder ACCT-Systemanwendungen arbeiten im Hintergrund und verfolgen die Aktivität jedes Benutzers im System sowie auf Ressourcen verbraucht. Um die Benutzeraktivitäten im System zu überprüfen, führen Sie das folgende Skript aus:
    1. #! / usr / bin / envksh
    2. last -fa | awk '
    3. / WTMP beginnt / (Weiter;)
    4. / Angemeldet / (nächstes;)
    5. $ 0 \u003d\u003d Neustart (Weiter;)
    6. Nf\u003e 0 (
    7. wenn (nr\u003e 1)
    8. printf ("
      ”);
    9. printf ("Benutzer: t% s
      ", $ 1); # Benutzer.
    10. printf ("Start: T% s% s% s% s
      ”, $3, $4, $5, $6);
    11. if ($ 9 \u003d\u003d "down")
    12. printf ("Ende: Tshutdown
      ”);
    13. druckf ("ende: t% s% s% s% s
      ”, $9, $10, $11, $12);
    14. if (substr ($ nf, 1, 1) \u003d\u003d "(")
    15. t \u003d $ nf;
    16. h \u003d "localhost";
    17. t \u003d $ (NF-1);
    18. h \u003d $ nf;
    19. gSUB ("[()]", ", t);
    20. printf ("Time on: t% s
      ", T);
    21. printf ("Remote-Host: T% s
      ", H);
  • 2. Kennwortrichtlinie prüfen

    2.1 Konten mit leerem Passwort
    Während des Audits müssen Sie sicherstellen, dass das System keine Konten hat oder blockiert, mit denen Sie sich mit dem Anmelden beim System anmelden, ohne das Passwort einzugeben. Diese Regel kann vom Befehl geprüft werden:

    # Katze / etc / Shadow | Awk -f: ($ 2 \u003d\u003d "") (drucken $ 1) '

    2.2 Kennwortkomplexität prüfen
    Während des Audits müssen Sie die Einstellungen der Kennwortkomplexität überprüfen, um das Risiko von Angriffen auf das Brutfort-Kennwort (BUST) oder die Auswahl des Wörterbuchs zu senken. Um diese Regel im System zu installieren, müssen Sie angeschlossene Authentifizierungsmodule (PAM) verwenden.
    Der Auditor kann die entsprechende Einstellung in der Konfigurationsdatei überprüfen:

    # Vi /etc/pam.d/system-auth.

    2.3 Überprüfung des Passworts

    Während des Audits müssen Sie den Ablauf des Ausfalls des Passworts überprüfen. So überprüfen Sie den Gültigkeitszeitraum für den Kennwort, den Sie benötigen, um den Befehl zu verwenden veränderung. Dieser Befehl zeigt die detaillierten Informationen des Kennworts sowie das Datum seiner letzten Änderung an.
    Der folgende Befehl besteht darin, Informationen über "Alter" -Kennwörter anzuzeigen:

    #Chage -l Benutzername.

    Um den Ablauf des Kennworts eines bestimmten Benutzers zu ändern, können Sie die folgenden Befehle verwenden:

    #Chage -m 60 Benutzername
    #Chage -m 60 -m 7 -W 7 Benutzername

    Parameter (um die Passwortdauer festzulegen):
    -M - die maximale Gültigkeitsdauer in Tagen.
    -m - die minimale Gültigkeitsdauer in Tagen.
    -W - Einstellen der Warnung in Tagen.

    2.4 Verwenden von repetitiven Kennwörtern
    Die Berechtigungseinstellungen zum System müssen der Kennwortrichtlinie entsprechen. Die Datei mit Passworthistorie ist in / etc / security / opaswd. Um zu überprüfen, müssen Sie die folgenden Schritte ausführen:

    für RHEL: Öffnen Sie die Datei '/etc/pam.d/system-aututh':

    # Vi /etc/pam.d/system-auth.

    für Ubuntu / Debian / Linux Mint: Öffnen Sie Datei '/etc/pam.d/common-password':

    # Vi /etc/pam.d/common-password.

    Fügen Sie den nächsten String-Bereich hinzu 'AUTH':

    auth ausreichend pam_unix.so likeauthnullok

    Um die Verwendung der letzten sechs Kennwörter zu verbieten, fügen Sie folgende Zeile hinzu:

    Passwort ausreichend pam_unix.so nulllokuse_Authtok md5 schatten erinnern \u003d 6

    Nach dem Ausführen des Befehls speichert das System eine Geschichte über die vorherigen sechs Kennwörter, und wenn ein Benutzer versucht, das Kennwort mit einem der letzten sechs Aktualisierung zu aktualisieren, wird er eine Fehlermeldung erhalten.

    3. Verbindungseinstellungen konfigurieren
    Remote-Verbindungsprotokolle zum Telnet- und RLOGIN-System sind aufgrund der Übertragung des Kennworts über das Netzwerk in der unverschlüsselten Form sehr alt und anfällig. Für eine gültige und sichere Verbindung muss ein sicheres Protokoll verwendet werden. Secure Shell (SSH). Der Auditor muss auch sicherstellen, dass die Option sichergestellt ist root-Login. Deaktiviert, Änderung des Standard-SSH-Ports, der Remote-Zugriff ist nur für bestimmte autorisierte Benutzer zulässig. Die geprüften Einstellungen befinden sich in der SSH-Konfigurationsdatei:

    1. # vi / etc / ssh / sshd_config

    3.1 Login im Namen eines Superuser (Root Login)

    Während des Audits muss der Abschlussprüfer das Verbot des Remote-Login an den Root Superuser überprüfen.

    # PermitrootLogin \u003d ja
    3.2 SSH-Login-Service-Konto prüfen

    Während des Audits muss der Abschlussprüfer den Service-Akierkaant mit einem eingerichteten Wert von SSH-Login überprüfen. Systemadministratoren verwenden in der Regel diese Funktion für programmierte Sicherungen, Dateiübertragungs- und Start-Skripts im Fernbedienungsmodus.

    Überprüfen Sie Ihre SSHD_CONFIG-Einstellungen (/ etc / ssh / sshd_config) sind ein letztes Mal korrekt.

    # PermitrootLogin ohne Kennwort

    # RSAA authentication \u003d Ja

    # PubkeyAuthentication \u003d Ja

    3.3 Überprüfen von Zugriffslisten in denyhosts und fail2ban
    Während des Audits müssen Sie die Einstellungen der Zugriffslisten überprüfen Denyhosts und Fail2ban. . Dies sind Skripts zum Überwachen und Analysieren von SSH-Zugriffsprotokollen und Angriffsschutz durch Buthels-Kennwörter.

    Merkmale der Denyhosts:

    • speichert und verfolgt Protokolle aus der Datei / Var / log / sicher , notiert, alle erfolgreichen und erfolglosen Eingabeversuche und filtert sie.
    • überwacht nicht erfolgreiche Eingangsversuche
    • e-Mail Eine Benachrichtigung über gesperrte Hosts und verdächtige Eintragsversuche
    Eigenschaften Fail2ban:
    • Speichert und verfolgt Protokolle von Dateien / Var / log / sicher und /var/log/Auth.log. , / var / log / pwdfail
    • sehr anpassbar und mehrfachgewinde
    • achten Sie regelmäßig auf Protokolldateien

    4. Systemprotokolle prüfen
    Während des Audits müssen Sie sicherstellen, dass der Syslog-Daemon läuft, und alle wesentlichen Ereignisse, die im System auftreten, werden in Event-Protokollen aufgezeichnet. Während des Audits ist es auch notwendig, sicherzustellen, dass die Speicherrichtlinie der Ereignisse die Anforderungen der aktuellen Rechtsvorschriften- und Insolenpolitikrichtlinien berücksichtigt.

    4.1 Ereignisprotokolle in Linux:

    /var/log/Auth.log - Protokollierungssystemprotokoll (Anmelde- und Authentifizierungsmechanismus).
    /var/log/dpkg.log - Installation / Deletion von Paketen mit dpkg.
    /var/log/yum.log - Installations- / Löschprotokollpaket mit yum.
    / var / log / faillog - das Protokoll der erfolglosen Versuche, sich für jedes Konto bei dem System und deren Grenzwertnummer anzumelden.
    /var/log/kern.log - Kernel-Protokoll (detaillierte Protokollmessaging-Protokolle von Linux Kernel).
    / Var / log / mAILLG oder /var/log/mail.log - Mailserverprotokoll.
    / Var / log / wtmp - Login-Protokoll (Registrierungszeit und Dauer aller Benutzer des Systems).
    / Var / run / utmp - Informationen zu Benutzern, die derzeit im System registriert sind.
    / Var / log / lastlog - Aufzeichnungen der vorherigen Eingänge an das System.
    / var / log / boot - Informationen, die während des Systemstiefels registriert sind

    5. Schutz von Systemdateien

    5.1 GRUB-Loader-Schutz

    Um den GRUB-Systemlader zu schützen, muss der Administrator die Kennwortverschlüsselung verwenden MD5-Format. :

    # Grub-MD5-Crypt

    Nach dem Ausführen des Befehls muss der Administrator die Datei öffnen /Boot/grub/menu.lst. oder /Boot/grub/grub.conf. Und fügen Sie MD5-Passwort hinzu:

    # Vi /boot/grub/menu.lst.

    # Vi /boot/grub/grub.conf.

    Das neu erstellte MD5-Kennwort kann der Grub-Konfigurationsdatei hinzugefügt werden.

    5.2 Verzeichnisverzeichnis Schutz / Boot

    Während des Audits müssen Sie den Status des Katalogs überprüfen / booten, Da der Systemkern und die zugehörigen Dateien im Katalog veröffentlicht werden / Booten. Es ist notwendig, sicherzustellen, dass das Verzeichnis nur gelesen wird, der nicht autorisierte Änderung in wichtigen Dateien im System verhindert. Um zu überprüfen, öffnen Sie die Datei / etc / fstab und überprüfen Sie die Konfiguration:

    Die Zeile sollte in der Datei vorhanden sein:

    Label \u003d / boot / boot ext2 Standardeinstellungen, RO 1 2

    5.3 Öffnen von Ports und Wirkstoffe prüfen

    Das folgende Skript kann verwendet werden, um die im System laufenden Dienste zu überprüfen:

    #! / Bin / bash
    if (($ (ps -ef | grep -v grep | grep $ service | WC -L)\u003e 0))
    dann.
    eCHO "$ Service läuft !!!"
    sONST.
    /etc/init.d/$Service Start.
    Fische

    Netzwerkverbindungen anzeigen.

    # Netstat -anop.
    oder
    # LSOF -I (LSOF -NI)
    oder
    # IPTRAF.

    Aufgelistete Ports.
    Mit dem NetStat-Befehl können Sie alle offenen Anschlüsse anzeigen und mit ihnen verknüpfen. Beispielskript:

    # Netstat-tulpn
    Ein Skript für Portscanning lautet:
    scan () () (
    wenn [- Zz $ 1 || -z $ 2]]; Dann.
    eCHO "Usage: $ 0
    rückkehr.
    fische
    lokaler Host \u003d $ 1
    lokale Ports \u003d ()
    fall $ 2 in
    *-*)
    IFS \u003d - Lesen Sie das Startende<<< “$2”
    für ((Port \u003d Start; Port<= end; port++)); do
    ports + \u003d ($ Port)
    getan
    ;;
    *,*)
    IFS \u003d, lesen Sie -Ront<<< “$2”
    ;; *)
    ports + \u003d ($ 2) ;;
    eSc.
    für Port in "$ (Ports [@])"; tun.
    alarm 1 "Echo\u003e / dev / tcp / $ host / $ Port" &&&
    echo "Port $ Port ist offen" ||
    echo "Port $ Port ist geschlossen"
    getan
    }

    Firewatch iptables.

    Während des Audits müssen Sie die Linux-Firewall-Konfiguration überprüfen, um einen unbefugten Zugriff zu verhindern. Um den Verkehr zu steuern, müssen die iptables Regeln erstellen, die ankommende, ausgehende und gesendete Pakete basierend auf der IP-Adresse und der TCP / UDP-Portnummer filtern.

    # iptables -n -l -v --line-Zahlen

    ICMP / Rundfunkanfragen

    Während des Audits ist es erforderlich, sicherzustellen, dass die Systeme konfiguriert sind, um Ping- und Rundfunkanforderungen zu ignorieren. Stellen Sie dazu dies sicher, dass in der Datei "/Etc/sysctl.conf" die folgenden Zeilen hinzugefügt:

    # IGNORE ICMP-Anforderungen:
    net.ipv4.icmp_echo_ignore_all \u003d 1.
    # Ignorieren Sie Broadcast-Abfragen:
    net.ipv4.icmp_echo_ignore_broadcasts \u003d 1.

    5.4 Installierte Updates prüfen

    Die Systeme müssen letzte Updates installiert sein:

    # Yum-Updates.
    # Yum Check-Update

    6. Überprüfen Sie automatisch ausgeführte CRON-Aufgaben

    Der Abschlussprüfer muss prüfen, wem es erlaubt ist, Aufgaben in Cron auszuführen. Der Zugriff auf CRON wird mithilfe von Dateien gesteuert /etc/cron.allow. und /etc/cron.deny.

    # Echo ganz \u003e\u003e / etc / cron.deny

    7. Überprüfen Sie den Sicherheitsmodus des erzwungenen Selinux-Sicherheitsmodus

    Im Zuge der Prüfung ist es wichtig, den Status zu überprüfen Selinux . Dieser Mechanismus muss in das System enthalten sein.
    Es gibt drei Modi Selinux :

    • Durchsetzung: Selinux-Richtlinie ist gezwungen aktiviert. Selinux verbietet Zugriff auf Basis von Selinux-Richtlinienregeln.
    • Permissive: Selinux-Richtlinie ist nicht obligatorisch. Selinux verbietet keinen Zugriff, aber die Verbote werden als Maßnahmen verbrannt, die verboten sind, wenn Sie die Richtlinien in den Zwangsmodus wechseln.
    • Deaktiviert: Selinux ist deaktiviert. Es werden nur DAC-diskrete Regeln verwendet.

    Während des Audits können Sie das folgende Skript verwenden, um den Selinux-Status zu überprüfen, oder verwenden Sie die Befehle system-configselinux, Gartenforce oder Sestatus:

    Aktiviert \u003d `Cat / Selinux / Enforce`
    wenn ["$ fähig" \u003d\u003d 1]; Dann.
    eCHO "Selinux ist aktiviert, deaktiviert? (JA NEIN): "
    deaktivieren lesen.
    wenn [$ deaktiviert \u003d\u003d "ja"]; Dann.
    echo "Deaktivieren von Selinux"
    sensenforce 0.
    fische
    fische

    LBSA-Skript zum Überprüfen der grundlegenden Sicherheitsoptionen

    LBSA (Linux Basic Security Audit Script) - Dies ist ein grundlegendes Skript zum Audieren der Sicherheitskonfiguration von Linux-Systemen. Das Skript muss mit Privilegien von der Befehlszeile ausgeführt werden. wurzel Oder beginnen Sie im Idealfall regelmäßig mit dem CRON-Scheduler für systematische Konfigurationsänderungen.

    Der Zweck dieses Skripts ist die ausdrückliche Prüfung der Sicherheitseinstellungen und der Entlastung des Berichts mit einer Beschreibung möglicher Parameter, die geändert werden können, um einen höheren Sicherheitsgrad sicherzustellen. Wenn in dem Fall keine Empfehlungen für einige Option vorhanden sind, zeigt das Skript einfach eine Zeile mit einer Überprüfung der Prüfung an, und die endgültige Lösung bleibt immer für den Administrator. Bevor Sie den Scan ausführen, werden die Entwickler dringend empfohlen, sich mit dem Handbuch vertraut zu machen und die empfohlenen Abschnitte für weitere Informationen zu erkunden.

    Derzeit (Version 1.0.49) scannt das Skript die folgenden Optionen:

    • schwachstellen in Kontoeinstellungen
    • schwachstellen in SSH-Einstellungen
    • schwachstellen in temporären Verzeichnissen und Dateisystemverzeichnis, das in RAM heruntergeladen wurde (z. B. in / tmp, / var / tmp / dev /)
    • berechtigungen für Dateien, Status der Systemverzeichnisse
    • rappigationsdienste DRBD und Hörungsat

    Das Skript ist ziemlich groß, also haben wir es nicht gesetzt, es auf der Seite zu setzen.

    Im heutigen Artikel werden wir Ihnen vorstellen beste Linux Safety Audit Utilities oder wie unsere englischsprachigen Kollegen sagen - Aushärten von Linux. Das Thema des Artikels überprüft also die Sicherheits- und Bewertung der Linux-Systeme, die die Richtigkeit der Korrektheit aus der Sicht der Informationssicherheit konfigurieren. Natürlich werden wir nicht nur Programme überprüfen, sondern auch Beispiele für ihre Verwendung geben.

    Sicherheitsaudit Linux Eigene Kraft

    Vor den Systemadministratoren, und sogar mehr Vor den Abschlussprüfern der Informationssicherheit ergeben sich die Aufgaben häufig, um die geschützte Anzahl von Hosts in kürzester Zeit zu überprüfen. Um diese Aufgaben im Enterprise-Segment zu lösen, gibt es natürlich spezielle Werkzeuge, wie z. Ich bin zuversichtlich, dass alle - von Openvas Openvas-Motor bis zu kommerziellen Produkten wie Nessus oder NEXOSE unserem Leser bekannt sind. Diese Software wird jedoch normalerweise zur Suche nach veralteter und somit anfälliger Software verwendet und dann das Patch-Management ausführen. Darüber hinaus berücksichtigen nicht alle Sicherheitsscanner bestimmte spezifische Funktionen der integrierten Linux-Betriebssystem-Schutzmechanismen und anderer Open Source-Produkte. Nun, nicht zuletzt ist der Wert der Preis der Frage, denn bezahlte Produkte können sich nur den Unternehmen leisten, die einigen Budgets in diesem Geschäft zuordnen können.

    Deshalb ist es ein spezialisierter Satz von kostenlosen Dienstprogrammen, die den aktuellen Niveau der Systemsicherheitsniveaus diagnostizieren, potenzielle Risiken bewerten, beispielsweise "unnötige Dienste", die online oder unsicher ist, und in bestimmten Fällen, um Optionen vorzuschlagen zur Korrektur der Probleme, die von Audit-Problemen gefunden wurden. Ein weiterer Vorteil der Verwendung dieser Tools besteht darin, typische Farmprüfskripts von einer beliebigen Anzahl von Linux-Systemen replizieren zu können und eine dokumentierte Datenbank von Tests in Form von Protokollen und einzelnen Berichten zu erstellen.

    Praktische Aspekte der Linux-Sicherheitsaudit

    Wenn Sie die Augen des Auditors durchsehen, kann der Testansatz in zwei Typen unterteilt werden.

    Zuerst - Dies ist eine Einhaltung der sogenannten Compliance-Anforderungen, hier wird hier auf das Vorhandensein verbindlicher Elemente der Verteidigung überprüft, die in einem internationalen Standard oder "Best Practice" vorgeschrieben sind. Classic-Beispiel - PCI-DSS-Anforderungen für Zahlungsprozess-IT-Systeme, SOX404, NIST-800-Serie ,.

    Zweite - Dies ist ein rein rationaler Ansatz, der auf der Frage basiert "Was kann ich sonst noch tun, um die Sicherheit zu stärken?". Es gibt keine obligatorischen Anforderungen - nur Ihr Wissen, ein heller Kopf und ein geschickter Hände. Dies ist beispielsweise ein Update der Kernel-Versions- und / oder Anwendungspakete, inklusion, Selinux-Forcing, die Iptables Filevolt eingestellt.

    Alles, was sich auf den zweiten Ansatz bezieht, ist üblich, um einen besonderen Begriff aufzurufen. Linux Härten.Was sonst noch definiert werden kann als "Aktionen, die darauf abzielen, das Niveau der quellengeschützten Betriebssysteme (oder der CO) hauptsächlich von den Mitarbeitern zu stärken."

    Übereinstimmung mit Compliance-Anforderungen prüfen in der Regel die Vorbereitung auf den Durchgang von obligatorischen Prüftyp PCI DSS oder anderen Zertifizierungsaudit. Wir werden mehr auf die härtende Komponente aufmerksam machen. Alle großen Anbieter bieten für ihre Produkte an. Härtungsrichtlinien. - Richtlinien, die Beratung und Empfehlungen enthalten, wie Sie die Sicherheit stärken, unter Berücksichtigung regelmäßiger Sicherheitsmechanismen und Software-Spezifikationen. Ähnliche Guides haben also einen roten Hut, Debian, Oracle, Cisco.

    Das Härten ist der Begriff der Welt der Informationssicherheit, der den Sicherheitsprozess des Systems (Programm) durch Verringern seiner Anfälligkeit und in der Regel mit ausschließlich regulären Versorgungsunternehmen oder Schutzmechanismen nutzt.

    Übrigens hatten wir jemals einen Artikel zum Konfigurieren der Härtungsoptionen, aber in diesem Artikel handelte es sich um die Umgebung. Wir prüfen unser System zunächst mit Hilfe von spezialisierten Hilfsprogrammen, d. H. Wir werden eine Prüfung der Sicherheit durchführen, wir schätzen die aktuelle Schutzniveau und booten dann die Sicherheitsoption dort, wenn es ein Bedürfnis gibt. Nun, oder als Option: Wenn der Server bereits aus der Sicht der Sicherheit konfiguriert ist, können unsere Tools es überprüfen und deuten darauf hin, dass Sie noch tun können.

    Linux Safety Audit Tools

    LYNIS - Auditing-Systemhärtungstest

    Installation auf MacOS:

    Initialisierung von Tests.
    Testergebnisse des System-Tools und der Boot & Services-Gruppe
    Testergebnisse aus der Kernel- und Memory & Process-Auditing-Gruppe
    Testergebnisse der Benutzer- und Gruppen- und Authentifizierungsgruppe

    Die Prüfung ist immer nützlich, um zu überprüfen, ob die neue Version von Lynis verfügbar ist:

    Wenn Sie den Namen des Auditors platzieren möchten, fügen Sie einfach einen Parameter-Auditor hinzu :

    sudo Lynis Audit System - C - Auditor Daddy

    In jeder Phase des Sicherheitsaudits von Linux kann der Überprüfungsprozess fortgesetzt (ENTER) oder gewaltsam beendet (Strg + C). Die Ergebnisse der durchgeführten Tests werden in Lynis-Protokoll in den Katalog /var/log/lynis.log geschrieben. Beachten Sie, dass die Protokolldatei jedes Mal überschrieben wird, wenn das Dienstprogramm der nächste Start ist.

    Zum Testen auf laufender Basis können Sie im Automatikmodus mit der -CRONJOB-Taste einen entsprechenden Job im CRON-Scheduler zuweisen. In diesem Fall wird Lynis auf einer angegebenen Vorlage (CONFIG) ausgeführt und zeigt keine interaktiven unnötigen Nachrichten, Fragen und Warnungen an. Alle Ergebnisse werden im Protokoll gespeichert. Zum Beispiel ist hier das Start-Skript-Dienstprogramm mit den Standardeinstellungen einmal im Monat:

    #! / bin / sh

    Auditor \u003d "Automatisiert"

    Datum \u003d $ (Datum +% y% m% d)

    Host \u003d $ (Hostname)

    Log_dir \u003d "/ var / log / lynis"

    Report \u003d "$ log_dir / bericht - $ (Host). $ (Datum) "

    Daten \u003d "$ log_dir / bericht - Daten - $ (Host). $ (Datum). TXT "

    cD / usr / lokal / lynis

    . / Lynis - c-ouditor "$ (Auditor" -Cronjob\u003e $ (Bericht)

    mV / Var / Log / Lynis - Bericht. Dat $ (Daten)

    # Ende.

    Speichern Sie dieses Skript in das Verzeichnis /etc/cron.monthly/lynis. Vergessen Sie nicht, Pfade hinzuzufügen, um Protokolle zu speichern (/ usr / local / lynis und / var / log / lynis), ansonsten falsche Arbeit.

    Sie können eine Liste aller zum Anruf verfügbaren Befehle anzeigen:

    Kurze Anweisungen zum Arbeiten mit dem Dienstprogramm:

    mann Lynis

    Optionen für mögliche Status zu den Ergebnissen der Inspektion sind auf die folgende Liste beschränkt: Keine, schwach, fertig, gefunden, nicht_fund, ok, Warnung.


    Ein Beispiel für den Ausgabestatus
    Ausführen von Einzeltests in Lynis

    In der Praxis ist es notwendig, nur einige spezifische Tests auszuführen. Wenn Ihr Server beispielsweise nur E-Mail-Server- oder Apache-Funktionen ausführt. Dazu können wir den Parameter -Tests verwenden. Die Befehlssyntax sieht so aus:

    Darüber hinaus wächst die LYNIS-Funktionalität verschiedene Ergänzungen, die unabhängig voneinander hinzufügen können, und Sie können neu in das vorhandene Verzeichnis einfügen.

    Alle Warnungen (Warnungen) werden nach den Ergebnissen aufgeführt. Jeder beginnt mit dem Text der Warnung, anschließend neben den Klammern den Test, der es generiert hat. Die folgende Zeile bietet eine Lösung für ein Problem, wenn es natürlich existiert. Nach der Tat ist die letzte Zeile die URL, für die Sie die Details ansehen und weitere Empfehlungen finden, wie das Problem zu beseitigen.


    Fazit der Empfehlungen So beseitigen Sie die gefundenen Probleme

    Profile

    Profile, die Steuerprüfung in Dateien mit der Erweiterung PRF in der / etc definiert ist / Lynis Verzeichnis. Das Standardprofil wird aufgerufen, vorhersehbar, default.prf. Die Entwickler sind nicht zu bearbeiten empfohlen, um es direkt: Änderungen, die Sie in einer Prüfung eingeben möchten besser auf die Custom.prf Datei hinzuzufügen, in demselben Verzeichnis befinden.

    Erstellen und bearbeiten Sie ein benutzerdefiniertes Profil:

    tOUCH / ETC / LYNIS / Custom. PRF.

    sudo Nano / etc / lynis / benutzerdefiniert. PRF.

    In dieser Datei können Sie eine Liste von Tests definieren, die von der LYNIS-Audit ausgeschlossen werden müssen. Beispielsweise:

    • Datei-6310: Abschnitte prüfen;
    • Http-6622: Nginx-Installationstest;
    • Http-6702: Apache-Installationstest.

    Um einen bestimmten Test auszuschließen, verwenden Sie die SKIP-TEST-Richtlinie und geben Sie die Test-ID an. Zum Beispiel: Also:

    # Ist nginx installiert?

    Überspringen - test \u003d http - 6622

    # Ist Apache installiert?

    Überspringen - test \u003d http - 6702

    Evaluierungshärtungszustand

    Nach den Ergebnissen der Durchführung aller Tests am Ende jedes Ausgangs des Prüfungsprogramms (knapp unter dem Abschnitt der Vorschläge), werden Sie einen Abschnitt finden, die wie folgt aussehen:

    LYNIS Security Scan Details:

    Hardening-Index: 57 [############ .........]

    Tests ergeben: 216

    Plugins aktiviert: 0

    Zusammenfassender Härtungszustand

    Dieses Ergebnis durch die Zahl ausgedrückt, zeigt die Anzahl der Tests bestanden und die Sicherheit Index des Systems, das heißt härtenindex. - Die endgültige Zahl, mit der Lynis eine Bewertung des Gesamtniveaus der Serversicherheit bietet. Und es ist sehr wichtig, nicht zu vergessen, dass der Sicherheitsindex in Abhängigkeit von der Anzahl der korrigierten Warnungen variiert und die ausgeführten Lynis Empfehlungen. Nach Korrekturen der gefundenen Probleme kann die RE-Audit der Sicherheit eine völlig andere Zahl zeigen!

    Alle Manipulationen mit dem System im Superuser-Modus erfordern genaue Aufmerksamkeit und erhöhte Verantwortung. Führen Sie nur die Aktionen aus, die sich dessen bewusst sind, welche sich zuversichtlich sind. Vergessen Sie nicht, Backup-Kopien und Momentaufnahmen zu erstellen.

    Lunar - ein Unix-Sicherheits-Audit-Tool

    Beispiele für den Start von Befehlen von CLI:


    Alle anzeigen Launar-Startoptionen

    Lunar im Sicherheitsaudit-Modus starten, das ist ohne Änderungen an dem System vorzunehmen:

    Prüfzählung:

    Beginnen Sie im Fix-Modus, d. H. Änderungen am System:

    Beispiel für Starten von Tests für den Apache-Webserver

    Nix-Auditor - ein CIS-Audit leichter

    Nix-Auditor ist ein anderes Skript, um zu prüfen, ob die Sicherheit von Linux-Systemen die Anforderungen des CIS-Indikators ist. Konzentriert sich auf RHEL, CENTOS und andere RPM-Distributionen.

    Entwickler erklären solche Vorteile des Nix-Auditors:

    • scan-Geschwindigkeit - für die Durchführung der grundlegenden Überprüfung der OS können Sie weniger als 120 Sekunden und erhalten sofort einen Bericht;
    • genauigkeits-Check. - Nichts Auditor Arbeit auf verschiedene Versionen der Distributionen von CentOS und Red Hat überprüft;
    • anpassbarkeit. - Quellen mit der Dokumentation des Programms liegen auf GitHub, so dass der Code leicht in Übereinstimmung mit der Art von Betriebssystem und einen Satz von Systemelementen konfiguriert ist, die überprüft werden müssen;
    • einfache Verwendung - Es reicht aus, um das Ausführbare Startskript zu erstellen, und ist bereits einsatzbereit.

    Ein Beispiel für Befehle zum Herunterladen des Dienstprogramm mit Github Lagerung und dem anschließenden Start des Skripts ausführen:

    git clone https: //github.com/xalfie/nix-auditor.git.

    cD Nix - Auditor

    chmod + x nixauditor

    . / Nixauditor.

    Ein Beispiel für die Informationsausgabe nach dem Start von Nix-Auditor

    Loki - Einfache IOCA- und Vorfallantwortscanner

    Das Dienstprogramm Loki ist kein vollständig klassisches Werkzeug für Linux Audit durchführen, aber es ist großartig für die Suche nach Spuren von Hacking, das ist aber zum Teil kann auf die Praxis der Prüfung zurückzuführen.

    Laut Entwickler geben solche Funktionen uns Loki - einfachen IOC- und Incident Response-Scanner:

    I. vier Möglichkeiten, Hacking zu identifizieren:

    • dateinamen (Compliance mit dem regulären Ausdruck des vollständigen Dateipfads);
    • Überprüfung der YARA-Regeln (Suche nach Einhaltung der Yara-Unterschriften auf den Inhalt von Dateien und Prozessenspeicher);
    • prüfung und Analyse von Trübung (Vergleichen gescannte Dateien mit Hash (MD5, SHA-1, SHA-256) bekannte schädliche Dateien);
    • das Überprüfen des Feedbacks C2 (vergleicht die Endpunkte der technologischen Verbindung mit C2 IOC).

    II. Zusätzliche Prüfungen:

    • Überprüfen des Regin-Dateisystems (über -Reginfs);
    • Überprüfen der Anomalien von System- und Anwenderprozessen;
    • scannen entpackt SWF;
    • Überprüfung des Sam-Dumps;
    • Überprüfen Sie das Doppelpulsar - Versuch, Backdoor, Höranschlüsse 445 / TCP und 3389 / TCP anzuzeigen.

    Leicht zu berühren, wie das Programm die Tatsache des Hackens bestimmt. Typische Merkmale (Indikatoren für Kompromisse), wodurch der Computer beeinträchtigt wurde (dh gehackt), kann sein:

    • das Erscheinungsbild auf dem Computer von böswilligen (Viren, Backdors, Krypten usw.) sowie Hacker-Dienstprogramme (z. B. zur Untersuchung des Netzwerks, des Betriebs von Schwachstellen, Rechnungslegungsdaten);
    • die Entstehung unbekannter neuer Führungskräfte und andere Dateien, auch wenn sie nicht vom Anti-Virus-Motor als Malware-Code erkannt werden;
    • anomale Netzwerkaktivität (Anschluss an Remote-Hosts, Entdeckung, um Häfen mit unbekannten Programmen und anderen Hörungen zu hören);
    • anomale Aktivität auf Festplattengeräten (E / A) und erhöhter Systemressourcenverbrauch (CPU, RAM, Swap).

    Bevor Sie die Installation starten, müssen Sie mehrere abhängige Pakete anpassen. Dieses Colorama (gibt Farbzeilen in der Konsole), Psutil (Processes check Utility) und, falls noch nicht installiert, YARA-Paket.

    Also fortfahren. Installation in (Vorinstalliertes YARA-Paket, das bereits standardmäßig in Kali Linux installiert ist):

    cD Loki /

    python2 Loki - Upgrader. Py.

    python2 Loki. Py - H.

    Installation in Ubuntu / Debian:

    sudo Apt - Holen Sie sich Yara Python - Yara Python - PIMP-Python - Setuptools Python - dev git

    sudo PIP2 INSTALLIEREN - PIP-Upgrade

    sudo pip2 install - u setutuptools

    sudo pip2 installieren psutil netaddr pylzma colorama

    git Clone https: //github.com/neo23x0/Loki

    cD / Home / Download / Loki

    python2 Loki - Upgrader. Py.

    python2 Loki. Py - H.

    Installation in Blackarch:

    sudo pacman - s yara python2 - pip python2 - yara

    sudo pip2 installieren psutil netaddr pylzma colorama

    git Clone https: //github.com/neo23x0/Loki

    cD / Home / Download / Loki

    python2 Loki - Upgrader. Py.

    python2 Loki. Py - H.

    Beispiel für den Einsatz

    Einige Startoptionen:

    optionale Argumente:

    H, - Hilfe Diese Hilfemeldung anzeigen und beenden

    Die Klingel.

    Es gibt diejenigen, die diese Nachricht vor Ihnen gelesen haben.
    Abonnieren Sie Artikel frisch.
    Email
    Name
    Nachname
    Wie willst du die Glocke lesen?
    Ohne spam.