Syntax Fehler ?!?

f0x

Punk
Hi,
Ich bin gerad dabei meine Firewall neu zu konfigurieren und jetzt stehe ich vor folgendem Problem:

Die Firewall ist bereits fertig, alles richtig eingestellt usw. doch nun wird mir ein Syntax Fehler angezeigt, welchen ich nicht finden kann xD. Kann wer von euch den entdecken?
Code:
pass in log on $ext_if inet proto tcp \ 
from any to ($ext_if) port $tcp_used \ 
flags S/SA modulate state
Angeblich soll der Fehler in Zeile 42 sein (hier die 2. Zeile) doch ich seh da nix.

Ich hab schon alles versuch wie z. B. any durch ne ip oder ein Interface zu ersetzten oder anstatt dem Macro die Ports direkt einzugeben, alles in nur 2 Zeilen zu schreiben uvm. :mad:

Villeicht sieht wer von euch ja etwas was mir entgeht oder nicht als fehler bewusst ist.

Danke im Vorraus

MfG

f0x
 
Vielleicht gibst Du uns noch die Variablen? Geht das denn überhaupt mit "to INTERFACE" oder muss das vielleicht "to IP" sein?
 
Code:
int_if="rl0"
ext_if="rl1"
tcp_used="{ 22, 80, 3128, 8000 }"

Ich hab mir gerad nochmal die pf faq durchgelesen und es sollte eig alles funktionieren xD (ich hab auch das ganze ohne klammern beim $ext_if ausprobiert, tut sich aber auch nix)
 
Aender das mal in folgendes:

Code:
tcp_used = " 22, 80, 3128, 8000 "

pass in log on $ext_if inet proto tcp \ 
  from any to ($ext_if) port { $tcp_used } \ 
  flags S/SA modulate state

Die Leerzeichen sind nur da, um die Lesbarkeit zu erhoehen.

Die Klammern werden nicht expandiert, wenn sie in "" auftauchen. Ich meine, dass dazu auch einige Zeilen in der FAQ stehen. Jedenfalls wird bei Deiner Variante die Liste nicht erkannt.

In der man Page zur pf.conf steht dazu das:

Code:
Macros are not expanded inside quotes.

 For example,

           ext_if = "kue0"
           all_ifs = "{" $ext_if lo0 "}"
           pass out on $ext_if from any to any
           pass in  on $ext_if proto tcp from any to any port 25

HTH
 
Zuletzt bearbeitet:
Code:
/etc/pf.conf:42: syntax error
pfctl: Syntax error in config file: pf rules not loaded
xD

Hab auch noch versuch alles manuell einzutragen, weiterhin der syntax error....

Also probier ich's mal anders. Ich möchte auf dem Server zugriff von Extern ($ext_if) auf die Ports 22, 80, 3128, 8000 zulassen.

Es soll nichts weitergeleitet werden oder ähnliches. hat wer eine alternative idee oder hab ich ich der ganzen Geschichte evtl. irgendwo einen Denkfehler???
Falls es irgendwie wichtig sein sollte, OpenBSD 4.4.

MfG f0x
 
also das "from any" ist meiner meinung nach nicht nötig. so geht bei meinem @home der ssh nach draußen auf (alles in einer zeile):
Code:
pass in on $ext_if proto tcp to ($ext_if) port ssh keep state (max-src-conn-rate 3/30, overload <bad-ssh> flush global)
vlt. hilft es auch, wenn du pro regel erstmal eine zeile nimmst, und diese dann nachher mit backslashes aufteilst (ich nutze keine). dann weisst du zumindest schonmal, welche zeile bzw. regel genau zickt und ob die syntax generell richtig ist und nur die formatierung nicht stimmt.

hth
 
Geil es Funktioniert.
1. waren da Leerstellen hinter den Backslash's - ging aber immer noch nicht xD
2. habe ich makenoob's Rat befolgt und from any weggelassen, doch es ging immer noch nicht.
3. dann hab ich einfach nach diesen beiden Änderungen mal das $tcp_used makro weggelass und einfach mal port 80 manuell eingestellt und schwups, ging's plötzlich.

Ich kann jetzt nicht so genau sagen welche von den Drei Sachen den Fehler hervor gerufen hat, aber es läuft.
Ich mach jet einfach für jeden port ne einzelne Regel.... Irgendwie muss da glaub ich im Makro ein Fehler sein, welchen ich nicht entdecke (seltsamerweise funktionieren allerding alle anderen Makros die genau so aufgebaut sind...)

Danke für Eure Hilfe.

MfG f0x
 
eine regel für jeden port brauchst du auch nicht machen.
Code:
pass in log on $ext_if inet proto tcp to ($ext_if) port {22, 80, 3128, 8000} flags S/SA modulate state
so in der art könnte das mit mehreren ports aussehen.
 
Zurück
Oben