"Mein Linux sicher machen" oder: Systemsicherheit als Konzept (my 2 ¢)
Hallo,
Hier ein paar Anmerkungen zum Thema Sicherheit von meiner Seite.
Welche Maßnahmen halte ich persönlich für sinnvoll, um seinen Linux-PC abzusichern? Diese Tipps beziehen sich explizit auf die Nutzung einer Linux-Distribution auf einem Heimrechner und nicht für die Einrichtung eines Servers.
0. Statement:
Sicherheit ist KEIN Programm sondern ein Konzept! Die Hauptmaxime lautet dabei: "Weniger ist mehr".
1. Nicht benötigte Dienste abschalten.
- Ein Heim-PC sollte nach aussen hin keine Serverdienste anbieten, die nicht explizit gewünscht sind. Bei einem "normalen" Heim-PC sind das meist gar keine.
- Nehmt die Firewall testweise herunter, unter SuSE geht das als root mit dem Kommando 'SuSEfirewall2 stop'.
- Macht einen Portscan auf Eure Kiste und seht nach, ob Ports als offen angezeigt werden.
- https://www.grc.com/x/ne.dll?bh0bkyd2 => Proceed => "All Service Ports".
- Informiert Euch, welcher Dienst da lauscht und entscheidet, ob Ihr ihn wirklich braucht. Wenn die Antwort "Nein" lautet, dann schaltet Ihr unter SuSE den Dienst über Yast => System => Runleveleditor ab. Lest aber genau die Beschreibung, ob nicht weitere Dienste abgeschaltet werden, Yast ist sehr gesprächig!
- Solltet Ihr hinter einem Router hängen, so konfiguriert diesen vernünftig, das Abschalten von nicht benötigten Systemdiensten ist allerdings TROTZDEM sinnvoll, denn nicht benötigte Dienste fressen nur unnötige Ressourcen, ihr gewinnt also doppelt!
2. Stellt Eure Software mit Internetzugriff sicher ein.
- Ein Mail-Client sollte per default das automatische Nachladen von Code aus html-Mails verbieten. Html hat in Mails eh nichts verloren, Emails sind Text, manche Leute scheinen das vergessen zu haben. Versendet wenn möglich auch selbst nur Mails als Plain-Text und weist Eure Kommunikationspartner höflich darauf hin, daß Ihr lieber Textmails haben wollt.
- Richtet einen Spamfilter ein und trainiert ihn gut.
- Mails, die Euch nicht vertrauenswürdig erscheinen, braucht Ihr nicht zu öffnen, schmeisst sie gleich weg.
- Macht Euch mit GPG/OpenPGP vertraut, denn es dient nicht nur der Verschlüsselung von Emails sondern auch der Authentifizierung.
Ich signiere mittlerweile alle meine Mails, auch die nicht verschlüsselten. Man kann diese Signatur überprüfen und damit feststellen, von wem diese Mail wirklich stammt. Dazu muß man nur einmal dem jeweiligen Absender vertrauen, daß dies seine Signatur ist. Bei einem Bekannten lässt sich das ja leicht überprüfen, indem man ihn fragt.
- Stellt Euren Browser sicher ein und bevorzugt das "Whitelist"-Konzept, welches verschiedene aktive Inhalte nur explizit für bestimmte Seiten erlaubt und ansonsten verbietet. (Java, Java-Script, Cookies, Popups .....)
Das hat zunächst den "Nachteil", daß manche Seiten nicht mehr so bunt und gesprächig sind wie zuvor, aber das halte ich anhand der Flut von Werbung und Popups eher für einen Vorteil.
Wenn eine für Euch wichtige Seite dann nicht mehr so funktioniert, wie Ihr das benötigt, dann gebt für DIESE Seite die entsprechenden Inhalte frei und nur die, die wirklich benötigt werden.
Das hat einen weiteren Vorteil, denn dadurch verschwinden auf einmal auf "mysteriöse Art und Weise" auch viele nervige Popups, Banner und irgendwelches "Flashgezappel".
- Denkt, bevor Ihr klickt!
Ja das ist ein Problem, denn man kann sehr schnell klicken, aber es gibt 2 einfache Lösungen dafür, entweder schneller denken oder langsamer klicken.
3. Nutzt ausschließlich Euren Paketmanager zur Installation von Software und verwendet nur Pakete aus vertrauenswürdigen Quellen.
- Viele Paketmanager besitzen mittlerweile das Feature, nur signierte Pakete zu installieren (siehe auch oben zum Thema GPG/OpenPGP). Sicherheit hat auch IMMER mit Vertrauen zu tun.
- Wenn Ihr also z.B. uns vertraut, daß wir Euch in HowTos für Yast/Apt/smart&co nur Paketquellen nennen, die vertrauenswürdig sind, dann seid Ihr auf der sicheren Seite, denn wir nennen Euch auch nur Quellen, die wir selbst nutzen und mit denen wir gute Erfahrungen gemacht haben.
Einen weiteren Vorteil werdet Ihr auch bemerken, die Anzahl der "Abhängigkeitsprobleme" wird schlagartig auf einen Wert nahe Null sinken, siehe hierzu auch das an dieser Stelle Geschriebene.
4. Virenscanner, Ja oder Nein?
- Wenn Ihr die obigen Vorschläge beherzigt, dann braucht Ihr keinen Virenscanner, zumindest keinen "Virenwächter", der ständig läuft und "On Access" scannt. Warum nicht?
- Ganz Einfach:
Eure ausführbaren Dateien (= Programme) holt Ihr nur aus den Quellen Eures Paketmanagers und was per Email reinkommt, ist a) per default auf einem Linuxsystem eh nicht ausführbar (Ihr müsstet es erst per chmod +x ausführbar machen) und b) Ihr schmeisst es eh weg.
- Die durch einen "On Access"-Scanner (unnötig) belegten Ressourcen bremsen Euch auch zusätzlich das System mehr oder minder stark aus. Wenn Ihr meint, unbedingt einen Virenscanner zu benötigen, dann nutzt diesen "On Demand" und scannt nur explizit die Files, die Ihr checken wollt, das gehört dann auch zur Kategorie "Denken, bevor man klickt" und trainiert das wichtigste "Sicherheitstool" auf einem Linuxsystem, das gute, alte "Brain 1.0".
5. Firewall, Ja oder Nein?
- Hier kann man geteilter Meinung sein. Wenn Ihr keine Dienste habt, die laufen, dann braucht Ihr keine Firewall, habt Ihr Dienste, die erreichbar sein sollen, dann müsst Ihr den entsprechenden Port freigeben und die Firewall schützt diese Dienste nicht, dazu ist sie auch nicht gedacht.
- Ein frisch installiertes Ubuntu ohne extra-Pakete hat z.B. keine Firewall (= iptables-Frontend) installiert, weil es nicht nötig ist, denn es läuft kein einziger von aussen erreichbarer Dienst.
Die Kernelmodule für Netfilter/iptables sind aber im Kernel vorhanden, wer also eine Firewall einrichten möchte, der kann dies tun, z.B. mit "sudo apt-get install firestarter".
- Ein gut konfigurierter Paketfilter kann ein sicher konfiguriertes System ergänzen, es ersetzt aber die sichere Konfiguration des Systems NICHT!
- Anmerkung:
Zwei potentielle Gefahren bieten aber sowohl Firewall als auch Virenscanner, die eine ist technischer, die andere ist "psychologischer" Natur.
a) Je mehr Programme auf meinem System laufen, desto höher ist sogenannte "Codebasis" und desto mehr potentielle Fehlerquellen sind vorhanden. Software wird von Menschen geschrieben und Menschen machen Fehler. Je mehr Software auf einem System läuft, desto mehr Fehler werden drin sein. Bei der Verwendung von iptables ist diese Gefahr i.d.R geringer einzuschätzen als bei einem Virenscanner, der mit Sicherheit deutlich mehr Code enthält als die iptables Kernelmodule.
b) Das trügerische Gefühl, daß man ja nun "sicher" ist, weil man irgendeine tolle Software verwendet, die einen schützt. Siehe dazu mein "Statement".
6. Benutzt Euer Linuxsystem so, wie es das System auch vorsieht.
- Loggt Euch NIEMALS graphisch als root ein. Dann laufen ALLE Programme mit Rootrechten, auch die, die diese erhöhten Rechte nicht benötigen.
Wieso sollte ich denn eine gesamte (KDE)-Sitzung als root starten, wenn ich nur eine Einstellung mit Yast vornehmen will? Dazu muß nur Yast mit Rootrechten gestartet werden.
Hierfür gibt es "su, sudo kdesu und gnomesu/gksu". Holt Euch also als normaler User immer nur die erhöhten Rechte für das jeweils benötigte Programm.
- Anwendungen sollten immer mit den niedrigst möglichen Rechten gestartet werden, ein Programm, daß als User gestartet den nötigen Zweck erfüllt, läuft als root nicht besser!
- Haltet Euer System sicherheitstechnisch auf dem aktuellsten Stand und spielt Sicherheitspatches ZEITNAH ein. Dazu müsst Ihr nicht mal viel tun, jede moderne Distribution bietet zumindest einen Mechanismus an, der automatisch nach Updates sucht und sie Euch meldet. Das bedeutet NICHT, daß Ihr Euch zig Installationsquellen einbinden müsst, eher das Gegenteil. Bindet unbedingt ZUERST eine Updatequelle Eures Distributors ein und so wenige zusätzliche Quellen, wie unbedingt nötig.
7. Last but not Least, ein paar allgemeine Bemerkungen:
Haltet Euch an das "KISS"-Prinzip:
"Keep It Small and Simple", weniger ist mehr!
Viele dieser Ratschläge sehen nach eigenständiger Arbeit aus, das stimmt auch, denn es soll den User dazu bringen, sich Gedanken zu machen und sich nicht blind auf irgendwelche tollen Tools zu verlassen, die ihn dazu verleiten, sich in falscher Sicherheit zu wiegen.
Die Verwendung gewisser Tools rate ich ja oben explizit an, aber alle erfordern das Mitdenken des Benutzers.
Die beste Software nutzt nichts, wenn sie miserabel konfiguriert ist!
Sicherheit hat IMMER mit Vertrauen zu tun, Paranoia ist der falsche Weg.
Seid Euch immer bewusst, daß es 100% Sicherheit nicht geben kann!
Sollten Euch diese Tipps so vorkommen, als wären sie vom Prinzip her eigentlich unabhängig vom verwendeten Betriebssystem, dann habt Ihr vollkommen recht!
Eine moderne Linux-Distribution bietet Euch ausserdem einen sehr einfachen Zugang zur erfolgreichen Anwendung dieses Konzepts, also macht davon auch Gebrauch.
Greetz,
RM
Hallo,
Hier ein paar Anmerkungen zum Thema Sicherheit von meiner Seite.
Welche Maßnahmen halte ich persönlich für sinnvoll, um seinen Linux-PC abzusichern? Diese Tipps beziehen sich explizit auf die Nutzung einer Linux-Distribution auf einem Heimrechner und nicht für die Einrichtung eines Servers.
0. Statement:
Sicherheit ist KEIN Programm sondern ein Konzept! Die Hauptmaxime lautet dabei: "Weniger ist mehr".
1. Nicht benötigte Dienste abschalten.
- Ein Heim-PC sollte nach aussen hin keine Serverdienste anbieten, die nicht explizit gewünscht sind. Bei einem "normalen" Heim-PC sind das meist gar keine.
- Nehmt die Firewall testweise herunter, unter SuSE geht das als root mit dem Kommando 'SuSEfirewall2 stop'.
- Macht einen Portscan auf Eure Kiste und seht nach, ob Ports als offen angezeigt werden.
- https://www.grc.com/x/ne.dll?bh0bkyd2 => Proceed => "All Service Ports".
- Informiert Euch, welcher Dienst da lauscht und entscheidet, ob Ihr ihn wirklich braucht. Wenn die Antwort "Nein" lautet, dann schaltet Ihr unter SuSE den Dienst über Yast => System => Runleveleditor ab. Lest aber genau die Beschreibung, ob nicht weitere Dienste abgeschaltet werden, Yast ist sehr gesprächig!
- Solltet Ihr hinter einem Router hängen, so konfiguriert diesen vernünftig, das Abschalten von nicht benötigten Systemdiensten ist allerdings TROTZDEM sinnvoll, denn nicht benötigte Dienste fressen nur unnötige Ressourcen, ihr gewinnt also doppelt!
2. Stellt Eure Software mit Internetzugriff sicher ein.
- Ein Mail-Client sollte per default das automatische Nachladen von Code aus html-Mails verbieten. Html hat in Mails eh nichts verloren, Emails sind Text, manche Leute scheinen das vergessen zu haben. Versendet wenn möglich auch selbst nur Mails als Plain-Text und weist Eure Kommunikationspartner höflich darauf hin, daß Ihr lieber Textmails haben wollt.
- Richtet einen Spamfilter ein und trainiert ihn gut.
- Mails, die Euch nicht vertrauenswürdig erscheinen, braucht Ihr nicht zu öffnen, schmeisst sie gleich weg.
- Macht Euch mit GPG/OpenPGP vertraut, denn es dient nicht nur der Verschlüsselung von Emails sondern auch der Authentifizierung.
Ich signiere mittlerweile alle meine Mails, auch die nicht verschlüsselten. Man kann diese Signatur überprüfen und damit feststellen, von wem diese Mail wirklich stammt. Dazu muß man nur einmal dem jeweiligen Absender vertrauen, daß dies seine Signatur ist. Bei einem Bekannten lässt sich das ja leicht überprüfen, indem man ihn fragt.
- Stellt Euren Browser sicher ein und bevorzugt das "Whitelist"-Konzept, welches verschiedene aktive Inhalte nur explizit für bestimmte Seiten erlaubt und ansonsten verbietet. (Java, Java-Script, Cookies, Popups .....)
Das hat zunächst den "Nachteil", daß manche Seiten nicht mehr so bunt und gesprächig sind wie zuvor, aber das halte ich anhand der Flut von Werbung und Popups eher für einen Vorteil.
Wenn eine für Euch wichtige Seite dann nicht mehr so funktioniert, wie Ihr das benötigt, dann gebt für DIESE Seite die entsprechenden Inhalte frei und nur die, die wirklich benötigt werden.
Das hat einen weiteren Vorteil, denn dadurch verschwinden auf einmal auf "mysteriöse Art und Weise" auch viele nervige Popups, Banner und irgendwelches "Flashgezappel".
- Denkt, bevor Ihr klickt!
Ja das ist ein Problem, denn man kann sehr schnell klicken, aber es gibt 2 einfache Lösungen dafür, entweder schneller denken oder langsamer klicken.
3. Nutzt ausschließlich Euren Paketmanager zur Installation von Software und verwendet nur Pakete aus vertrauenswürdigen Quellen.
- Viele Paketmanager besitzen mittlerweile das Feature, nur signierte Pakete zu installieren (siehe auch oben zum Thema GPG/OpenPGP). Sicherheit hat auch IMMER mit Vertrauen zu tun.
- Wenn Ihr also z.B. uns vertraut, daß wir Euch in HowTos für Yast/Apt/smart&co nur Paketquellen nennen, die vertrauenswürdig sind, dann seid Ihr auf der sicheren Seite, denn wir nennen Euch auch nur Quellen, die wir selbst nutzen und mit denen wir gute Erfahrungen gemacht haben.
Einen weiteren Vorteil werdet Ihr auch bemerken, die Anzahl der "Abhängigkeitsprobleme" wird schlagartig auf einen Wert nahe Null sinken, siehe hierzu auch das an dieser Stelle Geschriebene.
4. Virenscanner, Ja oder Nein?
- Wenn Ihr die obigen Vorschläge beherzigt, dann braucht Ihr keinen Virenscanner, zumindest keinen "Virenwächter", der ständig läuft und "On Access" scannt. Warum nicht?
- Ganz Einfach:
Eure ausführbaren Dateien (= Programme) holt Ihr nur aus den Quellen Eures Paketmanagers und was per Email reinkommt, ist a) per default auf einem Linuxsystem eh nicht ausführbar (Ihr müsstet es erst per chmod +x ausführbar machen) und b) Ihr schmeisst es eh weg.
- Die durch einen "On Access"-Scanner (unnötig) belegten Ressourcen bremsen Euch auch zusätzlich das System mehr oder minder stark aus. Wenn Ihr meint, unbedingt einen Virenscanner zu benötigen, dann nutzt diesen "On Demand" und scannt nur explizit die Files, die Ihr checken wollt, das gehört dann auch zur Kategorie "Denken, bevor man klickt" und trainiert das wichtigste "Sicherheitstool" auf einem Linuxsystem, das gute, alte "Brain 1.0".
5. Firewall, Ja oder Nein?
- Hier kann man geteilter Meinung sein. Wenn Ihr keine Dienste habt, die laufen, dann braucht Ihr keine Firewall, habt Ihr Dienste, die erreichbar sein sollen, dann müsst Ihr den entsprechenden Port freigeben und die Firewall schützt diese Dienste nicht, dazu ist sie auch nicht gedacht.
- Ein frisch installiertes Ubuntu ohne extra-Pakete hat z.B. keine Firewall (= iptables-Frontend) installiert, weil es nicht nötig ist, denn es läuft kein einziger von aussen erreichbarer Dienst.
Die Kernelmodule für Netfilter/iptables sind aber im Kernel vorhanden, wer also eine Firewall einrichten möchte, der kann dies tun, z.B. mit "sudo apt-get install firestarter".
- Ein gut konfigurierter Paketfilter kann ein sicher konfiguriertes System ergänzen, es ersetzt aber die sichere Konfiguration des Systems NICHT!
- Anmerkung:
Zwei potentielle Gefahren bieten aber sowohl Firewall als auch Virenscanner, die eine ist technischer, die andere ist "psychologischer" Natur.
a) Je mehr Programme auf meinem System laufen, desto höher ist sogenannte "Codebasis" und desto mehr potentielle Fehlerquellen sind vorhanden. Software wird von Menschen geschrieben und Menschen machen Fehler. Je mehr Software auf einem System läuft, desto mehr Fehler werden drin sein. Bei der Verwendung von iptables ist diese Gefahr i.d.R geringer einzuschätzen als bei einem Virenscanner, der mit Sicherheit deutlich mehr Code enthält als die iptables Kernelmodule.
b) Das trügerische Gefühl, daß man ja nun "sicher" ist, weil man irgendeine tolle Software verwendet, die einen schützt. Siehe dazu mein "Statement".
6. Benutzt Euer Linuxsystem so, wie es das System auch vorsieht.
- Loggt Euch NIEMALS graphisch als root ein. Dann laufen ALLE Programme mit Rootrechten, auch die, die diese erhöhten Rechte nicht benötigen.
Wieso sollte ich denn eine gesamte (KDE)-Sitzung als root starten, wenn ich nur eine Einstellung mit Yast vornehmen will? Dazu muß nur Yast mit Rootrechten gestartet werden.
Hierfür gibt es "su, sudo kdesu und gnomesu/gksu". Holt Euch also als normaler User immer nur die erhöhten Rechte für das jeweils benötigte Programm.
- Anwendungen sollten immer mit den niedrigst möglichen Rechten gestartet werden, ein Programm, daß als User gestartet den nötigen Zweck erfüllt, läuft als root nicht besser!
- Haltet Euer System sicherheitstechnisch auf dem aktuellsten Stand und spielt Sicherheitspatches ZEITNAH ein. Dazu müsst Ihr nicht mal viel tun, jede moderne Distribution bietet zumindest einen Mechanismus an, der automatisch nach Updates sucht und sie Euch meldet. Das bedeutet NICHT, daß Ihr Euch zig Installationsquellen einbinden müsst, eher das Gegenteil. Bindet unbedingt ZUERST eine Updatequelle Eures Distributors ein und so wenige zusätzliche Quellen, wie unbedingt nötig.
7. Last but not Least, ein paar allgemeine Bemerkungen:
Haltet Euch an das "KISS"-Prinzip:
"Keep It Small and Simple", weniger ist mehr!
Viele dieser Ratschläge sehen nach eigenständiger Arbeit aus, das stimmt auch, denn es soll den User dazu bringen, sich Gedanken zu machen und sich nicht blind auf irgendwelche tollen Tools zu verlassen, die ihn dazu verleiten, sich in falscher Sicherheit zu wiegen.
Die Verwendung gewisser Tools rate ich ja oben explizit an, aber alle erfordern das Mitdenken des Benutzers.
Die beste Software nutzt nichts, wenn sie miserabel konfiguriert ist!
Sicherheit hat IMMER mit Vertrauen zu tun, Paranoia ist der falsche Weg.
Seid Euch immer bewusst, daß es 100% Sicherheit nicht geben kann!
Sollten Euch diese Tipps so vorkommen, als wären sie vom Prinzip her eigentlich unabhängig vom verwendeten Betriebssystem, dann habt Ihr vollkommen recht!
Eine moderne Linux-Distribution bietet Euch ausserdem einen sehr einfachen Zugang zur erfolgreichen Anwendung dieses Konzepts, also macht davon auch Gebrauch.
Greetz,
RM