Re: WLAN Firewall

From: Bernd Walter <ticso(at)cicely12.cicely.de>
Date: Wed, 18 Aug 2004 18:12:56 +0200

On Wed, Aug 18, 2004 at 04:30:28PM +0200, Christoph Schumacher wrote:
> Hallo Leute
>
> Ich bin gerade dabei mir ein WLAN aufzubauen, das ich über eine FreeBSD
> VPN verwalten will. Dazu will ich natürlich alles dicht machen, bis auf
> DNS, SSH und VPN. Leider klappt das nicht so wie ich will. Ich kann mich
> per pptp auf dem Server einloggen , aber auch Samba-Zugriffe machen (
> was nicht sein soll ). Was ist falsch in meiner Konfiguration ??
> Anmerkung : wip ist wlan ( CrossKabel2AP ), iif ist intern, oif ist DSL

> # Allow TCP through if setup succeeded
> ${fwcmd} add pass tcp from any to any established

Aha - wofür?

> # Allow IP fragments to pass through
> ${fwcmd} add pass all from any to any frag

Igit.

> # Allow DNS queries out in the world
> ${fwcmd} add pass udp from ${oip} to any 53 keep-state

Aha - keep-state.
Du hast aber kein check-state.
Außerdem ist der dafür da, damit du eben selber weißt welche
Sessions offen sind und welche nicht, ohne blind auf Flags zu
vertrauen, wie du das weiter oben gemacht hast.
Insgesammt hast dui hier ein buntes Mischmasch aus versuchtem
Statefull und keinem Statefull.

> # Allow NTP queries out in the world
> ${fwcmd} add pass udp from ${oip} to any 123 keep-state

Eindeutig weder DNS, kein SSH und auch kein VPN.
Aber das hat der Oliver ja auch schon erwähnt.

> # Allow access to our DNS
> #${fwcmd} add pass tcp from any to ${iip} 53 setup
> #${fwcmd} add pass udp from any to ${iip} 53
> #${fwcmd} add pass udp from ${iip} 53 to any
> ${fwcmd} add pass tcp from any to ${wip} 53 setup
> ${fwcmd} add pass udp from any to ${wip} 53
> ${fwcmd} add pass udp from ${wip} 53 to any

Was denn nun - willst du mit keep-state arbeiten oder nicht?
Wenn du ein Packet durchlsst geht die Gegenrichtung automatisch.
Dann brauchst dich auch nur um die Initialpackete kümmern.
Also vom Client zum DNS.
Du hast hingegen UDP (weil ohne statefull) in beiden Richtungen
freigeschaltet.

> # Allow access to our WWW
> ${fwcmd} add pass tcp from any to ${oip} 80 setup
> ${fwcmd} add pass tcp from any to ${wip} 80 setup

Das ist definitiv wieder was anderes als in deiner Beschreibung.
Du solltest dir wohl als erstes im klaren sein was du wirklich willst.

> # config file.

Äh was.
Den Kommentar verstehe ich absolut nicht.

> # Allow vpn access for wlan
> #${fwcmd} add pass ip from 192.168.20.0:255.255.255.0 to any out via
> ${oif} #${fwcmd} add pass ip from 192.168.20.0:255.255.255.0 to any in
> ${fwcmd} add pass tcp from any to any pptp via ${wif} setup ${fwcmd} add
> pass gre from any to any via ${wif}
>
> # Allow dhcpd out to wlan
> ${fwcmd} add allow udp from any 67 to ${wip}
> ${fwcmd} add allow udp from ${wip} to any 67
> ${fwcmd} add allow tcp from any 67 to ${wip}
> ${fwcmd} add allow tcp from ${wip} to any 67
> ${fwcmd} add allow udp from any 68 to ${wip}
> ${fwcmd} add allow udp from ${wip} to any 68
> ${fwcmd} add allow tcp from any 68 to ${wip}
> ${fwcmd} add allow tcp from ${wip} to any 68

Aua - warum überhaupt noch filtern, wenn du doch wieder alles auf
machst?
Sniffe mal eine DHCP Sesion und du wirst feststellen, dass du
viel zu viel erlaubt hast.

> # Allow access to our DONKEY
> ${fwcmd} add pass tcp from any to ${oip} 5662 setup
> ${fwcmd} add pass tcp from any to ${oip} 5660-5670
> ${fwcmd} add pass udp from any to ${oip} 5660-5670

Das steht eindeutig im Widerspruch damit, dass du ein wenig Sicherheit
willst.

> # Allow access to starcraft/battle.net
> #${fwcmd} add pass tcp from any 6112 to ${oip} setup
> #${fwcmd} add pass tcp from any to any 6112 setup
> #${fwcmd} add pass tcp from any 6112 to ${oip} setup
> #${fwcmd} add pass tcp from any 6112 to ${oip} established #${fwcmd} add
> pass tcp from any to ${oip} 6112-6119 in #${fwcmd} add pass tcp from any
> to ${oip} 6112-6119 setup #${fwcmd} add pass tcp from any to ${oip}
> 6112-6119 established

Das natürlich ebenso.

> #$fwcmd add allow udp from any to any 6112 out xmit tun0 #$fwcmd add
> allow tcp from any to any 6112 out xmit tun0 #$fwcmd add allow udp from
> any 6112 to any in recv tun0 #$fwcmd add allow tcp from any 6112 to any
> in recv tun0
>
> # Allow access to our SSH
> ${fwcmd} add pass tcp from any to ${oip} 22 setup
> ${fwcmd} add pass udp from any to ${oip} 22 setup
> ${fwcmd} add pass tcp from any to ${wip} 22 setup
> ${fwcmd} add pass udp from any to ${wip} 22 setup

Wow - eines der tyatsählich benötigten Protokolle.

> # sftp
> #${fwcmd} add pass tcp from any to ${oip} 115 setup
> #${fwcmd} add pass udp from any to ${oip} 115 setup
>
> # Allow access to our IMAPS
> ${fwcmd} add pass tcp from any to ${oip} 993 setup
> ${fwcmd} add pass udp from any to ${oip} 993 setup

Auch nicht dokumentiert.

> # Allow ICQ connections out in the world
> #${fwcmd} add pass udp from any 4000 to ${oip}
> #${fwcmd} add pass udp from ${oip} to any 4000
>
> # iSPQ Video Chat
> #${fwcmd} add pass udp from any to ${oip} 2000-2003
> #${fwcmd} add pass tcp from any to ${oip} 2000-2002
>
> # iVisit
> ${fwcmd} add pass udp from any to ${oip} 9940
> ${fwcmd} add pass udp from any to ${oip} 9943

Verstehst du wirklich was das Zeugs macht?
Ich glaube nicht, dass du tatsächlich son exotisches Zeugs laufen
haben willst.

>
> # Allow NTP queries out in the world
> ${fwcmd} add pass udp from any 123 to ${oip}
> ${fwcmd} add pass udp from ${oip} to any 123

Das hatten wir doch schon.

> # Allow ICMP (for ping and traceroute to work). You may wish to #
> disallow this, but I feel it suits my needs to keep them in. ${fwcmd}
> add allow icmp from any to any via ${oif}

Nein - man wünscht sich nicht das zu sperren!
Mach den unsinnigen Kommentar weg.
icmp sollte man besser nur filtern, wenn man auch tatsächlich Ahnung
davon hat.

> # check the traffic's state, let it in if we sent it, otherwise deny
> #${fwcmd} add check-state #${fwcmd} add deny tcp from any to any in
> established #${fwcmd} add allow ip from any to any out keep-state

Oh - hier isser also - der check-state.
Auskommentiert in einer eigenartig verstümmelten Zeile.
Wenn, dann kommt der weit nach oben vor dem erste keep-state.

> # Reject&Log all setup of incoming connections from the outside ${fwcmd}
> add deny log tcp from any to any in via ${oif} setup ${fwcmd} add deny
> log tcp from any to any in via ${wif} setup

Warum jetzt nicht gleich *alles* sperren?

-- 
B.Walter                   BWCT                http://www.bwct.de
bernd(at)bwct.de                                  info(at)bwct.de
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Wed 18 Aug 2004 - 18:14:05 CEST

search this site