uRPF w ip_input.c FreeBSD
Reverse Path Filtering to mechanizm sprawdzający źródłowy adres w otrzymanym pakiecie z zawartością tablicy routingu.
Pakiet jest akceptowany do dalszej obróbki przez system jeśli:
- istnieje w tablicy routingu wpis dla sieci zawierającej źródłowy adres otrzymanego pakietu IP i wpis ten wskazuje na interfejs, którym pakiet dotarł
- nie ma w tablicy routingu wprost wpisu na sieć z której pakiet dotarł, ale otrzymaliśmy go interfejsem, na który wskazuje trasa domyślna
- adres źródłowy nie należy do sieci wymienionej w tablicy routingu z flagą RTF_REJECT lub RTF_BLACKHOLE
Ten prosty test wykonany możliwie wcześnie uniemożliwia transmisję przez router pakietów ze sfałszowanym adresem IP i w przeciwieństwie do statycznych reguł zdefiniowanych w Twoim ulubionym filtrze pakietów mechanizm dostosowuje się przy zmianach w tablicy routingu.
Patch można zaaplikować do systemów:
- ip_input.c v1.130.2.55 z 2005/01/02 (RELENG_4)
- ip_input.c v1.283.2.14 2005/07/20 (RELENG_5)
- ip_input.c v1.301.2.3 z 2005/10/09 (RELENG_6)
Włączenie wykonywania testów odbywa się przez ustawienie wartości sysctl net.inet.ip.urpf na 1 lub 2 (domyślnie ustawiona jest na 0, jeśli chcesz to zmienić dodaj wpis net.inet.ip.urpf=1 do pliku /etc/sysctl.conf.
Ustawienie na 1 oznacza, że interfejs którym pakiet dotarł do systemu musi być tym, na który wskazuje wpis w tablicy routingu dla sieci z której dotarł.
Ustawienie na 2 nie sprawdza w ogóle interfejsów a jedynie fakt, czy pakiet nie pochodzi z sieci oznaczonej flagą REJECT lub BLACKHOLE.
Plik diff (do zaaplikowania w /usr/src/sys/netinet przez patch -p0 <ip_input.urpf.diff):
- http://lukasz.bromirski.net/projekty/freebsd/ip_input.urpf.diff
- SHA1: e519deaae593c28f505ee2d4db075986023a20b7
poprawna obsługa tras blackhole w Quagga bgpd dla FreeBSD
Patch powoduje, że trasy których next-hop ustawiony jest na Null0 (rekursywnie) są poprawnie rozwiązywane przez bgpd i instalowane w tablicy routingu FreeBSD.
Innymi słowy, potrzebujesz tego patcha jeśli chcesz skonfigurować tradycyjny BGP blackholing wskazując jako docelowy interfejs Null0. Możesz obejść problem ustawiając next-hop na adres z sieci 127/8, ale to mniej eleganckie ;)
- http://lukasz.bromirski.net/projekty/freebsd/quagga-null0.diff
- SHA1: 9aea26df2925a7d3ece0440fec72bd51545fd45e
OpenBGPd we FreeBSD
Grupa poprawek do pakietu OpenBGPd tak, by można jej było użyć na FreeBSD (i prawdopodobnie NetBSD). Obecnie w systemie portów dostępna jest już nowsza wersja tych patchy w związku z tym sugeruję zajrzenie do swojego /usr/ports/net/openbgpd.
v1.00 20/03/2005 19:15:00 Wersja PL
![]()
Wersja ENG
![]()