[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Hilfsmittel für einfache Firewall-Konfiguration?



Am Dienstag 29 Juni 2010 schrieb Michael Schuerig:
> On Monday 28 June 2010, Martin Steigerwald wrote:
> 
> [schnipp]
> 
> > IPTables ist hingegen keine Firewall, sondern die Implementation
> > eines IP- Filters. Eine sogenannte Personal Firewall macht hingegen
> > nix anderes, als Ports zu sperren, die ohnehin nicht offen wären,
> > wenn da keine Dienste lauschen. Und Ports von Diensten, die
> > erreichbar sein soll, kann eine Personal Firewall ebenfalls nicht
> > absichern.
> > 
> > Eine solche Personal Firewall macht also nur Sinn, wenn Du Dir oder
> > dem von Dir verwendeten Linux nicht zutraust, *immer* nur die von
> > Dir gewünschten Dienste auf von außen zugängliche IP-Adressen
> > lauschen zu lassen. Debian GNU/Linux traue ich das durchaus zu.
> 
> Hi Martin,

Hi Michael,

> Apache lauscht nach draussen. Bei MySQL, PostgreSQL, CUPS, ntpd, inetd,
> sshd weiss ich es nicht. Ich will mich vor allem nicht detailliert
> darum kümmern müssen. Nicht, weil ich in der Hinsicht kognitiv
> beschränkt wäre, sondern weil ich meinen Sysadmin-Aufwand klein halten

Nee, das meine ich auch nicht. Da war mein "sich das zutrauen" etwas 
mißverständlich. Ich meinte da durchaus auch mit, sich damit nicht 
befassen wollen.

Und klar, wer sich nicht selbst drauf achten will, dass bei Paket-
Installationen und -Aktualisierungen die Ports dicht bleiben oder eben 
schnell mal einen Dienst togglen möchte, für den macht so eine Personal 
Firewall durchaus Sinn. Ich finde dann eben nur wichtig, auch zu verstehen, 
was man da hat.

> will. Ist nicht mein Job, ich bin Anwender und Progammierer. Vor 10
> Jahren habe ich mal ipfilter-Regeln von Hand geschrieben und
> zwischenzeitlich alles lange vergessen. Ich mache das zu selten, um es
> gut zu machen.

Eine einfache Personal-Firewall mit ein paar offenen Ports finde ich nun 
wirklich nicht kompliziert. Und vor allem, weiß ich dann, was ich da 
bekomme. Bei einem Frontend wäre meine erste Frage immer: Macht es 
wirklich fehlerfreie und brauchbare Regelsätze?

> Mir genügt es, wenn ich ausdrücken kann: "Luken dicht" oder "sshd darf
> rein" oder "Apache, bitte lauschen". Das *will* ich nicht auf iptables-
> Niveau tun müssen. Ich will Abstraktion. firehol ist da schon ganz
> hervorragend; es nervt bloß dadurch, dass es meine Logs vollmüllt.

Hmmmm... wie Du meinst. Wobei ich finde, das genau so eine einfache Sache 
auf iptables-Niveau eben auch einfach ist. Was an Port nnn auf oder zu 
läßt sich denn noch *abstrahieren*?

Ein einfaches Skript, das nur Antworten auf bekannte Verbindungen und ein 
paar ausgewählte Ports zuläßt, braucht via iptables auch keine 20 Zeilen. 
Okay, vielleicht 20-50 Zeilen mit *umfangreichen* Kommentaren.

Und das Protokollier-Problem hast Du dann auch nicht,  bzw. kannst es 
einstellen.

Das folgende Ding tuts schon, mit einer Zeile pro Port, den Du 
freischalten willst, bzw. sogar einer Zeile für mehrere Ports mit -m 
multiport.

martin@shambhala:/usr/local/bin> cat personal-firewall
#!/bin/sh

# iptables-Befehl
IPT=/sbin/iptables

# Debugging?
#set -x

# IP-Pakete nicht weiterleiten
echo 0 > /proc/sys/net/ipv4/ip_forward

# Conntracker-Modul für FTP-Verbindungen
modprobe ip_conntrack_ftp

# Standard-Richtlinien
$IPT -P INPUT DROP
$IPT -P FORWARD DROP
$IPT -P OUTPUT ACCEPT

# Tabellen leeren
$IPT -F

## Eingehende Pakete (INPUT), Tabelle Filter
# Bestehende Verbindungen akzeptieren
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Eingehende SSH-Verbindungen akzeptieren
#$IPT -A INPUT -m state --state NEW -p tcp --syn --dport 9999 -j ACCEPT

# ICMP akzeptieren (u.a. Pings)
$IPT -A INPUT -m state --state NEW -p icmp -j ACCEPT

# Verbindung für Loopback-Interface erlauben
$IPT -A INPUT -i lo -j ACCEPT

# Alles andere freundlich ablehnen
$IPT -A INPUT -j REJECT


Was läßt sich hier für ein einfaches Personal Firewall Setup noch 
abstrahieren?

Nun, entscheide selbst, ob Du weiter Zeit aufwendest, um das ideale 
iptables-Frontend für Deinen Zweck zu finden oder einfach ein Skript in der 
obigen Art einsetzt ;).

Wenn Du ein Frontend für genau diesen Zweck findest oder es schaffst, bei 
firehol ohne größere Probleme das Logging auszuschalten, wär ich evtl. 
interessiert. Wobei, das obige Skript tuts für mich auch, wenn ich das 
wirklich mal brauchen sollte.

Ciao,
-- 
Martin 'Helios' Steigerwald - http://www.Lichtvoll.de
GPG: 03B0 0D6C 0040 0710 4AFA  B82F 991B EAAC A599 84C7

Attachment: signature.asc
Description: This is a digitally signed message part.


Reply to: