Einleitung: Warum Audit und Protokollierung wichtig sind
Audit und Protokollierung auf Ubuntu Server sind unerlässlich, um die Sicherheit, Zuverlässigkeit und Rechenschaftspflicht Ihres Ubuntu-Servers zu gewährleisten. Sie geben Einblicke in Systemaktivitäten, helfen bei der Erkennung von Anomalien und sind entscheidend für die Einhaltung regulatorischer Anforderungen wie GDPR, HIPAA oder PCI-DSS.
Viele Systeme aktivieren die Prüfung jedoch nicht, weil sie Bedenken hinsichtlich des Speicherplatzverbrauchs haben oder weil ihnen Tools zur effektiven Analyse der Daten fehlen. In diesem Artikel gehen wir auf diese Bedenken ein und führen Sie durch die praktische und skalierbare Implementierung von Prüfung und Protokollierung.
Behandelte Themen:
- Praxisanwendung und Herausforderungen der Prüfung.
- Verwendung von auditd zur Verfolgung und Aufzeichnung von Systemereignissen.
- Speicherplatzplanung für Audit-Protokolle.
- Tools zur Analyse von Audit-Protokollen und Systemprotokollen.
- Konfigurieren der Protokollrotation mit logrotate.
- Erweiterte Überwachungs- und Audit-Praktiken
Früherer Artikel:
01. Einführung in Ubuntu Server – SysOSX: AI & Cloud
02. So richten Sie Ihren ersten Ubuntu-Server ein: Ein Leitfaden für Anfänger – SysOSX: AI & Cloud
03. Die Linux-Befehlszeile für Ubuntu Server beherrschen – SysOSX: AI & Cloud
05. Netzwerkgrundlagen für Ubuntu Server: Ein umfassender Leitfaden – SysOSX: AI & Cloud
07.Ubuntu Server patchen und aktualisieren: Ein umfassender Leitfaden – SysOSX: AI & Cloud
1. Praxisanwendung der Systemprüfung
Warum viele Systeme auf Audits verzichten
Obwohl die Prüfung leistungsstark ist, vermeiden viele Administratoren ihre Aktivierung aus den folgenden Gründen:
- Speicherplatzverbrauch: Audit-Protokolle können schnell wachsen, besonders auf stark frequentierten Systemen, und erheblichen Speicherplatz verbrauchen.
- Leistungsaufwand: Die Aktivierung detaillierter Prüfungen kann die Systemleistung leicht belasten.
- Komplexität: Audit-Protokolle sind ausführlich und erfordern spezielle Tools zur Analyse.
Planung der Prüfung
Speicherplatzplanung
So planen Sie die Prüfung effektiv:
- Protokollwachstum schätzen: Überwachen Sie die Wachstumsraten der Protokolle, indem Sie die Prüfung vorübergehend aktivieren und die Größe der Protokolle über eine Woche messen.
sudo du -sh /var/log/audit/Verwenden Sie diese Daten, um den täglichen, wöchentlichen und monatlichen Speicherbedarf zu berechnen. - Dedizierten Speicher reservieren: Speichern Sie Audit-Protokolle auf einer separaten Partition oder Platte, damit die Protokolle das Root-Dateisystem nicht füllen. Zum Beispiel:
- Erstellen Sie eine Partition für Protokolle:
/var/log/audit. - Verwenden Sie Tools wie
lvcreate(Logical Volume Manager), um den Speicher bei Bedarf dynamisch zu erweitern.
- Erstellen Sie eine Partition für Protokolle:
- Komprimierung aktivieren: Verwenden Sie
logrotateum alte Audit-Protokolle zu komprimieren und so den Speicherbedarf deutlich zu reduzieren. - Aufbewahrungsrichtlinien: Legen Sie Aufbewahrungsrichtlinien fest, die auf den Anforderungen Ihrer Organisation basieren. Zum Beispiel:
- Protokolle 30 Tage lang zur Fehlerbehebung aufbewahren.
- Ältere Protokolle für Compliance-Zwecke auf externen Speicher archivieren.
Leistungsaspekte
Die Auswirkungen von Auditd auf die Leistung sind für die meisten Systeme minimal. Bei Servern mit hohem Datenverkehr (z. B. Webserver oder Datenbankserver) sollten Sie jedoch nach der Aktivierung der Prüfung die CPU- und E/A-Auslastung überwachen. Falls erforderlich:
- Beschränken Sie den Umfang der Audit-Regeln auf kritische Dateien oder Verzeichnisse, anstatt das gesamte System zu überwachen.
- Verwenden Sie Stichprobenverfahren, um die Häufigkeit der Protokolle zu reduzieren.
2. Verwendung von auditd zur Verfolgung und Aufzeichnung von Systemereignissen
Das auditd Tool bleibt eine der robustesten Lösungen für die Systemprüfung. Nachfolgend finden Sie weitere Überlegungen für den praktischen Einsatz.
Erweiterte Audit-Regeln
Anstatt jede Datei zu prüfen, konzentrieren Sie sich auf kritische Bereiche:
- Systemkonfigurationsdateien:
sudo auditctl -w /etc/ssh/sshd_config -p wa -k ssh_config_changes
- Sensible Verzeichnisse:
sudo auditctl -w /var/www/html -p rwxa -k web_access
- Benutzeraktivitäten:
Bestimmte Benutzer oder Gruppen überwachen:
sudo auditctl -a always,exit -F uid=1001 -F arch=b64 -S execve -k user_commands
Tools zur Analyse von Audit-Protokollen
Audit-Protokolle können überwältigend sein, aber mehrere Tools können helfen, die Daten zu verarbeiten und zu analysieren:
- Aureport: Erstellt zusammenfassende Berichte aus Audit-Protokollen.
sudo aureport --summary - Auditbeat: Ein leichtgewichtiges Tool von Elastic, um Audit-Protokolle zur Visualisierung und Analyse an einen zentralen ELK-Stack zu senden.
- Auditbeat installieren:
sudo apt install auditbeat - Konfigurieren Sie es so, dass Protokolle an Elasticsearch oder Logstash gesendet werden.
- Auditbeat installieren:
- Splunk: Ein kommerzielles Tool zur Protokollanalyse mit erweiterten Such- und Berichtsfunktionen.
3. Speicherplatzplanung für Audit-Protokolle
Beispiel für einen Speicherplatzplan
Nehmen wir an:
- Tägliche Audit-Protokolle verbrauchen 500 MB.
- Protokolle werden wöchentlich rotiert und auf 20 % ihrer ursprünglichen Größe komprimiert.
Berechnung des Speicherplatzes:
- Unkomprimierte Protokolle für 7 Tage: 500 MB×7=3.5 GB500MB×7=3.5GB
- Komprimierte Protokolle für 30 Tage: 500 MB×30×0.2=3 GB500MB×30×0.2=3GB
- Insgesamt benötigter Speicher: 3.5 GB+3 GB=6.5 GB3.5GB+3GB=6.5GB
Reservieren Sie mindestens 10 GB, um unerwartete Spitzen abzufangen.
4. Konfigurieren der Protokollrotation mit logrotate
Die Protokollrotation ist entscheidend, um die Größe der Protokolle zu verwalten. Nachfolgend finden Sie erweiterte Konfigurationen für Audit-Protokolle und Systemprotokolle.
Audit-Protokolle rotieren
Audit-Protokolle werden automatisch vom auditd Daemon verwaltet. Um die Rotation anzupassen:
- Bearbeiten Sie die
/etc/audit/auditd.confDatei:
max_log_file = 50 # Maximum size in MB for audit.log
max_log_file_action = rotate # Rotate logs when size exceeds limit
- Konfiguration testen:
sudo service auditd restart
Andere Protokolle rotieren
Verwenden Sie für Nicht-Audit-Protokolle logrotate:
- Beispiel für
/var/log/syslog:
/var/log/syslog {
weekly
rotate 4
compress
missingok
notifempty
create 0640 root root
}
5. Erweiterte Überwachungs- und Audit-Praktiken
Echtzeit-Protokollüberwachung
Echtzeitüberwachung ist unerlässlich, um kritische Ereignisse zu erkennen. Hier sind Tools und Techniken:
- Logwatch: Fasst tägliche Protokolle zusammen und sendet sie per E-Mail an Administratoren.
sudo apt install logwatchKonfigurieren Sie es in/etc/logwatch/conf/logwatch.conf. - Zentralisierte Protokollverwaltung:
- Rsyslog: Leitet Protokolle an einen zentralen Server weiter.
sudo apt install rsyslogKonfigurieren Sie/etc/rsyslog.confso, dass Protokolle an einen Remote-Server gesendet werden. - Graylog: Bietet eine webbasierte Oberfläche für die Protokollanalyse.
- ELK Stack: Elasticsearch, Logstash und Kibana für skalierbares Protokollmanagement.
- Rsyslog: Leitet Protokolle an einen zentralen Server weiter.
Sicherheitsorientierte Überwachung
- Fail2ban: Überwacht Protokolle auf fehlgeschlagene Anmeldeversuche und sperrt IPs.
sudo apt install fail2ban
- Tripwire: Erkennt Dateiänderungen zur Einbruchserkennung.
sudo apt install tripwire
Warnmeldungen integrieren
Richten Sie Warnmeldungen für kritische Ereignisse mit Tools wie den folgenden ein:
- Nagios: Überwacht Serverzustand und Protokolle auf Anomalien.
- Prometheus with Grafana: Verfolgt Metriken und Protokolle in Echtzeit.
Speicherorte von Protokolldateien
Es gibt viele verschiedene Protokolldateien, die alle unterschiedlichen Zwecken dienen. Wenn Sie nach einem Protokoll zu einem bestimmten Thema suchen, sollten Sie zunächst die relevanteste Datei ermitteln. Nachfolgend finden Sie eine Liste gängiger Speicherorte von Protokolldateien.
Systemprotokolle
Systemprotokolle befassen sich genau damit – dem Ubuntu-System – im Gegensatz zu zusätzlichen Anwendungen, die der Benutzer hinzugefügt hat. Diese Protokolle können Informationen über Autorisierungen, System-Daemons und Systemmeldungen enthalten.
Autorisierungsprotokoll
Speicherort: /var/log/auth.log
Verfolgt Autorisierungssysteme, wie z. B. Passwortabfragen, den sudo Befehl und Remote-Anmeldungen.
Daemon-Protokoll
Speicherort: /var/log/daemon.log
Daemons sind Programme, die im Hintergrund laufen, normalerweise ohne Benutzerinteraktion. Zum Beispiel Anzeigeserver, SSH-Sitzungen, Druckdienste, Bluetooth und mehr.
Debug-Protokoll
Speicherort: /var/log/debug
Liefert Debugging-Informationen vom Ubuntu-System und von Anwendungen.
Kernel-Protokoll
Speicherort: /var/log/kern.log
Protokolle vom Linux-Kernel.
Systemprotokoll
Speicherort: /var/log/syslog
Enthält weitere Informationen über Ihr System. Wenn Sie in den anderen Protokollen nichts finden, steht es wahrscheinlich hier.
Anwendungsprotokolle
Einige Anwendungen erstellen ebenfalls Protokolle in /var/log. Nachfolgend finden Sie einige Beispiele.
Apache-Protokolle
Speicherort: /var/log/apache2/ (Unterverzeichnis)
Apache erstellt mehrere Protokolldateien im /var/log/apache2/ Unterverzeichnis. Die access.log Datei zeichnet alle Anfragen auf, die zum Zugriff auf Dateien an den Server gestellt werden. error.log zeichnet alle vom Server ausgegebenen Fehler auf.
X11-Serverprotokolle
Speicherort: /var/log/Xorg.0.log
Der X11-Server erstellt für jede Ihrer Anzeigen eine separate Protokolldatei. Die Anzeigenummern beginnen bei null, sodass Ihre erste Anzeige (Anzeige 0) Folgendes als Protokolldatei nutzt: Xorg.0.log. Die nächste Anzeige (Anzeige 1) würde Folgendes nutzen: Xorg.1.log, und so weiter.
Nicht menschenlesbare Protokolle
Nicht alle Protokolldateien sind dafür gedacht, von Menschen gelesen zu werden. Einige wurden dafür gemacht, von Anwendungen analysiert zu werden. Nachfolgend finden Sie einige Beispiele.
Protokoll der Anmeldefehler
Speicherort: /var/log/faillog
Enthält Informationen über Anmeldefehler. Sie können es mit dem faillog Befehl ansehen.
Protokoll der letzten Anmeldungen
Speicherort: /var/log/lastlog
Enthält Informationen über die letzten Anmeldungen. Sie können es mit dem lastlog Befehl ansehen.
Anmeldeaufzeichnungen
Speicherort: /var/log/wtmp
Enthält Anmeldeinformationen, die von anderen Dienstprogrammen verwendet werden, um herauszufinden, wer angemeldet ist. Um aktuell angemeldete Benutzer anzuzeigen, verwenden Sie den who Befehl.
Fazit
Prüfung und Protokollierung sind unerlässlich, um einen sicheren und zuverlässigen Ubuntu-Server zu betreiben. Durch sorgfältige Speicherplatzplanung, den Einsatz von Tools zur Protokollanalyse und die Implementierung erweiterter Überwachungspraktiken können Sie gängige Herausforderungen bewältigen und bessere Einblicke in Systemaktivitäten gewinnen.
Ob Sie Compliance-Anforderungen verwalten oder Ihren Server proaktiv absichern – die in diesem Artikel besprochenen Techniken und Tools helfen Ihnen, eine skalierbare und effektive Strategie für Protokollierung und Prüfung aufzubauen.
Als Nächstes: Systemüberwachungs-Tools für Ubuntu Server
Im nächsten Artikel tauchen wir tiefer ein in Überwachung und Leistungsmanagement. Wir erkunden leistungsstarke Systemüberwachungs-Tools für Ubuntu Server, darunter Lösungen wie Nagios, Prometheus, Grafana und htop, um Ressourcennutzung zu verfolgen, Engpässe zu erkennen und die Serverleistung zu optimieren.
Bleiben Sie dran und erfahren Sie, wie Sie Ihren Server effizient am Laufen halten und potenzielle Probleme proaktiv angehen, bevor sie Ihren Betrieb beeinträchtigen!
3 thoughts on “09. Audit and Logging on Ubuntu Server: A Comprehensive Guide”