problem s BINDem / dhclient

Miroslav Lachman 000.fbsd at quip.cz
Tue Apr 30 23:50:12 CEST 2019


Dan Lukes wrote on 2019/04/29 23:01:
> Miroslav Lachman wrote on 29. 4. 2019 15:51:
>>> Ale ja bych tohle neresil pres adresy. Proste bych povolil jakekoliv 
>>> odchozi UDP z portu 67 na port 68 a prichozi UDP z portu 68 na port 
>>> 67. Tecka.
>>
>> Mas samozrejme pravdu. V noci uz mi to moc nemyslelo, takze ted jsem 
>> vratil zpatky puvodni nastaveni tabulky "reserved", pravidla pro porty 
>> 67 a 68 hodil pred pravidlo zakazujici komunikaci z tabulky "reserved" 
>> a vypada to, ze je vsechno jak ma byt :)
> 
> Vidis, a ja myslel, ze pokud pravidla nemaji option 'quick' (coz u tebe 
> nemaji) tak IPF jede last-match ...

Jeste se naposledy vratim k tomu reseni dhclienta...
Ja tam prave quick mam:

## Deny all non routable trafic on external interface
block log quick on $ext_if inet from <reserved> to any
block log quick on $ext_if inet from any to <reserved>

Pozor na rozdil mezi PF a IPF, to jsou dva ruzne firewally ;o) Je 
pouzivam PF (ten byl importovany jako treti friewall z OpenBSD), IPF 
neboli IP Filter je na FreeBSD asi od verze 2.2.
Aby toho nebylo malo, tak na NetBSD maji jeste svuj NPF.

A jak jsme tu resili prichozi / odchozi z 67 / 68 tak funkcni reseni je 
tohle:

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

Puvodne jsem si do pravidel dal obe varianty a pak kouknul na pftop 
statistiky, ktera pravidla se skutecne pouzivaji.


> BIND po startu zahodi root prava a prepdne se na uzivatele 'bind'. Ale 
> na portech <1024 muze poslouchat jen root - zrejme proto ten EPERM.

A nemelo by se to pak stejne chovat jak pro UDP, tak pro TCP? Nebo se 
tyhle dva protokoly natolik lisi v kodu, ze to pak i jinak zafunguje pri 
ifconfig down / up?

> Ja mam kvuli tomu kernelu nahrany mac_portacl a v /etc/sysctl.conf 
> nasledujici:
> # ------------------
> #By default, ports below 1024 can only be used by privileged processes 
> which run as root. For mac_portacl(4) to allow non-privileged processes 
> to bind to ports below 1024, set the following tunables as follows:
> security.mac.portacl.port_high=1023
> net.inet.ip.portrange.reservedlow=0
> net.inet.ip.portrange.reservedhigh=0
> #To prevent the root user from being affected by this policy
> security.mac.portacl.suser_exempt=1
> #permits the user with the UID of 53 to bind to TCP & UDP port 53
> security.mac.portacl.rules=uid:53:udp:53,uid:53:tcp:53
> # ------------------

mac_portacl jsem pred lety zvazoval kvuli nejakemu uplne jinemu projektu 
a nakonec na to nedoslo, tak je mozne, ze ted uzral ten cas a zkusim to 
s BINDem.
Diky za tip.

Mirek


More information about the Users-l mailing list