Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Witam,
mam u siebie postawione FreeBSD 10.1
# uname -a FreeBSD gw.lan 10.1-RELEASE-p6 FreeBSD 10.1-RELEASE-p6 #0: Tue Feb 24 19:00:21 UTC 2015 root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC amd64
Potrzebuję zablokować bindowania na porty wszystkim użytkownikom na wszystkich portach i zezwolić tylko na wybrane.
Doszukałem się modułu mac_portacl. Domyślnie ostatni możliwy port to:
net.inet.ip.portrange.last: 65535
więc pomyślałem sobie, że włącze portacl i ustawie wskazany nr portu, jako ostatni chroniony
# sysctl security.mac.portacl security.mac.portacl.enabled: 1 security.mac.portacl.suser_exempt: 1 security.mac.portacl.autoport_exempt: 1 security.mac.portacl.port_high: 65535
Sprawdzam na użytkoniku, np. nc -l 8080, no wszystko fajnie Operation not permitted.
Na tej maszynce potrzebuję mieć uruchomiony lokalny cache dns - domyślny w systemie - unbound.
Dodałem więc regułkę o bindowanie na portach 53 tcp i udp dla użytownika unbound (uid 59), wygląda to tak:
security.mac.portacl.rules=uid:59:tcp:53,uid:59:udp:53
ok, unbound się uruchamia i nasłuchuje na porcie 53.
sockstat -4l USER COMMAND PID FD PROTO LOCAL ADDRESS FOREIGN ADDRESS unbound unbound 65917 3 udp4 *:53 *:* unbound unbound 65917 4 tcp4 *:53 *:*
no ale
# host dug.net.pl Host dug.net.pl not found: 2(SERVFAIL)
Unbound nie potrafi odpytać podanego forwarda, w logach można zobaczyć:
# tail /var/log/debug.log unbound: [78958:0] debug: failed address 0.0.0.0 port 40476 unbound: [78958:0] debug: failed address 0.0.0.0 port 12003 unbound: [78958:0] debug: failed address 0.0.0.0 port 38110
Dobra, spróbuję zmusić unbound aby korzystał przy tym z konkretnych portów zamiast losowych, więc dodałem w configu na sztywno ok 10-ciu portów
cat /var/unbound/unbound.conf server: ... outgoing-port-permit: 47681 outgoing-port-permit: 55655 outgoing-port-permit: 36989 ...
Rozszerzyłem stosownie regułkę (na tcp i udp dla podanych)
security.mac.portacl.rules=uid:59:tcp:53,uid:59:udp:53,uid:59:udp:47681,uid:59:tcp:47681,...
No i jak się domyślacie w niczym mi to nie pomaga, więc mam do Was pytanie jak to ogarnąć?
Jak zmusić unbound do działania w takich warunkach lub też jak inaczej zabronić bindowania na porty wszystkim użytkownikom?
Przy założeniu takim, że wykorzystujemy tylko to co oferuje domyślna instalacja FreeBSD
Wyszło przydługawo, ale starałem się opisać krok po kroku co próbowałem.
Offline