Categories: Umum

Install AdGuardHome sebagai DNS-over-HTTPS (DoH) di NAT VPS

NATVPS.idAdGuardHome adalah software pemblokir iklan & tracker di tingkat jaringan. AdGuardHome berfungsi sebagai DNS server yang akan memblokir koneksi iklan dari perangkat pengguna. AdGuardHome bersifat open-source dan dapat di-selfhost pada server kita.

Artikel ini membahas mengenai langkah-langkah install AdGuardHome di NAT VPS beserta konfigurasi NGINX untuk reverse-proxy DNS-over-HTTPS (DoH). Artikel ini menggunakan Ubuntu 22.04 sebagai acuan, namun Anda dapat menggunakan distribusi lain seperti Debian dan CentOS. Pastikan OS yang digunakan didukung oleh AdGuardHome.

Konfigurasi Port Forwarding

Mengingat kita menggunakan NAT, kita perlu menambahkan 2 konfigurasi port forwarding pada panel Virtualizor (atau panel VPS lain sesuai provider), yaitu port forwarding HTTP dan HTTPS untuk akses AdGuardHome.

Sebagai contoh, pada artikel ini akan menggunakan domain adguard.tutorial.mdinata.my.id. Anda bebas mengganti domain sesuai pilihan Anda. Catat port dan domain ini, karena kita akan menggunakannya lagi pada proses instalasi.

Jangan lupa untuk menambahkan DNS record yang menuju ke IP publik NAT VPS Anda, seperti ini:

Menonaktifkan Systemd-Resolved (Port 53)

Distribusi seperti Ubuntu dan turunannya secara bawaan menggunakan systemd-resolved yang berjalan di port 53. Port ini akan digunakan oleh AdGuardHome untuk menjalankan DNS server, sehingga systemd-resolved perlu dinonaktifkan.

Untuk mengecek apakah port 53 sedang digunakan, gunakan perintah:

sudo lsof -i :53

Pertama, buat konfigurasi untuk systemd-resolved

sudo mkdir -p /etc/systemd/resolved.conf.d
nano /etc/systemd/resolved.conf.d/adguardhome.conf

Isikan dengan konfigurasi berikut:

[Resolve]
DNS=127.0.0.1
DNSStubListener=no

Simpan file tersebut dengan Ctrl-Xy, kemudian Enter.

Kemudian, ganti resolv.conf menggunakan:

sudo mv /etc/resolv.conf /etc/resolv.conf.backup
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf

Terakhir, restart systemd-resolved:

sudo systemctl reload-or-restart systemd-resolved

Cek lagi port 53, seharusnya sudah tidak ada program yang berjalan sekarang.

Install AdGuardHome

Unduh rilis terbaru AdGuardHome:

curl -LO https://github.com/AdguardTeam/AdGuardHome/releases/latest/download/AdGuardHome_linux_amd64.tar.gz

Ekstrak AdGuardHome ke /opt:

tar -xzvf AdGuardHome_linux_amd64.tar.gz -C /opt

Terakhir, mulai instalasi AdGuardHome:

cd /opt/AdGuardHome
./AdGuardHome -s install

Konfigurasi NGINX (Reverse Proxy)

Agar kita dapat mengakses AdGuardHome melalui domain seperti adguard.tutorial.mdinata.my.id, kita dapat menggunakan reverse proxy seperti NGINX.

Pertama, install NGINX melalui perintah:

# Hapus Apache2 dan pendukungnya (biasanya terpasang secara bawaan di VPS OpenVZ)
apt purge apache2* -y

# Install NGINX
apt install nginx -y

Buat konfigurasi host baru khusus untuk AdGuardHome:

nano /etc/nginx/sites-available/adguard

Kemudian tempelkan konfigurasi berikut:

# https://natvps.id/install-adguardhome-doh-nat-vps

    server {
        listen 80;
        listen [::]:80;

        server_name adguard.tutorial.mdinata.my.id;

        location / {
            proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header                   Host $host;
            proxy_set_header                   X-Real-IP $remote_addr;
            proxy_pass  http://12.0.0.17:3000;
            proxy_redirect                     / /;
            proxy_cookie_path                  / /;
        }

        location /dns-query {
            proxy_set_header Host            $http_host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_bind 12.0.0.17;

            proxy_pass http://12.0.0.17:3000/dns-query;
        }
    }

Ganti adguard.tutorial.mdinata.my.id dengan domain Anda. Ganti juga 12.0.0.17 dengan alamat IP private NAT VPS Anda (bukan publik!).

Aktifkan konfigurasi tersebut dengan:

ln -sf /etc/nginx/sites-available/adguard /etc/nginx/sites-enabled/adguard

# Restart NGINX
systemctl restart nginx

Generate Sertifikat SSL (Let’s Encrypt)

Agar domain kita dapat diakses melalui HTTPS, kita perlu membuat sertifikat SSL. Kita dapat menggunakan sertifikat SSL gratis dari Let’s Encrypt melalui Certbot.

Install Certbot dan plugin NGINX nya menggunakan perintah:

apt install python3-certbot python3-certbot-nginx

Lalu, generate sertifikat melalui Certbot dengan perintah

certbot --nginx -d adguard.tutorial.mdinata.my.id

Ganti adguard.tutorial.mdinata.my.id dengan domain Anda.

Selamat! Domain Anda saat ini dapat diakses melalui koneksi aman HTTPS.

Mengonfigurasi AdGuardHome

AdGuardHome dapat diakses melalui domain Anda sebelumnya. Contoh: https://adguard.tutorial.mdinata.my.id.

Pada Antarmuka Halaman Admin, pilih interface dari NAT VPS, kemudian ganti port ke 4000. Pada Server DNS, gunakan juga interface yang sama dengan sebelumnya.

Pada Otentikasi, masukkan username/password yang ingin Anda gunakan.

Jika sudah, maka AdGuardHome akan tidak dapat diakses untuk sementara, karena kita menggunakan port 4000. Menggunakan port 3000 langsung akan menyebabkan error di web UI AdGuardHome.

Ganti lagi ke port 3000 dengan membuka file /opt/AdGuardHome/AdGuardHome.yaml:

nano /opt/AdGuardHome/AdGuardHome.yaml

Ganti port pada address menjadi 3000:

Terakhir, restart AdGuardHome:

systemctl restart AdGuardHome

Penutup

Demikianlah artikel ini mengenai langkah-langkah install AdGuardHome di NAT VPS. Jika bingung atau ragu, jangan sungkan untuk bertanya di grup Telegram @IPv6Indonesia. Terima kasih!

Hendra Manudinata

Recent Posts

Cara Install Gopeed Web Downloader di NAT VPS

NATVPS.id – Gopeed (Go Speed) adalah aplikasi pengunduh modern bersifat open-source yang yang mendukung berbagai…

9 bulan ago

Cara Streaming IPTV dengan ViniPlay + M3U

NATVPS.id – IPTV (Internet Protocol Television) adalah teknologi yang menyiarkan konten televisi, video, dan siaran…

9 bulan ago

Install Jellyfin Media Server di NAT VPS

NATVPS.id – Jellyfin adalah server media open-source yang memungkinkan Anda mengatur, melakukan streaming, dan mengelola…

9 bulan ago

Cara Install Gitea Git Server di NAT VPS

NATVPS.id – Gitea adalah sebuah layanan hosting Git (pengelola repositori kode) open-source yang dapat di…

9 bulan ago

Cara Install LibreOffice via Docker di NAT VPS

NATVPS.id – LibreOffice adalah perangkat lunak perkantoran (office) yang gratis, modern, dan open-source. LibreOffice dapat…

10 bulan ago

Install Pi-Hole + OpenVPN Server di NAT VPS

NATVPS.id – Pi-hole adalah software DNS Server yang berfokus pada pemblokiran iklan dan situs trackers.…

11 bulan ago