Reverse Proxy: Benteng Digital yang Membuat Website Anda Tak Terlihat oleh Peretas.

Tak terlihat oleh peretas? kayak cuman clickbait wkkwkwk tapi benaran loh bisa menyembunyikan website menggunakan reverse proxy, kan biasanya reverse proxy digunakan untuk load balancing atau untuk agar TLS nya gak buat berkali kali lagi, Nah dari itu sebenarnya reverse proxy jadi garda terdepan setelah DNS untuk membuat domain kita memiliki website ataupun service (TCP/UDP or any). Oh ya mungkin yang merasa jaog atau udah tau kalo mau tetep baca gpp sii tapi kalo merasa buang-buang waktu yaudah sih stop baca wkkwkwk.
Pertama tama di sini jangan lupa set DNS A record subdomainya pakai * atau bisa di bilang *.domain.com atau disebut wildcard dan pointernya ke IP public server reverse proxie yang mau di setup. BTW bisa juga *.subdomain.domain.com
Mungkin aku mau nunjukin maksudnya apa, jadi kan kalau mau membuat website seperti page admin,soal CTF yang seharusnya di rahasia in tanpa terkena recon subdomain finder atau menggunakan https://crt.sh/ yang dapat di lihat setiap pembuatan TLS akan muncul. nah jadi sehubung web rahasia kita gak mau bocor bisa pakai reverse proxy untuk menjadi database subdomainya, dan cara kerjanya tetep yang utama di DNS servernya jadi kalo ada web emang mau di publish bisa setnya di DNS aja udah cukup. Nah yang uniknya reverse proxy itu, kalo DNS kan kasih domain name sama IP nya dulu kalo reverse proxy langsung kasih response HTTP / HTTPS.
Kalo gitu ketimbang basa basi, Disini saya menggunakan DNS Cloudflare dan itu gratis plan mungkin ada proses tambahan karena saya berencana untuk menambahkan proxied nya menyala mungkin yang tidak menyalakan proxied di Cloudflare DNS / menggunakan DNS lain / Cloudflare Plan berbayar mungkin tidak perlu. Mungkin disini aku buat api key Cloudflare dengan url Cloudflare Dashboard | Manage Your Account dan juga minus nya kalau proxied tidak bisa TCP,UDP,HTPP,SSH dkk hanya bisa HTTPS selain Plan berbayar mungkin beda lagi.

Create Token → Edit zone DNS (Template) → Permission
Zone → DNS → Edit
Zone → Zone → Read
Lalu untuk Zone Resources karena untuk 1 domain aja jadi aku set Include → spesifice zone → pilih domain, lalu continue dan create token

lalu buat file bernama cloudflare.ini gak harus itu namanya bisa sii taruhnya pun bisa mana aja juga kalo aku taruh home user folder. lalu isinya
dns_cloudflare_api_token = TOKEN_YANG_DIKASIH

terus set permission filenya
chmod 600 ~/cloudflare.ini
terus install certbot dengan cloudflare certbot
sudo apt update
sudo apt install certbot python3-certbot-dns-cloudflare
lalu kirim command “jangan lupa di ganti directory api token sama domainnya dengan yang kalian buat / punya”
sudo certbot certonly \
--dns-cloudflare \
--dns-cloudflare-credentials ~/cloudflare.ini \
-d "*.domain.com" -d "domain.com"
sudo certbot renew --dry-run
nah setelah itu untuk reverse proxynya aku pake NGINX bebas sii preferensi masing masing
sudo apt install nginx
setelah itu buat file di “/etc/nginx/sites-available” mungkin aku buat nama filenya “ajojing” rubah sesuai yang kalian ingin buat, rubah server_name yang ingin di buat dan ganti lokasi SSL yang udah di buat oleh certbot
server {
listen 80;
server_name ajojing.domain.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name ajojing.domain.com;
ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
location / {
proxy_pass http://127.0.0.1:4000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Setelah itu buat symlink ke site-enabled folder jangan lupa ganti nama ajojing dengan file yang kalian buat
sudo ln -s /etc/nginx/sites-available/ajojing /etc/nginx/sites-enabled/
setelah itu
#cek config aman apa engga
sudo nginx -t
jika aman tidak ada error maka lanjut
sudo systemctl reload nginx
dan yah seharusnya website yang kalian reverse proxy akan muncul di domain yang akan kalian buat contoh punya si penulis itu frostfire.id maka keluarnya di TLS full *.frostfire.id padahal ada page rahasia https://secret.frostfire.id tapi tidak muncul di subdomain finder dan juga certificate history


EXTRA
coba deh buat versi * atau wildcardnya buat file lagi di site-available ku namain “fake”
server {
listen 80;
server_name domain.com *.domain.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name domain.com *.domain.com;
ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
# Always return a blank 200 OK page for any request
location / {
default_type text/plain;
return 200 'Ayyo what are you doing here 💀';
}
}
terus
sudo ln -s /etc/nginx/sites-available/fake /etc/nginx/sites-enabled/
sudo systemctl reload nginx
jadi kalo mereka nyoba brutefore subdomain seperti 123.domain.com abcd.domain.com dst, bakalan response 200 semua wkwkwk
buat pagenya bebas si di customize html,css atau framework laravel,nextjs sebebas bebas kalian dah
EXTRA 2
buat file /etc/nginx/snippets/dot_blocker.conf
location ~ /\.(?!well-known).* {
default_type text/plain;
return 200 'Ayyo what are you doing here 💀';
access_log off;
log_not_found off;
}
lalu di dalam setiap file di folder site-available kalo mau aman dari request langsung .env,.git, dst yang awalnya dot dot an selain .well-known untuk TLS. dan masukkan di server { yang listen 443 TLS
server {
include /etc/nginx/snippets/dot_blocker.conf;
contoh
server {
listen 443 ssl http2;
server_name ajojing.domain.com;
include /etc/nginx/snippets/dot_blocker.conf;
ssl_certificate /etc/letsencrypt/live/ajojing.domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/ajojing.domain.com/privkey.pem;
....
lalu
sudo systemctl reload nginx
maka akan keluar


bebas si di customize pagenya html,css atau framework laravel,nextjs sebebas bebas kalian dah





