problem s BINDem / dhclient

Miroslav Lachman 000.fbsd at quip.cz
Mon Apr 29 01:49:02 CEST 2019


Dan Lukes wrote on 2019/04/29 00:37:

> To vypada jaki 'IPFilter' syntaxe. 

Neni to IPFilter, je to PF, ale maji dost podobnou syntaxi

> I tak se mi ale nezda, ze by tohle pravidlo mohlo zajistit obousmerny 
> pruchod DHCP paketu.
> 
> Obavam se, ze 'keep state' zaridi, ze z "protismeru" jsou dovoleny 
> pakety kde zdrojove a cilove adresy a portu jsou navzajem prohozeny. No 
> to ale u DHCP casto neplati. Dotaz odchazi z 0.0.0.0:67 na 
> 255.255.255.255:68, ale vraci se z IP adresy DHCP serveru na IP adresu 
> tazatele (ktery ji jeste nezna!) pripadne take na broadcast.

To mas asi pravdu, nicmene, jak jsem popsal v dalsim e-mailu, tak po 
"povoleni" adresy toho DHCP serveru uz to funguje. A je mozne, ze by to 
fungovalo i bezh tech dvou pravidel, i kterych ty stejne tvrdis, ze je 
mam obracene. Coz je klidne mozne, protoze v jednom pokusu jsem je mel 
prehozene tak, jak rikas, ze by mely byt, ale protoze to nefungovalo, 
zkusil jsem je prohodit - protoze jsem na netu nasel obe dve varianty a 
jelikoz o fungovani DHCP mam jen hodne povrchni znalosti, tak z hlavy 
presne nevim, ze ktereho na ktery port ta komunikace ma jit.

Napriklad tady to maji from 67 to 68

https://docs.oracle.com/cd/E53394_01/html/E54829/pftask-exs.html

>> Zkusmo jsem pridal jmenovita pravidla, povolujici obousmerny provoz 
>> mezi porty 67 a 68
>>
>> pass in quick on bge0 proto udp from any port = 67 to any port = 68 
>> keep state
>> pass out quick on bge0 proto udp from any port = 68 to any port = 67 
>> keep state
> 
> Pravidlo na ktere jsi se odvolalaval nahore obsahuje 'pass out' az 
> kontextu se mi zda, ze ma povolovat vsechny odchozi pakety - tedy pakety 
> opoustejici stroj smerem "do dratu". Pak ale tyhle dve pravidla nejspis 
> nemuzou byt dobre. DHCP klient posila pakety "out" - z portu 67 na port 
> 68 serveru. No a server odpovida "in" a portu 68 na port 67. Me se zda, 
> ze to mas poskladane obracene.
> 
> No a ten keep state je tam patrne uplne navic, protoze, jak uz vyse 
> zmineno, DHCP odpoved nemusi prichazet z adresy na kterou sel dotaz ani 
> nemusi byt adresovana na IP ze dotaz odesel.

Tohle pravidlo, tak jak jsem ho poslal, je uz zprocesovane vlastnim PF, 
ktery tam keep state pridava automaticky.
Ve skutecnosti je to zapsane jako

pass in quick on $ext_if proto udp from port 67 to port 68
pass out quick on $ext_if proto udp from port 68 to port 67

> Ale ani prohozeni 'in' a 'out' neni zarukou, ze to bude spravne. Nevidim 
> v pravidlech 'quick', takze pruchod paketu muze stale zakazat i nejake 
> pozdejsi pravidlo - a netusim, co s tim udel;a ta "stavovost".
> 
> 
>> Ale v logu se mi zase objevilo dhclient[40538]: send_packet: 
>> Permission denied.
> 
> To podporuje moji hypotezu, ze to nemas dobre ;-)

Zda se, ze tenhle problem uz mam opravdu vyreseny, za coz ti patri muj 
dik, protoze bez tveho navedeni bych ani nevedel, v cem se mam stourat.

Takze ted se muzu obloukem vratit k puvodnimu tematu, BIND, ktery mi ted 
opet prestal odpovidat na dotazy z venku a to v dobe, kdy jsem se zrovna 
v nicem nestoural, vnejsi interface mel IP ziskanou v Apr 28 23:32:14.
V dhclient.leases.bge0 je tohle
   renew 1 2019/4/29 00:32:14;
   rebind 1 2019/4/29 02:47:14;
   expire 1 2019/4/29 03:32:14;

a v 01:00 prestal odpovidat na dotazy na vnejsi IP adrese. Tudiz tenhle 
problem nesouvisi ani s firewallem (s tim jsem v te dobe nic nedelal), 
ani s DHCP, protoze s nim podle zaznamu v logu v jednu hodinu taky nic 
neprobehlo.

Zvlastni je, ze podle vypisu netstat ted BIND prestal poslouchat na TCP 
portu, ale dal posloucha na UDP portu na te verejne adrese.

V BINDu mam zapnuty pomerne rozsahly logovani vseho mozne. Prohlidnul 
jsem logy, ale okolo 1:00 tam zadne errory nevidim.

Je mi jasne, ze z takto dodanych informaci mi dobrou radu muze dat leda 
vestec s kristalovou kouli, takze je tu to vlastne jen takova informace, 
kterou si sem odlozim a zitra se k tomu vratim...

Mirek


More information about the Users-l mailing list