[6] PF – Packet Filter – Zarządzanie tabelą przeciążenia

31 stycznia 2024 Wyłączono przez Adam [zicherka] Nogły

Z czasem tabela przeciążenia <bruteforce> zapełni się złośliwymi adresami IP i będzie musiała być okresowo czyszczona. Jest mało prawdopodobne, że osoba atakująca będzie nadal używać tego samego adresu IP, dlatego przechowywanie ich w tabeli przeciążenia przez długi czas jest sprzeczne z intuicją.

Użyjemy [pfctl] do ręcznego wyczyszczenia adresów IP, które były przechowywane w tabeli przeciążenia przez 48 godzin lub dłużej za pomocą następującego polecenia:

root@vfbsd01:~ # pfctl -t bruteforce -T expire 172800
0/0 addresses expired.

Przekazujesz opcję [-t bruteforce], która oznacza tabelę bruteforce, oraz opcję [-T], która pozwala uruchomić kilka wbudowanych poleceń. W takim przypadku uruchamiasz polecenie wygasania, aby usunąć wszystkie wpisy z [-t bruteforce] z wartością czasu wyrażoną w sekundach. Ponieważ pracujemy na świeżym serwerze, prawdopodobnie nie ma jeszcze adresów IP w tabeli przeciążenia.

Ta reguła działa w przypadku szybkich poprawek, ale bardziej niezawodnym rozwiązaniem byłoby zautomatyzowanie procesu za pomocą crona, narzędzia do planowania zadań FreeBSD. Stwórzmy więc skrypt powłoki, który zamiast tego uruchomi tę sekwencję poleceń.

Utworzymy zatem plik skryptu powłoki w katalogu [/usr/local/bin]:

root@vfbsd01:~ # mcedit /usr/local/bin/clear_overload.sh
# stwórz nowy
#!/bin/sh
pfctl -t bruteforce -T expire 172800

Następnie nadaj temu plikowi odpowiednie uprawnienia – wykonania:

root@vfbsd01:~ # chmod 755 /usr/local/bin/clear_overload.sh

Następnie utworzymy zadanie, które będzie regularnie wykonywane przez cron.

root@vfbsd01:~ # mcedit /etc/crontab
# dodaj na końcu
*       0       0       0       0       root    /usr/local/bin/clear_overload

To zadanie cron uruchamia skrypt [clear_overload.sh] codziennie o północy, usuwając adresy IP sprzed 48 godzin z tabeli przeciążenia <bruteforce>.