Verständnisfrage zur Firewall

lockdoc

Well-Known Member
Angenommen ich habe nur einen einzigen Server an der Leitung (dahinter ist nichts, also kein LAN)
Dieser Server bietet jetzt ein paar Dienste an, http, mysql, etc, dann sind ja dementsprechend diese Ports nach außen offen. Auf allen anderen Ports lauscht ja nix.

Was bringt mir jetzt eine firewall, wenn ich noch mit hosts.deny/allow soweit alles einstelle.
Blocken von Ports wo eh nichts läuft bringt ja kein sonderlichen Vorteil. Ich seh grad nicht den Nutzen...? x_x
 
Du kannst mit einer Firewall ggf. ausgehende Paket loggen, damit du erkennst wenn ein Tool was macht, was nicht erlaubt ist.

Ansonsten ist die Firewall eigentlich unnütz aber es würde dich auch nicht behindern :) Geschmacksache...
 
Ich würde mal sagen du hast es genau erfasst. Für einen einzelnen Rechner wie von dir beschrieben ist eine "Firewall" unnütz. Einziger Sicherheitsgewinn ist das man versehendlich (ungewünscht, ungabsichtlich, aus Blödheit vergessene) Ports nicht nach außen anbietet.
Nützlich wird sowas wenn man es zentral vor mehrere Rechner hängt und dann da auch sowas wie NAT macht und mehrere Netze hat.
Achja: Logging ist auch noch interessant. Aber das ist nichts was man nicht auch in den Applikationen selber machen könnte. Und an den Ports die eh zu sind kann einem eine Anfrage halt auch total egal sein...

Grüße!
 
Sie bietet Schutz, wenn du mal einen Fehler machst. Das heißt, wenn du ungewollt einen Port öffnest oder überall, statt nur auf localhost lauscht.

Du kannst sie verwenden um Pakete auf andere Ports zu umzuleiten. Wenn du also einen Server als normaler User starten willst und trotzdem ein niedriges Port nutzen willst.

Du kannst sie auch dazu verwenden Bruteforceattacken zu verhindern und nur eine bestimmte Anzahl von Loginversuchen (für einen gewissen Zeitraum) zu erlauben. Du kannst auch dafür Sorgen, dass Angreifer geblockt werden, auch wenn der Service weiterhin läuft bzw. in einer Kombination mit dem Portredirect auf einen Honeypot weiterleiten.

Wenn ein Angreifer in deinem System ist kannst du u.U. verhindern, dass er einen eigenen Server startet, der ihm hilft noch mehr Schaden anzurichten.

Du kannst in der Praxis das Meiste auch anders bewerkstelligen, aber die Firewall kann dir die Sache erleichtern und die Konfiguration vereinheitlichen.
 
Gerade erst über diesen 1 Jahr alten Thread gestolpert, aber bevor hier der Eindruck entsteht, eine Firewall wäre bei nur einem Rechner mit ein paar Diensten unnötig, muss ich was schreiben:

Eine Firewall ist nicht eine Software, ein Paketfilter usw., sondern ein Sicherheits-Konzept.
Firewalls sollen "Brandschutzmauern" sein und nicht nur ein paar Feuerlöscher in der Ecke.

Teile davon sind:
- ein guter Paket-Filter, der auch Stateful Paket Inspection beherrscht = ein- und ausgehende IP-Pakete müssen zusammenpassen, verhindert Man-In-The-Middle-Attacken und IP-Spoofing
- IP-Stack/Filter mit aktiven Korrektur-Mechanismen: Beschädigte oder bösartig verfälschte Pakete werden ausgefiltert, z.B. die typischen SYN/FIN/RST-Pakete, Attacken auf den IP-Stack per abartiger Paket-Fragmentierung usw.
- Schutz-Mechanismen gegen Flooding, Portscans, DoS-Attacken sowohl auf Netzwerk-Ebene als auch Dienst-Ebene
- Abhärtung des Systems, d.h. Schutz-Mechanismen für Dienste: Erkennung und Sperrung von Angreifern auf Dienste, Ausschluss nach mehrfachen falschen Logins, Schutz der Dienste an sich (SQL-Injection z.B.)
- wenn man es auf die Spitze treiben will, auch Intrusion Detection

Viele verstehen unter einer Firewall nur einen simplen Paket-Filter, aber da gehört einfach mehr dazu.
Dabei ist es meiner Meinung nach egal, ob es nur ein Rechner oder tausende sind - in der heutigen Zeit mit den unüberschaubar vielfältigen Attacken auf allen Ebenen ist es einfach Pflicht, jeden Rechner, der dauerhaft per INet zu erreichen ist, maximal zu schützen - alles andere ist ja fast schon eine Einladung, es doch mal zu versuchen....
 
Hallo Reakktor,

deine Erläuterung ist sehr interessant, kannst du bitte noch einen Ansatz geben mit welchen Programmen oder Daemons dies realisiert werden kann? Ich denke das pf das nicht schafft?

danke ré
 
Hallo Reakktor,
deine Erläuterung ist sehr interessant, kannst du bitte noch einen Ansatz geben mit welchen Programmen oder Daemons dies realisiert werden kann? Ich denke das pf das nicht schafft?

Gerne, ist aber ein so großes und weites Feld....

Kann auch nur zu FreeBSD so richtig was sagen, hoffe dass ein paar Sachen auch übertragbar auf andere BSDs ist.

Ein guter Ansatz ist, sich mal http://www.bsdguides.org/guides/freebsd/security/harden.php anzuschauen, da gibt es schon mal nützliche Tips.
So eine *richtig perfekte* Zusammenstellung habe ich aber auch noch nicht gefunden.

Grundlegend natürlich: Alle Dienste, die laufen, absichern - sollte selbstverständlich sein.
Dazu gehören:
-sshd: PermitRootLogin=false, MaxAuthTries 3, Anmeldung nur per Key (kein Passwort-Auth), solche Geschichten
-apache: Info/Sicherheits-Löcher wie mod_status, mod_info, mod_userdir ausschalten
- usw.

Hilft nur Lektüre der Doku zum jeweiligen Dienst und ein Befragen der Suchmaschine des Vertrauens mit Schlagwort "security" ;)

Netzwerk:
pf schafft schon ordentlich was:
- Stichwort "keep state" bei allen pass-Regeln
- Unregelmäßigkeiten beseitigen, z.B.
"scrub all"
"antispoof quick for $all_if inet"
- Paket-Raten lasen sich per ALTQ queuing regeln

Auch hier hilft ausführliche Lektüre der pf-Doku für weitere Details.

Tools:
1. fail2ban (/usr/ports/security/py-fail2ban)
Tut sehr gute Dienste bei Angriffen - kontrolliert Logfiles, und bei einer bestimmten Rate an Fehlversuchen landet die IP in den Firewall-Block-Regeln. Funkt mit ipfw und pf.
Es gibt da auch gleichwertige andere Tools, ich habe mit fail2ban jedenfalls gute Ergebnisse.

2. snort (/usr/ports/security/snort)
IDS - Verhindert zwar keine Angriffe, aber sehr nett wenn man mal mitkriegt, was da so an Zeug am Server aufläuft.

3. Security-Checks
Um eventuelle Löcher aufzudecken, helfen regelmäßige Scans. Wenn man die Löcher kennt, kann man sie stopfen ;)

In den Ports:
- nmap Portscanner
- nessus (Port veraltet, da nun kommerziell, aber benutzbar)
- nessus-Nachfolger openvas (/usr/ports/security/openvas)
- nikto (/usr/ports/security/nikto) - Webserver durchleuchten

Kommerziell:
- neXpose (http://www.rapid7.com/products/nexpose-community-edition.jsp), komplette Distribution mit Scanner und metasploit-Integration, eingeschränkte freie Version. Tip: Lässt sich prima in eine VM installieren...

Auch hier gibt's natürlich ne Menge anderer Tools, aber die o.g. erfüllen ihren Zweck recht gut, kein Anspruch auf Vollständigkeit.

Hoffe ich konnte ein paar grundlegende Anregungen/Tips geben....
 
Zuletzt bearbeitet:
Zurück
Oben