Keamanan
Pi-hole: Blokir Iklan dan Tracker di Tingkat DNS untuk Seluruh Jaringan
Baca juga
Pi-hole adalah DNS sinkhole yang memblokir iklan dan tracker di tingkat DNS. Berbeda dari browser ad blocker yang perlu diinstall di setiap perangkat, Pi-hole bekerja di level jaringan — sekali setup, semua perangkat yang menggunakan DNS server ini akan terproteksi tanpa instal software apapun.
## Mengapa Pi-hole?
**Network-Wide Blocking.** Satu Pi-hole melindungi semua perangkat di jaringan — laptop, HP, smart TV, IoT devices. Tidak perlu install ad blocker di masing-masing perangkat.
**Lebih Ringan dari Browser Extension.** Pi-hole hanya memblokir di DNS level (mengembalikan NXDOMAIN untuk domain iklan). Bandwidth dan CPU yang dihemat signifikan.
**Dashboard Real-time.** Web interface yang menampilkan queries, blocked domains, top domains, dan analytics dalam format yang mudah dipahami.
**Whitelist/Blacklist Granular.** Kontrol penuh atas domain mana yang diblokir dan diizinkan.
## Install Pi-hole
### Docker (Recommended)
```bash
docker run -d --name pihole \
-p 53:53/tcp \
-p 53:53/udp \
-p 8053:80/tcp \
-v pihole-data:/etc/pihole \
-v pihole-dnsmasq:/etc/dnsmasq.d \
-e TZ=Asia/Jakarta \
-e WEBPASSWORD=your-password \
--restart unless-stopped \
--cap-add=NET_ADMIN \
pihole/pihole:latest
```
### Docker Compose
```yaml
version: "3.8"
services:
pihole:
image: pihole/pihole:latest
container_name: pihole
restart: unless-stopped
ports:
- "53:53/tcp"
- "53:53/udp"
- "8053:80/tcp"
volumes:
- ./pihole:/etc/pihole
- ./dnsmasq:/etc/dnsmasq.d
environment:
TZ: Asia/Jakarta
WEBPASSWORD: your-password
cap_add:
- NET_ADMIN
```
### Install di Raspberry Pi / VPS
```bash
curl -sSL https://install.pi-hole.net | bash
```
Ikuti installer wizard. Setelah selesai, akses dashboard di `http://:8053/admin`.
## Konfigurasi DNS
### Di Router (Recommended)
Set DNS server router ke IP Pi-hole. Semua perangkat di jaringan otomatis menggunakan Pi-hole.
### Di Perangkat Individual
Set DNS manual:
- **Android:** Settings → Network → WiFi → Advanced → DNS → ``
- **iPhone:** Settings → WiFi → Configure DNS → Manual → ``
- **Windows:** Network Settings → Adapter → DNS → ``
## Blocklists
Pi-hole sudah include beberapa blocklists default. Tambahkan blocklists lain untuk proteksi lebih:
### Rekomendasi Blocklists
```
# Steven Black's Unified Hosts (combine multiple lists)
https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts
# AdGuard DNS Filter
https://adguardteam.github.io/AdGuardSDNSFilter/Filters/filter.txt
# OAD (OpenDNS)
https://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=0&mimetype=plaintext
# Malware Domain Blocklist
https://raw.githubusercontent.com/RPiList/specials/master/Blocklisten/malware
```
Tambahkan di Admin Dashboard → Group Management → Adlists.
### Update Blocklists
```bash
# Via web dashboard
Tools → Update Gravity
# Via CLI
pihole -g
```
## Whitelist dan Blacklist
### Whitelist (Izinkan domain)
```bash
# Via CLI
pihole -w example.com
# Via dashboard
Whitelist → Add
```
### Blacklist (Blokir domain)
```bash
# Via CLI
pihole -b tracking-domain.com
# Via dashboard
Blacklist → Add
```
### Regex Filtering
```bash
# Blokir semua domain yang mengandung "ads"
pihole -regex ".*ads.*"
# Blokir semua tracking pixels
pihole -regex ".*\.track\..*"
```
## DHCP Server
Pi-hole bisa menggantikan DHCP server di router:
### Enable DHCP
1. Admin Dashboard → Settings → DHCP
2. Enable DHCP Server
3. Set range: `192.168.1.201 - 192.168.1.254`
4. Set gateway: `192.168.1.1`
5. **Disable DHCP di router** (penting — jangan ada 2 DHCP server)
Keuntungan: Pi-hole bisa menampilkan hostname perangkat di dashboard.
## Custom DNS Entries
Tambahkan DNS record manual untuk perangkat lokal:
```bash
# Via CLI
pihole -a addnas 192.168.1.10 nas
pihole -a addnas 192.168.1.20 printer
# Via admin dashboard
Local DNS → DNS Records
```
Sekarang `nas.local` akan resolve ke `192.168.1.10`.
## VPN Remote Access
Akses Pi-hole dari luar jaringan dengan WireGuard:
```bash
# Install WireGuard
apt install -y wireguard
# Buat config
cat > /etc/wireguard/wg0.conf << 'EOF'
[Interface]
PrivateKey =
Address = 10.0.0.1/24
ListenPort = 51820
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
[Peer]
PublicKey =
AllowedIPs = 10.0.0.2/32
EOF
wg-quick up wg0
```
Di phone/client, set DNS ke `10.0.0.1` (VPN IP Pi-hole).
## Monitoring dan Analytics
### Dashboard Features
- **Total queries:** Total DNS queries hari ini
- **Blocked:** Jumlah query yang diblokir
- **% Blocked:** Persentase blokir
- **Top domains:** Domain paling banyak di-query
- **Top advertisers:** Domain iklan paling aktif
- **Query log:** Real-time log semua DNS queries
- **Long-term data:** Analytics historis
### API
```bash
# Total queries hari ini
curl -s "http://pihole:8053/admin/api.php?summaryRaw" | jq '.dns_queries_today'
# Blocked queries
curl -s "http://pihole:8053/admin/api.php?summaryRaw" | jq '.queries_blocked_today'
```
## Tips
**Block YouTube Ads.** YouTube ads sulit diblokir di DNS level. Gunakan combination:
1. Pi-hole untuk blocking awal
2. uBlock Origin di browser untuk blocking remaining
3. SponsorBlock untuk video sponsor segments
**Gaming Issues.** Beberapa game butuh domain tertentu. Jika game bermasalah, whitelist domain-nya:
```bash
pihole -w example-game-domain.com
```
**Smart Home.** IoT devices sering kirim telemetry. Pi-hole bisa memblokir ini, tapi bisa juga break functionality. Whitelist domain yang dibutuhkan device.
**Performance.** Pi-hole sangat ringan. 1 CPU core dan 256MB RAM sudah lebih dari cukup untuk jaringan rumah dengan 20+ perangkat.
Pi-hole adalah investment yang sangat worth it untuk privasi dan keamanan jaringan. Sekali setup, semua perangkat terproteksi tanpa effort tambahan.