Czy to możliwe, aby skonfigurować BIND jako serwer DNS w mojej sieci lokalnej i wykonywać skrypty, gdy zostanie wyszukany?
Chciałbym wykonać skrypt Python lub Bash, w oparciu o przychodzące wyszukiwanie DNS, jak mogę to rozwiązać?
Jeśli to możliwe w Bind, powiedz mi, jak to zrobić, a jeśli nie, powiedz, czy jest to możliwe w innych implementacjach serwera DNS, które działają na Ubuntu.
Dziękuję Ci bardzo.
Odpowiedzi:
Mogę wymyślić dwie dodatkowe opcje, które w ogóle nie wymagają analizy dzienników BIND ani ingerowania w BIND.
1) Mirroring portów - duplikuj pakiety i wysyłaj je do osobnego portu, na którym aplikacja nasłuchuje, analizuje żądania DNS i podejmuje działania.
dpkt
lubscapy
podobne biblioteki do tworzenia pakietów pomogą parsować nieprzetworzone żądania.2) Użyj jakiegoś rodzaju biblioteki wąchania pakietów, aby pasywnie monitorować żądania. Oto przykład z użyciem
scapy
:Oczywiście jest to tylko prymitywny przykład. Drukuje tylko nazwę domeny, której dotyczy zapytanie, ale można oczywiście dodać sporo logiki. Jeśli odwołujesz się do dokumentacji scapy, przekonasz się, że wszystkie pola z żądania DNS są łatwo dostępne.
źródło
Można to zrobić, monitorując dziennik serwera powiązań (rejestrowanie zapytań musi być włączone). Powodzenia...
źródło
/dev/shm
.swatch
lub OSSEC w dziennikach, aby wywołać skrypt. w każdym razie niezbyt dobry pomysł na dłuższą metę.Żadne takie rzeczy jak zdarzenia nie są zaimplementowane w bind, nie potrzebuje tego.
Możesz rozejrzeć się za aplikacyjnymi zaporami ogniowymi, które są używane w niektórych organizacjach w celu ograniczenia dostępu do niektórych użytkowników. Tam masz większe szanse na osiągnięcie tego, co chcesz.
Konfigurowanie tras również wydaje się dobrym pomysłem, w końcu to, co chcesz osiągnąć dzięki wiązaniu i uruchamianiu skryptów, również będzie nieefektywne: musisz:
Konfiguracja mnóstwa tras nie stanowi problemu i nie wpłynie znacząco na wydajność. Jak myślisz, ile tras ma router korporacyjny? setki? niezupełnie ... I niekoniecznie mają fantazyjną konfigurację sprzętową. Poważnie, wszystko w porządku, poważne systemy operacyjne są specjalnie zaprojektowane do obsługi wielu tras i optymalizacji wyszukiwania.
Poza tym przede wszystkim chciałbyś użyć bazy danych na szczycie tabeli routingu, która byłaby innym rodzajem bazy danych. Nie komplikuj. Na serwerach BGP wiele tras jest faktycznie wybieranych / preferowanych ze względów politycznych / finansowych, każdy ISP / organizacja może to zrobić i wszystkie dodają w tym celu określone trasy. Koszt tranzytu lub orzeczenia sądowego jest często przyczyną takich środków.
źródło