pf.conf/ anchors wollen nicht

k_e_x

Well-Known Member
also folgendes problem:
hatte bis vor kurzem openbsd 3.5 auf dem router laufen

dann neue hdd eingebaut (alte raus) und openbsd 3.6 drauf

alles schoen und gut, habe dann die alte pf.conf weiterbenutzen wollen, die alte pf.conf ist im prinzip die hier:

http://www.fmi.uni-passau.de/~grafj/openbsd/3.5/

unterschiede:
InServicesTCP = "{ auth }"
kein active ftp
nat on $Ext from $IntNet to any -> ($Ext) static-port (die klammern um $Ext, sonst bringt er mir ein error beim laden)

ansonsten alles gleich

ins inet komme ich (sonst koennte ich hier gerade garnicht schreiben)

was nicht funktioniert ist folgendes:

in dem tutorial wird beschrieben wie man mit:
pfctl -a passin:bittorrent -f /etc/bittorrent.passin

regeln nachlaedt ...
unter 3.5 hat das prima funktioniert, unter 3.6 funktioniert das aufeinmal nicht mehr, beim laden selbst bringt er keine fehlermeldung (scheint also zunaechst alles in ordnung)

aber bei:
pfctl -s rules/nat
pfctl -a anchor -s rules/nat

zeigt er keine regeln/ nur die, die auch so in der pf.conf stehen
die ports sind auch wirklich nicht offen und werden auch nicht weitergeleitet

bin etwas ratlos da ich ziemlich unwissend bin :D
 
sry aber waere nicht schlecht wenn sich mal jemand zu dem thema aeussern koennte, also so wie es in dem faq fuer 3.5 beschrieben wurde, funktioniert in 3.6 bei mir auch nach frischer installation nicht ...

da ueberlege ich mir fast auf 3.5 wieder umzusteigen ....
 
also extra nochmal getestet, sogar extra emule downgeloaded weil ich weiss das der einen built-in-port-test hat ... wird einfach nicht weitergeleitet auf diesen ports und ich weiss nicht wieso ...
 
fuer alle die zu faul sind da in das tutorial zu schauen, hier die exakten configs wie ich sie habe:

pf.conf
Code:
### VARIABLEN ###

Ext = "tun0"            # Device an dem das Internet angeschlossen ist 
Int = "xl0"      # Device an dem das interne Netz haengt
IntNet = "192.168.0.0/24"      # Adressraum des internen Netzes
RouterIP = "192.168.0.3"       # IP Adresse des Routers
Loop = "lo0"                   # Loopback Device

# Adressen die auf dem externen Device nicht geroutet werden
# (Adressbereich des internen Netzes muss man wegen der Weiterleitungen zulassen)
table <NoRoute> { 127.0.0.1/8, 172.16.0.0/12, 192.168.0.0/16, !$IntNet, 10.0.0.0/8, 255.255.255.255/32 }

# Ports die geoeffnet werden sollen
InServicesTCP = "{ auth }"


### OPTIONS ###

# Macht Statistiken fuer die DSL-Verbindung (pfctl -s info)
set loginterface $Ext

# Beendet inaktive Verbindungen schneller - geringerer Speicherverbrauch.
set optimization aggressive

# Fragmentierte Pakete saeubern
scrub on $Ext all fragment reassemble random-id

# Queueing
altq on $Ext priq bandwidth 100Kb queue { q_pri, q_def }
queue q_pri priority 7
queue q_def priority 1 priq(default)


### NAT & FORWARD ###

# NAT aktivieren (unter Linux als Masquerading bekannt)
nat on $Ext from $IntNet to any -> ($Ext) static-port

rdr-anchor redirect

### FILTER ###

# Zum Debuggen....
#pass quick all             # Alles durchlassen

# Generelle Block Regel
block on $Ext

# Freiwillig machen wir keinen mucks ;)
block return log on $Ext

# Wir wollen kein IPv6.0
block quick inet6

# Loopback Device darf alles
pass quick on $Loop

# IP Spoofing verhindern
block in log quick on $Ext inet from <NoRoute> to any
block in log quick on $Ext inet from any to <NoRoute>

# Ping akzeptieren (ablehnen ist uebrigends wenig sinnvoll)
pass in quick on $Ext inet proto icmp all icmp-type 8 code 0 keep state

# Ports nach aussen oeffnen
pass in quick on $Ext inet proto tcp from any to any port $InServicesTCP flags S/SAFR keep state label ServicesTCP
 
anchor passin

# Raus darf (fast) alles
pass out quick on $Ext keep state queue (q_def,q_pri)


emule.passin
Code:
Ext = "tun0"            # Device an dem das Internet angeschlossen ist
InMuleTCP = "{ 4661, 4662, 4711 }"
InMuleUDP = "{ 4665, 4672 }"

pass in quick on $Ext inet proto tcp from any to any port $InMuleTCP flags S/SAFR keep state label eMuleTCP
pass in quick on $Ext inet proto udp from any to any port $InMuleUDP keep state label eMuleUDP

emule.redirect
Code:
Ext = "tun0"            # Device an dem das Internet angeschlossen ist
MuleIP = "192.168.0.2"  # IP Adresse des Emule Clients 
IntNet = "192.168.0.0/24"      # Adressraum des internen Netzes

rdr on $Ext proto tcp from !$IntNet to any port 4661:4662 -> $MuleIP port 4661:*
rdr on $Ext proto udp from !$IntNet to any port 4665 -> $MuleIP port 4665
rdr on $Ext proto udp from !$IntNet to any port 4672 -> $MuleIP port 4672
rdr on $Ext proto tcp from !$IntNet to any port 4711 -> $MuleIP port 4711


regeln lade ich wie im tutorial beschrieben per:
pfctl -a redirect:emule -f /etc/emule.redirect
pfctl -a passin:emule -f /etc/emule.passin

Code:
bsdrouter# pfctl -s Anchors
  passin
  passin:bittorrent
  passin:emule
  redirect
  redirect:bittorrent
  redirect:emule

soweit scheint auch alles zu stimmen, nur wieso funktioniert das dann trotzdem nicht? in 3.5 habe ich alles genau gleich gemacht, und nun in 3.6 soll das auf einmal nichtmehr funktionieren ? irgendwer muss doch eine idee haben ?
 
Zurück
Oben