ipf Syntax Problem

swafskari

Well-Known Member
Servus,

ich habe ein Problem mit ipf, welches ich nach dem NetBSD Handbuch[1] konfiguriert habe (siehe unten). Beim Start des Rechners bekomme ich die Meldung, das ich einen Syntaxfehler bei "block in on $out_if all" habe und als Konsequenz ipf nicht gestartet wird. Leider Gottes muss ich gestehen, das ich wohl Tomaten auf den Augen habe, denn ich sehe den Fehler nicht... Über Hilfe/Tipps Eurerseits wäre ich schwer dankbar! :)

Ach ja, die Config liegt unter /etc/ipf.conf.

Hier die ipf.conf
Code:
out_if = "fxp0"            # Name des Netzwerkinterface

# Standartmaessig alles verbieten
block in on $out_if all
block out on $out_if all

# Alles auf dem (internen) Loopback-Interface erlauben
pass in quick on lo0 
pass out quick on lo0

# Blockiere den externen Verkehr mit privaten Adressen
block in quick on $out_if from 10.0.0.0/8 to any
block in quick on $out_if from 192.168.0.0/16 to any
block in quick on $out_if from 172.16.0.0/12 to any
block in quick on $out_if from 127.0.0.0/8 to any
block out quick on $out_if from any to 10.0.0.0/8
block out quick on $out_if from any to 192.168.0.0/16
block out quick on $out_if from any to 172.16.0.0/12
block out quick on $out_if from any to 127.0.0.0/8

# TCP, UDP und ICMP hinauslassen
pass out on $out_if proto tcp from any to any flags S keep state keep frags
pass out on $out_if proto udp from any to any keep state
pass out on $out_if proto icmp from any to any keep state

# Server-Ports freigeben
pass in on $out_if proto tcp from any to any port = ssh flags S/SA keep state keep frags

Viele Grüße
swaf

[1] http://www.netbsd.org/docs/network/nsps/config_ipf.html
 
Hallo,
hier kommt wieder mal eine dieser oberschlauen Antworten von einem FreeBSDler, der IPfilter gar nicht kennt:

Bei FreeBSDs IPFW mußt Du Dich entscheiden, ob Du Dein Firewallskript als Shellskript verfaßt, in dem dann Zeile für Zeile "ipfw" mit Argumenten aufgerufen wird - oder ob Du ein Skript direkt für den Firewallbefehl "ipfw" schreibst, das dieser dann in einem Zug ausschlürft. Letzteres hat den Nachteil, daß Dir die Annehmlichkeiten der Shell, z. B. Variablen wie $out_if, nicht zur Verfügung stehen.

Möglicherweise ist das bei Dir auch so. Du hast ein Skript für ipf verfaßt, und da gibt es vielleicht keine Variablen oder deren Gebrauch ist anders.
Wahrscheinlich kannst Du daraus ein Shellskript machen, indem Du jeder Zeile eine Anweisung "ipf" voranstellst. Und dann ist $out_if natürlich eine Shell-Variable und alles sollte gehen.
 
Keine Ahnung welche Version von IPFilter mit NetBSD kommt, aber bis Version 4.x kannst du mit IPFilter keine Variablen definieren, wie zB bei pf. (Ich weiss auch nicht ob das mit IPFilter 5.x funktioniert, hab ich noch nie verwendet)
Die richtige Syntax fuer die erste Regel wuerde zB so aussehen:
Code:
block in on fxp0 all
 
Gut möglich, am 30 Januar gab es erst ein Update auf die 5.1.1. Und mit NetBSD 6 ist das Chaos dann perfekt; ich fang lieber nicht an zu zählen wieviel Paket Filter NetBSD 6 haben wird und in welchen Situationen einige brauchbar sind.
 
Cool, danke Euch allen für die Tipps! Wenn es nicht funktioniert melde ich mich hier wieder - ansonsten sollte es geklappt haben. :)

Edit: Habe NetBSD 5.1 im Einsatz, IPFilter Version weiss ich gerade nicht...
Edith 2: Da es für eventuelle weitere Hilfesuchende interessant sein könnte: ich musste $out_if durch fxp0 ersetzen, nun läuft alles. :) Die IPFilter Version ist 4.1.29 (396).


Viele Grüße, danke
swaf
 
Zuletzt bearbeitet:
Zurück
Oben