Tutorials - Ein sicheres Linux System aufsetzen Teil 2.0 - Linux mit /proc härten

Sprachenübersicht/Betriebssysteme/Linux/Security

Ein sicheres Linux System aufsetzen Teil 2.0 - Linux mit /proc härten

Diese Seite wurde 11882 mal aufgerufen.

Dieser Artikel wurde in einem Wikiweb System geschrieben, das heißt, Sie können die Artikel jederzeit editieren, wenn Sie einen Fehler gefunden haben, oder etwas hinzufügen wollen.

Editieren Versionen Linkpartnerschaft Bottom Printversion

Keywords: /proc, security, linux härten, linux sicherheit, security

Abbildung

Inhaltsverzeichnis



Vorwort Top



Diese Tutorialserie beschäftigt sich damit, ein sicheres Linux-System aufzusetzen. Im ersten Teil wurde beschrieben, wie man den Linux-Kernel mit SELinux patcht, und SELinux installiert. Im zweiten Teil wurde das Konfigurieren von SELinux behandelt.

Dieser Teil beschäftigt sich mit dem /proc Dateisystem von Linux.

Tutorials in dieser Artikelserie Top







  • Teil 2.0 - Linux mit /proc härten




Einführung Top



Die meisten modernen Betriebssysteme, die den Linux Kernel benutzen, benutzen das proc Dateisystem, ein virtuelles Dateisystem, das Informationen und flags für den Linux Kernel bereitstellt. Es wird in /proc gemounted.

In diesem Tutorial werden wir die flags die in /proc/sys eingestellt werden können, und den Netzwerkverkehr beinflussen anschauen.

Das /proc Verzeichnis Top



Falls Sie sich über /proc informieren wollen sollten Sie sich man proc anschauen, hier sind alle Dateien innerhalb vom proc Dateisystem beschrieben. Die Datei /usr/src/linux/Documentation/filesystems/proc.txt stellt ebenfalls eine gute Beschreibung dar, und /usr/src/linux/Documentation/networking/ip-sysctl.txt beschreibt die flags die in diesem Tutorial besprochen werden sehr gut.

Das Verzeichnis in dem wir arbeiten werden ist /proc/sys/net/ipv4/conf, in diesem Verzeichnis befindet sich ein Verzeichnis für jedes Netzwerk-Interface (eth0/ , eth1/, ppp0/) und die Verzeichnisse default/ (wenn ein neues Interface dazu kommt (PCMCIA-Karte, VPN, ...) bekommen die Variablen den Wert aus default/) und all/ (alle anderen Verzeichnisse inklusive default/ werden geändert).

Die Netzwerkflags Top



Die flags im /proc Verzeichnis können mit einem simplen echo Wert > Dateiname geändert werden. Die Änderung ist nicht permament, und muss deshalb nach jedem neustart geänder werden.

Hier sind die für uns relevanten flags aufgelistet:

  • echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

    Wenn diese Option aktiviert wird, werden ICMP echo Abfragen komplett abgeschalten, viele Personal Firewalls bieten diese Option an, es gibt allerdings keinen Grund Sie zu nutzen, ein Angreifer weiß trotzdem das der Computer online ist.



  • echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

    Wenn diese Option aktiviert ist, werden broadcast, und multicast pings deaktiviert. Sie kann von einer unfreiwilligen Teilnahme an einem DDOS Angriff (z.B: Smurf) schützen.



  • echo 0 > /proc/sys/net/ipv4/conf/*/accept_source_route

    Wenn dieses flag auf 0 ist, werden IP-Pakete mit der Source-Route-Option (der Sender des Pakets bestimmt die route für das Paket) verworfen. Source routing wird eigentlich nicht gebraucht, und kann gefahrenlos abgeschaltet werden.



  • echo 0 > /proc/sys/net/ipv4/conf/*/accept_redirects

    Normalerweise wird ein Paket das in ein anderes subnet soll an ein Gateway geschickt, mit einem ICMP redirect schickt kann das Gateway mitteilen das ein anderer router eine bessere Route für das Paket hat. Ein cracker kann das für eine man-in-the-middle Attacke ausnützen. Diese Option sollte IMMER auf 0 sein.



  • echo 1 > /proc/sys/net/ipv4/conf/*/log_martians

    Wenn diese Option aktiviert ist, loggt der Kernel Pakete mit ungültigen Adressen.



  • echo 0 > /proc/sys/net/ipv4/ip_forward

    Diese Option erlaubt es Pakete weiterzuleiten, wenn keine Pakete geroutet werden müssen sollte es besser ausgeschaltet sein.



  • echo Integer > /proc/sys/net/ipv4/ipfrag_high_thresh
    echo Integer > /proc/sys/net/ipv4/ipfrag_low_thresh


    ipfrag_high_thresh setzt das Limit für den maximalen Speicher, der für das fragmentieren von Paketen reserviert wird. Wenn mehr Speicher benötigt wird fängt der Kernel an fragmentierte Pakete zu verwerfen. Dieses Limit ist sehr kritisch für Denial of Service Angriffe, da es, wenn es zu niedrig gewählt wird zu viele Pakete verwirft, und wenn es zu hoch gewählt wird zu viel Speicher, und CPU Leistung verbrauchen kann.

    ipfrag_low_thresh ist für das minimale Limit zuständig.



  • echo Integer > /proc/sys/net/ipv4/icmp_ratemask

    Ein logisches OR von allen ICMP codierungen die in den Filter für icmp_ratelimit fallen sollen. (siehe /usr/include/linux/icmp.h) Standardmässig beinhaltet sie destination unreachable, source quench, time exceeded und parameter problem.
    Das Limit kann potenzielle Portscanns verlangsamen, aber auch Werkzeuge die nach Netzwerk fehlern suchen blockieren.



  • echo Integer > /proc/sys/net/ipv4/ipfrag_time

    Diese Option stellt die Anzahl der Sekunden ein, die der Kernel wartet bis er IP Pakete verwirft, die fragmentiert sind. Wenn Angreifer gefälschte fragmentierte Pakete schicken, kann man mit einer Verringerung erreichen das der Computer sich besser um normale Verbindungen kümmern kann.



  • echo Integer > /proc/sys/net/ipv4/icmp_ratelimit

    Dieser Integer stellt ein wie viele Pakete, die in den Filter von /proc/sys/net/ipv4/icmp_ratemask fallen per jiffie (Zeiteinheit, auf den meisten Architekturen f=100Hz) erlaubt sind.



  • echo Integer > /proc/sys/net/ipv4/neigh/*/locktime

    Diese Option legt fest, wie alt(in jiffies) die letzte ARP-Adressen Änderung sein muss, damit das Paket nicht verworfen wird. Eine Erhöhung kann "ARP cache thrashing" verhindern.



  • echo 0 > /proc/sys/net/ipv4/conf/*/proxy_arp

    Diese Option sorgt dafür das auf eine ARP Anfrage nicht geantwortet wird, wenn wir nach einer route zum host gefragt werden. Es sollte auf 0 gesetzt werden.



  • echo Integer > /proc/sys/net/ipv4/neigh/*/gc_stale_time

    Gibt an, wie oft alte ARP Einträge pro Sekunde gelöscht werden, und eine neue ARP abfrage gestellt wird. Niedrige Werte helfen dem Server dabei schnell eine IP zu übernehmen, machen aber gegen ARP-poisoning Angriffe verwundbarer.



  • echo 0 > /proc/sys/net/ipv4/tcp_syncookies (CONFIG_SYNCOOKIES muss in den Kernel einkompiliert sein)

    Die Aktivierung von SYN cookies hilft dabei gegen SYN-flood Angriffe (eine DOS Attacke) zu schützen. Bei einem SYN flood Angriff sendet ein Angreifer viele(oft gefälschte) SYN Pakete zum Opfer, ohne jemals den kompletten three-way-handshake zu vollenden. Das führt dazu, das der Kernel sehr viele halb offene Verbindungen hat, und behindert neue Verbindungen.

    Wenn SYN cookies aktiviert sind, dann sendet der Kernel als Antwort auf ein SYN Packet eine spezielle Sequenz-Nummer, der Angreifer kann dann nicht mehr weiter machen, wenn er Pakete mit einer gefälschten Adresse geschickt hat, da er ohne die spezielle Sequenz-Nummer die nächste Sequenz-Nummer nicht kennen kann.

    Hier finden Sie mehr zum Thema SYN cookies.



Schlusswort Top



Der Linux Kernel hat ein paar interessante Einstellungen für die Sicherheit von Netzwerken, die wir gerlernt haben zu benutzen. Das Thema für das nächste Tutorial steht noch nicht fest, ich werde mir noch was überlegen.

Gibt es noch irgendwelche Fragen, oder wollen Sie über den Artikel diskutieren?

Editieren Versionen Linkpartnerschaft Top Printversion

Haben Sie einen Fehler gefunden? Dann klicken Sie doch auf Editieren, und beheben den Fehler, keine Angst, Sie können nichts zerstören, das Tutorial kann wiederhergestellt werden

Sprachenübersicht/Betriebssysteme/Linux/Security/Ein sicheres Linux System aufsetzen Teil 2.0 - Linux mit /proc härten