Internet jest pełny osób przeprowadzających próby ataków. Tworzą oni bardzo zmyślne narzędzia automatyzujące ich pracę.
Między innymi tworzą boty skanujące pule adresowe internetu. Dziennie zauważam kilkadziesiąt prób ataków. Najczęściej boty próbują się logować na popularne usługi takie jak telnet czy ssh za pomocą popularnych loginów i haseł.
Najprostszą defensywą jest zablokować adresy IP z których są przeprowadzane wszelkie ataki.
Istnieje lista takich adresów IP. Jest ona na bieżąco uaktualniana. Listy można znaleźć na stronie https://lists.blocklist.de/lists/ .
Możemy wybrać listę która nas interesuje, nie musimy blokować wszystkich podejrzanych adresów. Możemy wybrać spośród list zawierających adresy atakujących konkretne usługi, porty lub typy ataków.
W artykule przedstawię w jaki sposób blokować wszystkie podejrzane adresy IP na routerze firmy Mikrotik wraz z aktualizacją przeprowadzaną raz na dobę.
Do aktualizacji listy na routerze będziemy potrzebować serwera na Linux, który będzie przygotowywał listę do implementacji w routerze.
Na serwerze instalujemy serwer WWW np. Apache. Następnie tworzymy skrypt pobierający aktualną listę z https://lists.blocklist.de/lists/ .oraz przygotowujący listę na możliwą do interpretacji przez router.
Na serwerze instalujemy serwer webowy oraz tworzymy plik ze skryptem.
apt-get install apache2
touch ipaddressblock.sh
nano ipaddressblock.sh
Treść skryptu
#!/bin/sh
# the full path of the file we create
filename=/var/www/html/addIPblock.rsc
# remove the comment if you want to use the List of All Current Tor Server IP Addresses
url=https://lists.blocklist.de/lists/all.txt
echo "# This script adds IP addresses to an address-list (list created: $(date))" > $filename
echo "/ip firewall address-list" >> $filename
/usr/bin/wget -q -O - $url | sort -u | awk --posix '/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/ { print "add list=addressIPblock address="$1" " ;}' >> $filename
W piątej linijce skryptu możemy zmienić pobieraną listę na tę, która nas interesuje.
Musimy mu nadać uprawnienia do uruchamiania
chmod +x ipaddressblock.sh
następnie skonfigurować cron aby uruchamiał go raz dziennie. Najlepiej nocą, gdy ruch jest najmniejszy.
crontab -e
na końcu piku dodajemy
5 0 * * * root /bin/sh /root/ipblock.sh
Zapisujemy zmiany, od tej chwili skrypt będzie uruchamiany codziennie pięć minut po północy.
Teraz możemy przystąpić do konfiguracji mikrotika
Musimy dodać skrypt który będzie aktualizował listę.
# get the "add script"
/tool fetch url="http://adres naszego serwera linux/addIPblock.rsc" mode=http
:log info "Downloaded new IP block list"
# remove the old entries
/ip firewall address-list remove [/ip firewall address-list find list=addressListTor]
# import the new entries
/import file-name=addIPblock.rsc
:log info "Removed old IP addresses and added new ones"
Musimy pamiętać o podaniu swojego serwera (w drugiej linijce) na którym jest uruchomiony nasz skrypt. Skrypt potrzebuje uprawnienia read, write oraz test.
Dodajemy regułę uruchamiającą nasz skrypt cyklicznie raz na dobę, musi to następować po aktualizacji listy przez nasz serwer.
Osobiście mam ustawione uruchamianie dziesięć minut po północy.
Ostatnią rzeczą jest dodanie odpowiedniej reguły firewall odrzucającą ruch przychodzący z adresów IP znajdujących się na liście
/ip firewall filter add chain=input src-address-list=addressIP block action=drop place-before=0