Ich habe nie so richtig Lust mich wirklich ausgiebig mit Iptables auseinander zu setzen. Also ich sag mal wie es ist. Man benutzt es ungefähr alle paar Monate mal. Richtet da son paar Filter ein und wenn man zuviel Traffic ist dann schaltet man irgendwas davor dass das eingedämmt wird. Jedes mal hat man die gleiche Leier dass man längst vergessen hat wie es denn funktioniert und hat sich wohlmöglich noch selbst ausgesperrt. Für den durchschnittlichen Administrator-Guy ist das einfach nicht ganz so praktikabel um es wirklich effizient zu nutzen. Klar, IPTables ist ein mächtiges Tool und man kann damit auch nahezu sogar alles anstellen, aber es ist nunmal verdammt zickig.
Jetzt musste ich mal ein bisschen mich damit auseinander setzen und ich suchte nach einem Tool was mir da ein bisschen Hilft. Ich wollte keine GUI oder sonstige Weboberflächen sondern es sollte schon Shell basiert sein. Dann traf ich auf meinen neuen Freund “Firehol”.
Firehol ist ein Tool mit welchem man auf ganz großartiger Weise super einfach Regeln erstellen kann und wirklich einfach mal festlegt was offen oder was geschlossen sein soll und los. Selbst einen Router kann man sich damit ganz leicht zusammen bauen.
Installation
Die Installation unter Ubuntu/Debian ist wie immer Super einfach. Man macht das einfach mit “aptitude install firehol” und schon kann es quasi los gehen.
Konfiguration
Die Konfiguration ist, wie bereits erwähnt, super einfach. Das einzige .conf File liegt in /etc/firehol – ich liefer einfach mal ein Beispiel:
interface eth0 internet
server http accept
server https accept
server ssh accept
server ping accept
server icmp accept
server ftp accept
client all accept
Das ist jetzt eine Beispiel Konfiguration für einen Webserver, er lässt alle eingehenden Verbindungen für HTTP, HTTPS, SSH, PING, ICMP, FTP zu und alle ausgehenden Verbindungen sowieso. Klingt einfach? Ist es auch!
Wenn man jetzt das ganze ausprobieren will dann muss man tatsächlich Zwangsläufig noch eine Datei editieren, dies ist aber halb so wild weil es wirklich nur eine kleinigkeit ist. Die zu editierende Datei liegt diesmal in /etc/default und heisst wieder firehol.
Also:
nano /etc/default/firehol
und:
START_FIREHOL=yes
Eigene Services anlegen
Die Frage ist natürlich woher ich denn immer weiß wie denn grade die Services heissen und was eigentlich ist wenn der Service eine eigen Entwicklung ist und Firehol das Wahrscheinlich niemals lernen wird. Die Lösung ist super einfach, denn die Entwickler wollten einem scheinbar nicht die Möglichkeit geben dass man dort selbst mit Ports rummacht in der Hauptkonfiguration. Also legt man oben nach “Version 5” einen neuen Dienst an, hier anhand eines Beispiel mit Munin:
server_munin_ports=”tcp/4949″
client_munin_ports=”default”
Die Usage ist also: server_ (eingehende Verbindung)_service Name_ports=”tcp(oder UDP)/Portnummer”
Das gleiche natürlich bei Client, ausgehende Verbindung
Fazit
Wenn man schnell eine Firewall aufbauen will ohne sich in die wirklich komplexe Welt von IPtables einzulesen und voraleln einzuarbeiten ist Firehol wirklich ein sehr gutes Werkzeug. Sobald es viel Komplexer wird sollte man dann doch aber auf IPtables zurückgreifen. Für meine Zwecke jedenfalls reicht Firehol mehr als aus und die Seite dazu ist auch sehr hilfreich um schnell was nachzulesen.