Blokowanie stron phishingowych w sieciach opartych o urządzenia Aruba Networks
W tym artykule opiszę jak niskim kosztem zaimplementować blokowanie stron phishingowych.
Co będzie potrzebne?
Serwer z Dockerem (np. NAS) i aplikacją docker-compose.
Instalacja kontenera Pi-hole
Utwórz katalog roboczy (dla porządku):
mkdir pihole
Przejdź do katalogu roboczego:
cd pihole
Otwórz edytor nano z pustym plikiem docker-compose.yml:
nano docker-compose.yml
W wyświetlonym edytorze wklej poniższy kod:
version: "3"
# More info at https://github.com/pi-hole/docker-pi-hole/ and https://docs.pi-hole.net/
services:
pihole:
container_name: pihole
image: pihole/pihole:latest
ports:
- "53:53/tcp"
- "53:53/udp"
- "67:67/udp"
- "80:80/tcp"
- "443:443/tcp"
environment:
TZ: 'Europe/Warsaw'
# WEBPASSWORD: 'set a secure password here or it will be random'
# Volumes store your data between container upgrades
volumes:
- './etc-pihole/:/etc/pihole/'
- './etc-dnsmasq.d/:/etc/dnsmasq.d/'
- './regex-importer-for-pi-hole/:/regex-importer-for-pi-hole'
# Recommended but not required (DHCP needs NET_ADMIN)
# https://github.com/pi-hole/docker-pi-hole#note-on-capabilities
cap_add:
- NET_ADMIN
restart: unless-stopped
Pobierz z GitHuba do tego samego folderu repozytorium regex-importer-for-pi-hole (mój autorski projekt importujący wyrażenia RegEx do Pi-hole):
git clone https://github.com/radoslawkierznowski/regex-importer-for-pi-hole.git
Uruchom polecenie sudo docker-compose up -d --force-recreate
Jeśli po wykonaniu powyższego polecenia zaskoczy Cię komunikat podobny do tego:

Powinieneś sprawdzić co nasłuchuje na wskazanym porcie (na powyższym przykładzie port 53).
Wykonaj polecenie:
sudo lsof -i -P -n | grep 53
Powinna wyświetlić się usługa nasłuchująca na wskazanym porcie:

W moim przypadku nasłuchiwał systemd-resolve. Jest to systemowy cache DNS. Aby rozwiązać ten problem wystarczy wyłączyć cache poleceniem:
sudo sed -r -i.orig 's/#?DNSStubListener=yes/DNSStubListener=no/g' /etc/systemd/resolved.conf
I zmienić link symboliczny pliku konfiguracyjnego:
sudo sh -c 'rm /etc/resolv.conf && ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf’
Pozostaje jeszcze tylko restart systemd-resolved:
systemctl restart systemd-resolved
Teraz bez problemu uda się uruchomić docker-compose (sudo docker-compose up -d --force-recreate).
Wejdź do kontenera poleceniem:
sudo docker exec -it pihole bash
Przejdź do katalogu regex-importer-for-pi-hole:
cd regex-importer-for-pi-hole
Uruchom skrypt:
sh regex-importer.sh
Dodaj blocklistę HOLE.CERT.PL (http://hole.cert.pl/domains/domains_hosts.txt) wchodząc na stronę http://pi.hole/admin/groups-adlists.php (pi.hole można zamienić na adres IP serwera, na którym zainstalowano kontener z Pi-hole), wypełnij formularz według wzoru i naciśnij Add:

Odśwież bazę danych Pi-hole uaktualniając ją poleceniem pihole -g.
Zainstaluj nano poleceniem apt install nano (kontener nie posiada żadnego edytora).
Uruchom crontab -e.
Dodaj na końcu wpis aktualizujący bazę danych Pi-hole co 5 minut:*/5 * * * * PATH="$PATH:/usr/sbin:/usr/local/bin/" pihole updateGravity
Konfiguracja serwera DHCP
Teraz ostatni etap konfiguracji dotyczy zmiany adresu podstawowego serwera DNS w konfiguracji serwera DHCP. W zależności jak bardzo rozbudowana jest Twoja sieć możesz to zrobić w kilku miejscach. Biorąc pod uwagę fakt, że w tym artykule Pi-hole był implementowany w celu ograniczenia phishingu, więc warto zastosować go globalnie. Jeśli zarządzasz siecią korzystając z Aruba Mobility Mastera to możesz w prosty sposób zmienić konfigurację DHCP na poziomie grupy. Dokładny proces konfiguracji serwera DHCP znajdziesz w odcinku 20T37 Sieć WiFi Guest w 10 min. Konfiguracja DHCP dla grupy zaczyna się od 1:30. Pamiętaj, że tu chodzi o modyfikację istniejącej konfiguracji, więc sam najlepiej wiesz gdzie powinieneś się udać 😉
