[Home] [1.] [2.] [3.] [4.] [5.] [6.] [7.] [8.]


7. Security & Firewall

In diesem Abschnitt konfigurieren wir einen Paketfilter (aka Firewall) auf allen lokalen Rechnern. Diese sollen (falls Kap. 4 schon durchgearbeitet wurde) die verschiedenen NFS/NIS Domänen im PC-Raum voreinanderschützen. Die Services sollen nur innerhalb der Domänen benutzbar sein, dort aber klaglos funktionieren! Weiters soll der Webserver geschützt werden.
  1. Vorabeiten
    Schalte zunächst alle nicht benötigten Dienste auf deinem System ab; Laufen sollen NFS/NIS nur auf dem Server; auf den Clients läuft nur der Portmapper, auf allen Rechnern der sshd und der Webserver. Insbesondere schalte den inetd ab.

  2. Als ersten Schritt implementieren wir folgende Reglen:
    Die NFS/NIS-Clients und Server sollen jeweils aufeinander vollen Zugriff haben. Der sshd soll von überall aus ereicht werden können; ebenso soll ICMP von überall aus zugelassen werden. Der Webserver soll nur von den Rechnern in der NIS-Domäne (falls Kap. 4 noch nicht durchgemacht: nur von den Rechnern in deiner Reihe) zugänglich sein. (Nicht vergessen das Loopback braucht ebenfalls immer vollen Zugriff). Sonst sollen alle Verbindungen verboten sein.
    Beginnen nun zunächst auf dem Papier zu planen, welche iptables-Regeln du für dein Setup benötigst.

    Hinweis: zunächst müssen die 3 Standard Chains INPUT, OUTPUT und FOWARD neu initialisiert werden, dann setzte die Policies von INPUT und FORWARD auf DROP. Die OUTPUT Policy kann ACCEPT sein; wir regeln alles über die INPUT Chain.
    Als erstes muß die Regel für das Loopback-Interface in die INPUT chain geschrieben werden; dann die ICMP-Regel, die HTTP-Regel und die SSH-Regel. Dann folgen die (komplizierteren) Regeln für die NFS/NIS-Server Client-Verbindungen. Außerdem kannst du alle bestehenden Verbindungen ebenfalls akzeptieren. Nähere Informationen gibts hier.

  3. Beginne nun ein Skript zu schreiben und die oben angegebenen Regeln zu implementieren. Wenn nötig greife auf die Beispieldateien zurück.
    Für den Fall, daß irgendetwas schiefgeht (blockierst du das Loopback-Interface, so funktioniert die graphische Oberfläche unter Umständen nicht mehr richtig) hole dir das Beispielskript stop_fw.sh: Es löscht alle Chains und setzt die Default-Policy auf ACCEPT (schaltet also die FW aus).

  4. Wenn das Skript fertig ist, führe es aus und überprüfe zunächst den Output des Kommandos "iptables -L -n -v". Entspricht dieser deinen Erwartungen, so kannst du daran gehen, deine Firewall zu testen; Mache das gemeinsam mit den anderen Teilnehmern in deiner Domäne/Reihe. Verwendet den Portcsanner nmap (falls dieser nicht installiert ist, dann findest du ihn hier). Wenn alles zur Zufriedenheit erledigt ist, scannt eure Hosts auch von außerhalb der Domäne.

  5. Wenn alle Tests positiv verlaufen sind, kannst du darangehen die Regeln zu verschärfen. Sichert den Server gegen die Clients ab, in dem nur die tatsächlich benötigten Verbindungen erlaubt sind. (Die Clients gegen den Server abzusichern ist nicht besonders sinnvoll; ist der Server gehackt, kommt es auf die Clients auch nicht mehr an...) Praktischer Hinweis Zunächst muß sicherlich der Portmapper zugelassen werden. Dann versuche einen Mount und sieh im Logfile nach, welche Verbindungen geblockt werden. Modifiziere das Skript, bis der Mount wirklich funktioniert. Wenn nötig greife auf die Beispieldateien zurück.

  6. Fortgeschrittener Security Test
    Installiere den Porscanner Nessus. Das rpm-Paket und die ebenfalls benötigten Bibliotheken gmp.rpm findest du hier. Nessus verfügt über eine Client-Server Architektur und verwendet eigene Nessus-Benutzer. Starte zunächst den Server mittles rcnessusd start. Dann mußt du einen Nessus-Benutzer anlegen; verwende dazu das Kommando nessus-adduser. Nun starte den Scanner mit dem Aufruf nessus. Zunächst mußt du dich nun als der vorher eingerichtete Benutzer anmelden, dann folge dem Menü. Für den Scan schließ dich mit deinem Nachbarn zusammen; scannt gegenseitig eure Rechner (um einen Unterschied zu sehen stoppt eventuell auf einem Rechner die FW) und verfolgt das Logfile /var/log/messages. Hinweis: Um die Zeit des Scans zu reduzieren, beschränkt euch auf die interessanten Ports.



[Home] [1.] [2.] [3.] [4.] [5.] [6.] [7.] [8.]
Last modified January 23, 2010 by Roland Steinbauer