Re: ipfw Beispiele

From: Martin Heinen <mheinen0(at)wiesbaden-online.de>
Date: Sat, 20 Oct 2001 13:27:50 +0200

On Sat, Oct 20, 2001 at 02:33:10AM +0200, Thibault Bautze wrote:
> >Wie üblich kommt es darauf an, was Du genau willst, d.h.
> > welche Services willst Du erlauben?
>
> Der Router bietet nur ssh und ftp an, also Ports 21 und 22.
> Das dürfte meiner Meinung nach kein Problem sein.

FTP verwendet schon mal die Ports 21 und 20 (Datenleitung).
Dann gibt es, wie schon angedeutet, active und passive Mode.
Aus Sicherheitsgründen willst Du nur den active Mode zulassen.
Wenn du wirklich paranoid bist, willst Du auch gar kein FTP
haben, sondern eventuell auf ssh/scp ausweichen. Die Information,
die noch fehlt ist die Richtung: raus oder rein, willst Du
FTP/ssh nach draußen oder auch von draußen erlauben?

> Wie gesagt, er soll eigentlich nicht mehr machen, also ftp und ssh
> anzubieten, und gleichzeitg
> natd seine Arbeit machen lassen.
>
> Ich dachte das hier:
> ${fwprg} add check-state
> ${fwprg} add deny tcp from any to any in established
> ${fwprg} add allow tcp from any to any out setup keep-state
> könnte mir weiterhelfen, klingt eingentlich alles sehr einfach.
> Aber selbst mit wenn ich alle Verbindungen, die von den Clients ausgehen,
> auf dem Router
> erlaube, tut sich bei den Clients nicht sehr viel, kann also keine pings
> senden etc.

Ping ist etwas anderes als FTP oder ssh, das heißt eigentlich willst
Du doch mehr. Du willst wahrscheinlich auch Zugriff auf den DNS
Deines Providers haben, damit Du auch Namen verwenden kannst.

> Ich wollte ja eigentlich auch garkeine Anleitung für Firewalls haben, nur
> ein paar Beispielkonfigurationen. :)

Gehen wir mal davon aus, daß Du die Dienste FTP und ssh nur
nach draußen anbieten willst, also keinen FTP-Server oder Login-Server
aufsetzen willst. Du fängst dann am besten mit der
'simple'-Konfiguration an:

| # alles bis ${fwcmd} add deny all from 240.0.0.0/4 ...
| # so lassen, wie es ist
|
| [ ... ]
|
| # (1) Allow internal traffic
| ${fwcmd} add pass all from ${inet}:${imask} to ${inet}:${imask} \
| via ${iif}
|
| # (2) Allow TCP through if setup succeeded
| ${fwcmd} add pass tcp from any to any established
|
| # Allow IP fragments to pass through
| ${fwcmd} add pass all from any to any frag
|
| # (3) Reject&Log all setup of incoming connections from the outside
| ${fwcmd} add deny log tcp from any to any in via ${oif} setup
|
| # (4) Reject all packets from the outside containing routing options
| ${fwcmd} add deny log ip from any to any via ${oif} ipoptions ssrr
| ${fwcmd} add deny log ip from any to any via ${oif} ipoptions lsrr
| ${fwcmd} add deny log ip from any to any via ${oif} ipoptions rr
| ${fwcmd} add deny log ip from any to any via ${oif} ipoptions ts
|
| # (5) Allow some ICMP messages
| ${fwcmd} add allow icmp from any to any via ${oif} \
| icmptypes 0,3,4,8,11,12
|
| # (6) Allow setup of any other TCP connection
| ${fwcmd} add pass tcp from any to any setup
|
| # (7) Allow DNS queries out in the world
| # Hier kannst Du auch anstatt any die Nameserver IP des
| # Providers einzetzen
| ${fwcmd} add pass udp from ${oip} to any 53 keep-state

Mit (1) wird der gesamte interne Verkehr früh erlaubt und
man muß nicht durch alle Regeln marschieren. (2) erlaubt
bestehende Verbindungen, in (3) werden alle Verbindungen von
außen abgelehnt. (2) + (3) zusammen mit (6) erlauben nur
beliebige TCP Verbindungen von innen, da fallen FTP im passive
Mode und ssh drunter.

Mit (4) verbietest Du ein paar Schweinereien und die Regel (5)
erlaubt es Dir nach draußen zu pingen. Mit Regel (7) kannst
Du auch Namen auflösen.

HTH
Martin

-- 
Marxpitn
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Sat 20 Oct 2001 - 13:27:58 CEST

search this site