• Diese Seite verwendet Cookies. Indem du diese Website weiterhin nutzt, erklärst du dich mit der Verwendung von Cookies einverstanden. Erfahre mehr

unbound blocked by pf

Mardor

Well-Known Member
Themenstarter #1
Hi,

ich habe pf am Laufen. Die Regeln enthalten "set skip on lo0".

Trotzdem werden meine DNS über unbound Anfragen geblocked:
Code:
 00:00:00.022285 rule 7/0(match): block out on lo0: 127.0.0.1.19691 > 127.0.0.1.53: 28402+ [1au] A? www.maus.de. (40)
E..D....@...........L..5.0.Cn............www.maus.de.......)........                                                 
 00:00:00.000022 rule 7/0(match): block out on lo0: 127.0.0.1.31862 > 127.0.0.1.53: 28402+ [1au] A? www.maus.de. (40)
E..D....@...........|v.5.0.Cn............www.maus.de.......)........
Ändere ich die resolv.conf funktioniert alles.

Sagt skip on lo0 nicht, dass jeder Traffic auf lo0 erlaubt wird.

Palazo
 

turrican

Well-Known Member
#2
An welcher Stelle im pf Listing steht dein skip? Ggf wird lo0 vorher irgendwo geblockt?
Du könntest auch ein
Code:
pass quick on lo0 no state
ziemlich weit oben platzieren
 

Mardor

Well-Known Member
Themenstarter #3
Hallo Turrican,

erstmal gefällt mir dein Foto. Ich habe selbst vor ein paar Tagen Turrican 2 auf dem Amiga 1200 Emulator gespielt.

An welcher Stelle im pf Listing steht dein skip? Ggf wird lo0 vorher irgendwo geblockt?
Nach der Definition von ein paar Variablen ist dies der nächste Befehl, also steht die Anweisung ganz ganz weit oben.

Code:
lo_if = "lo0"
if = "re0"

## Tables ##
table <country>  persist file

## Ports ##
ssh="{22}"
http="{80}"
https="{443}"

##### Global Options #####

## Timeouts ##
set skip on $lo_if
set block-policy drop
set require-order yes
set ruleset-optimization basic
Palazo
 

turrican

Well-Known Member
#4
Hehe, merci... T2, mein all-time-fav *schwelg*

Mach mal ein
Code:
pfctl -sr
auf deinem System, steht die Regel wirklich noch oben?
 

Mardor

Well-Known Member
Themenstarter #5
Hi,

das ist auch mein Favorit. Als T1 damals rauskam hatte ich mir ein T-Shirt drucken lassen.
BTW: Wusstest du das Turrican ursprünglich Hurrican heißen sollte.

Bzgl. pf war ich vorhin auf dem falschen Server und die geposteten Regeln war nicht 100% identisch. Hier die Ausgabe des richtigen Servers:
Code:
scrub in all random-id fragment reassemble
anchor "blacklistd/*" in on re0 all
block drop in log all
block drop out log all
block drop in quick on ! re0 inet from xxx.xxx.xxx.xxx/27 to any
block drop in quick on ! re0 inet from yyy.yyy.yyy.yyy to any
block drop in quick inet from zzz.zzz.zzz.zzz to any
block drop in quick inet from yyy.yyy.yyy.yyy to any
block drop quick on re0 inet6 all
block drop in log all
block drop out log all
block drop in quick on ! re0 inet from xxx.xxx.xxx.xxx/27 to any
block drop in quick on ! re0 inet from yyy.yyy.yyy.yyy to any
block drop in quick inet from zzz.zzz.zzz.zzz to any
block drop in quick inet from yyy.yyy.yyy.yyy to any
block drop quick on re0 inet6 all
block drop in log quick on re0 inet proto tcp from sss.sss.sss.sss/16 to any
block drop in log quick on re0 inet proto tcp from ttt.ttt.ttt.ttt/19 to any
pass on re0 inet proto icmp all icmp-type echoreq code 0 keep state
pass out on re0 proto udp all keep state
pass out on re0 proto tcp all flags S/SA modulate state
pass in on re0 inet proto tcp from <country> to zzz.zzz.zzz.zzz port = ssh flags S/SA keep state
 

turrican

Well-Known Member
#6
Hmm... bin mir jetzt nicht ganz sicher, ob das "set skip..." im ruleset angezeigt werden würde...
Kannst du mal testweise das "pass quick on lo0 no state" einfügen und testen, ob das ginge?
Das würd zumindest auch im Output angezeigt werden, da definitiv ne "Rule" (das andere is ein "Setting", denk ich mal)...
 

Mardor

Well-Known Member
Themenstarter #7
Hallo Turrican,

muss ich irgendetwas flushen um einen validen Test zu haben ?

Jetzt funktioniert die DNS Auflösung (neue Domain also nicht gecached) sowohl mit "pass quick on lo0 no state" und set skip als auch nur mit set skip.

Ich versteh das nicht. Jetzt sehe ich auch im PCAL das die Verbindung erlaubt ist.

Code:
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode                                                           
listening on lo0, link-type NULL (BSD loopback), capture size 262144 bytes                                                           
10:30:46.729967 IP localhost.56328 > localhost.domain: 52018+ [1au] A? www.maus.de. (40)                                             
E..D....@..............5.0.C.2...........www.maus.de.......)........                                                                 
10:30:46.773002 IP localhost.domain > localhost.56328: 52018 1/3/1 A 217.6.219.229 (130)                                             
E.......@............5.......2...........www.maus.de.............Q...............Q....dns2.wv-s.net.........Q....ns1    pop-celle..........Q....dns3.>..)........
 

turrican

Well-Known Member
#8
Hab wenn dann immer nur die Methode mit dem pass auf lo0 genutzt.
Ich teste das mal mit dem set bei nächster Gelegenheit, würd mich jetzt selber mal interessieren.
 

TCM

Well-Known Member
#9
Pass auf lo0 bedeutet aber, dass er für jedes Paket durch state table und ggf. ruleset geht. Da ist skip wesentlich besser.
 

TCM

Well-Known Member
#11
Tut es ja jetzt anscheinend. Ich wüsste auch nicht, warum nicht. Interessant wäre gewesen, was Regel 7 in
Code:
rule 7/0(match): block out on lo0 ...
war (pfctl -vvsr).
 

Mardor

Well-Known Member
Themenstarter #12
Hi,

ich kann noch nachschauen, nachdem ich wieder selbst in mein System komme. Scheinbar hab ich mich selbst gesperrt. Nach dem Neustart komm ich nicht mehr per SSH ins System.
 

TCM

Well-Known Member
#15
Oder in tmux:
Code:
pfctl -f /etc/pf.conf.new; sleep 300; pfctl -f /etc/pf.conf
und nach dem Login-Test per ^C abbrechen ;)
 

Mardor

Well-Known Member
Themenstarter #16
Hallo,

Tut es ja jetzt anscheinend. Ich wüsste auch nicht, warum nicht. Interessant wäre gewesen, was Regel 7 in war (pfctl -vvsr).
Die Regel war folgende. Komischerweise ist IPv6 gar nicht auf meiner Kiste aktiv.

Code:
@7 block drop quick on re0 inet6 all
  [ Evaluations: 16        Packets: 0         Bytes: 0           States: 0     ]
  [ Inserted: uid 0 pid 9701 State Creations: 0     ]
---
ich kann noch nachschauen, nachdem ich wieder selbst in mein System komme. Scheinbar hab ich mich selbst gesperrt. Nach dem Neustart komm ich nicht mehr per SSH ins System.
Das Problem ist, dass ich mir eine Liste mit erlaubten IP Adressen jeden Tag fetche und dann per "/sbin/pfctl -t country -T replace -f <file> lade. Bei einem Neustart ist die Liste dann leer. Ich habe nun mein pf.conf mit "file <file> erweitert. Also:

Code:
table <wl-country>  persist file "<file>