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ć 😉