Tutorial Mengatasi DNS Cache Aneh di MikroTik (RB1100Hx2)

 



Permasalahan:
Entri DNS cache dengan nama domain acak dan tipe "unknown" seperti pada gambar sering mengindikasikan serangan cache poisoning, malware, atau konfigurasi yang tidak valid.

Solusi:


1. Flush DNS Cache (RouterOS CLI)

Langkah pertama untuk membersihkan cache yang tercemar:

bash
Copy
Download
/system script add name="flush_dns" source="/ip dns cache flush"
  • Cara menjalankan:

    • Buka terminal WinBox atau CLI.

    • Ketik:

      bash
      Copy
      Download
      /system script run flush_dns

2. Konfigurasi DNS Server Terpercaya

Ganti DNS server default dengan server yang lebih aman (Google/Cloudflare):

bash
Copy
Download
/ip dns set servers=8.8.8.8,1.1.1.1 allow-remote-requests=yes

3. Blokir Permintaan DNS ke IP Tidak Dikenal (Firewall)

Buat rule firewall untuk memblokir permintaan DNS mencurigakan:

bash
Copy
Download
/ip firewall filter add chain=forward protocol=udp dst-port=53 action=drop \
  comment="Block Unknown DNS" place-before=0

4. Update Firmware Router

Pastikan firmware MikroTik selalu terbaru:

bash
Copy
Download
/system package update check-for-updates
/system package update install

Catatan:

  • Lakukan ini saat jaringan tidak sibuk.

  • Backup konfigurasi sebelum update.


5. Aktifkan DNSSEC

Aktifkan validasi DNSSEC untuk mencegah spoofing:

bash
Copy
Download
/ip dns set use-doh=yes verify-doh-cert=yes

6. Script Auto-Flush DNS Berkala (Opsional)

Buat script untuk flush DNS otomatis tiap 1 jam:

bash
Copy
Download
/system scheduler add name="auto_flush_dns" interval=1h \
  on-event="/ip dns cache flush"

Untuk Perangkat Klien (Windows/Linux)

Jika masalah terjadi di perangkat pengguna, ajarkan pembaca untuk:

Windows:

Flush DNS lokal dengan Command Prompt:

cmd
Copy
Download
ipconfig /flushdns

Linux:

Restart service DNS resolver:

bash
Copy
Download
sudo systemctl restart systemd-resolved

Tips Tambahan:

  • Pantau DNS cache secara berkala dengan perintah:

    bash
    Copy
    Download
    /ip dns cache print
  • Gunakan Safe Mode di WinBox untuk menghindari perubahan tidak sengaja.

  • Scan jaringan dengan tools seperti Wireshark untuk deteksi aktivitas mencurigakan.


Peringatan:

  • Pastikan Anda memahami setiap perintah sebelum menjalankannya.

  • Backup konfigurasi router sebelum melakukan perubahan besar.

Semoga tutorial ini membantu mengamankan jaringan Anda! 🔒


Catatan untuk Blog:

  • Tambahkan screenshot perintah WinBox/CLI untuk visualisasi.

  • Gunakan format code block agar script mudah dibaca.

  • Sertakan anchor link ke bagian spesifik jika artikel panjang.

Tutorial Menanggulangi Serangan Malware Router Totolink, TP-Link, dan ONT ZTE lewat Firewall MikroTik

Tutorial Menanggulangi Serangan Malware Router Totolink, TP-Link, dan ONT ZTE lewat Firewall MikroTik


Tujuan:

  • Blokir akses dari Internet ke router pelanggan.

  • Blokir port management yang rawan.

  • Lindungi MikroTik router dari serangan luar.

  • Deteksi dan mencegah penyebaran malware di jaringan FTTH/OLT.


1. Blokir Akses Internet ke IP LAN Pelanggan

Pastikan Internet tidak bisa langsung mengakses IP pelanggan:

/ip firewall filter
add chain=forward src-address-list=!LAN dst-address=172.16.0.0/22 action=drop comment="Block access to customer LAN from Internet"

Ganti 172.16.0.0/22 sesuai IP pool LAN pelanggan.

2. Blokir Port Management Rawan

Blokir semua akses ke port berbahaya dari luar:

/ip firewall filter
add chain=forward protocol=tcp dst-port=80,443,22,23 action=drop comment="Block remote management ports to customers"
add chain=forward protocol=tcp dst-port=7547 action=drop comment="Block TR-069 remote management exploit"

3. Lindungi Akses Management MikroTik

Izinkan hanya IP tertentu yang bisa akses Mikrotik:

/ip firewall address-list
add list=trusted-addresses address=192.168.88.0/24 comment="Admin Office"
add list=trusted-addresses address=1.2.3.4 comment="Admin Remote Public IP"

/ip firewall filter
add chain=input protocol=tcp dst-port=22,23,80,443,8291 src-address-list=!trusted-addresses action=drop comment="Protect MikroTik management access"

4. Batasi Aktivitas Scanning/Port Knocking

Blokir koneksi tidak wajar dari pelanggan:

/ip firewall filter
add chain=forward protocol=tcp tcp-flags=syn connection-limit=30,32 action=drop comment="Drop abnormal connection attempts (scan/malware)"

5. Drop Invalid Connections

Putuskan semua koneksi yang aneh atau korup:

/ip firewall filter
add chain=forward connection-state=invalid action=drop comment="Drop invalid connections"

6. (Opsional) Logging Traffic Mencurigakan

Jika ingin analisa lebih lanjut:

/ip firewall filter
add chain=forward connection-state=new protocol=tcp src-port=80,443,22,23 action=log log-prefix="POTENTIAL ATTACK:" comment="Log suspicious access"

Tips Tambahan:

  • Pastikan semua perangkat (Router, ONT, TP-Link, Totolink) update firmware.

  • Reset perangkat yang sudah terinfeksi ke default pabrik.

  • Pisahkan VLAN management ONT/router dari VLAN data pelanggan.

  • Monitoring Syslog/SNMP supaya serangan bisa cepat terdeteksi.


Firewall Khusus PPPoE dan VLAN Tagging

Jika menggunakan PPPoE dan VLAN untuk memisahkan pelanggan, gunakan tambahan rules berikut:

1. Isolasi antar pelanggan PPPoE:

/ip firewall filter
add chain=forward src-address=172.16.8.0/22 dst-address=172.16.8.0/22 action=drop comment="Block PPPoE Client to Client Communication"

Ini mencegah satu pelanggan men-scan pelanggan lain.

2. Drop akses VLAN management dari pelanggan:

/ip firewall filter
add chain=forward in-interface=vlan-data out-interface=vlan-management action=drop comment="Block access from data VLAN to management VLAN"

Sesuaikan vlan-data dan vlan-management sesuai penamaan interface di router kamu.

3. Proteksi PPPoE Server Router:

/ip firewall filter
add chain=input in-interface=pppoe-incoming protocol=tcp dst-port=8291,22,23,80,443 action=drop comment="Protect PPPoE Server Management"

4. Limit koneksi abnormal dari sesi PPPoE:

/ip firewall filter
add chain=forward in-interface=pppoe-incoming protocol=tcp connection-limit=30,32 action=drop comment="Limit abnormal connections per PPPoE session"

Struktur VLAN ideal:

  • VLAN 10: Management OLT, ONT, Router.

  • VLAN 20: PPPoE pelanggan.

  • VLAN 30: VLAN data umum (Hotspot/Guest).

Dengan pemisahan VLAN dan proteksi firewall ini, malware akan sulit menyebar di dalam jaringan kamu.


Catatan: Jika ingin skema lebih advance (dynamic address-list, auto block brute-force, dsb.), bisa ditambahkan sesuai kebutuhan.

Selesai.

Cara Menanggulangi Serangan IP Exhaustion, MAC Spoofing, dan Rogue DHCP Server di Jaringan Linux dan Mikrotik (Mencegah Cloning IP )


Pendahuluan: Pada kondisi tertentu, ada perangkat (contohnya STB berbasis Linux) yang bisa membuat gangguan serius dalam jaringan. Perangkat ini bisa melakukan:

  • Membuat virtual LAN/WiFi palsu.

  • Menghabiskan IP Pool dengan IP dan MAC Address random.

  • Menyebabkan DHCP server resmi tidak berfungsi.

  • Merusak performa jaringan secara keseluruhan.

Masalah ini tidak berupa brute-force ke layanan, melainkan serangan ke level jaringan (Layer 2 & 3), berupa IP Exhaustion, MAC Spoofing, dan Rogue DHCP Attack.

Penanggulangan di Server Gateway Linux:

  1. Blokir DHCP Offer Palsu

    • Gunakan ebtables untuk memblokir DHCP Offer yang tidak berasal dari server sah.

    ebtables -A INPUT -p IPv4 --ip-proto udp --ip-dport 68 --ip-sport 67 -j DROP
    
  2. Whitelist DHCP Server Sah

    • Terima DHCP hanya dari MAC Address server sah.

    ebtables -A INPUT -p IPv4 --ip-proto udp --ip-dport 68 --ip-sport 67 --among-src 00:11:22:33:44:55 -j ACCEPT
    

    (Ganti 00:11:22:33:44:55 dengan MAC server DHCP resmi).

  3. Monitoring ARP aneh

    • Gunakan arpwatch untuk mendeteksi perubahan MAC/IP yang tidak wajar.

Script Linux Gateway Otomatis:

#!/bin/bash

# MAC address server DHCP sah
TRUSTED_MAC="00:11:22:33:44:55"

# Flush aturan sebelumnya
ebtables -F

# Drop semua DHCP Offer
ebtables -A INPUT -p IPv4 --ip-proto udp --ip-dport 68 --ip-sport 67 -j DROP

# Kecualikan server DHCP sah
ebtables -I INPUT -p IPv4 --ip-proto udp --ip-dport 68 --ip-sport 67 --among-src $TRUSTED_MAC -j ACCEPT

# Jalankan arpwatch
service arpwatch start

echo "Proteksi DHCP dan ARP Monitoring diaktifkan."

Penanggulangan di Mikrotik:

  1. Aktifkan DHCP Snooping

    /interface bridge settings
    set use-ip-firewall=yes
    
    /interface bridge
    set bridge1 dhcp-snooping=yes
    
    /interface bridge port
    set [find where interface="ether1"] trusted=yes
    
  2. Set Interface ARP Mode ke Reply Only

    /interface ethernet
    set [find where name="ether2"] arp=reply-only
    
  3. Firewall untuk DHCP Protection

    /ip firewall filter
    add chain=input protocol=udp dst-port=67-68 src-port=67-68 action=drop in-interface=bridge1
    
    /ip firewall filter
    add chain=input protocol=udp dst-port=67 src-address=192.168.1.1 action=accept in-interface=bridge1
    

    (Ganti 192.168.1.1 dengan IP server DHCP resmi).

  4. Monitoring Traffic Abnormal

    • Gunakan Torch dan IP Scan untuk mendeteksi device yang mencurigakan.

Script Mikrotik Otomatis:

/interface bridge settings
set use-ip-firewall=yes

/interface bridge
set bridge1 dhcp-snooping=yes

/interface bridge port
:foreach i in=[/interface bridge port find] do={
    /interface bridge port set $i trusted=no
}
/interface bridge port set [find where interface="ether1"] trusted=yes

/interface ethernet
set [find where name="ether2"] arp=reply-only

/ip firewall filter
add chain=input protocol=udp dst-port=67-68 src-port=67-68 action=drop in-interface=bridge1
add chain=input protocol=udp dst-port=67 src-address=192.168.1.1 action=accept in-interface=bridge1

Strategi Utama:

Layer Strategi Tools
Layer 2 DHCP Snooping, ARP Reply Only Mikrotik Bridge, ebtables
Layer 3 Firewall DHCP Filter Mikrotik, iptables
Monitoring Deteksi ARP aneh Torch, arpwatch

Kesimpulan: Dalam menghadapi serangan jaringan model ini, kunci utamanya adalah:

  • Membatasi siapa yang boleh melakukan DHCP Offer.

  • Membatasi siapa yang boleh berkomunikasi di jaringan (ARP filtering).

  • Deteksi dan respon cepat terhadap perangkat yang berperilaku abnormal.

Jika perlu, isolasi device bermasalah ke VLAN terpisah agar tidak mengganggu jaringan utama.

Tutorial Lengkap BGP Peering di Debian dengan FRRouting

 


1. Pendahuluan

Border Gateway Protocol (BGP) adalah protokol routing yang digunakan untuk mentransfer data antar Autonomous Systems (AS). Tutorial ini akan menjelaskan cara mengatur BGP peering menggunakan FRRouting (FRR) di Debian, dari konfigurasi dasar hingga tingkat lanjut.


2. Topologi Jaringan

                          +-------------------+         
                          |    Router A       |          
                          |    (AS 65001)     |         
                          | 192.168.1.1       |         
                          | BGP Peering       |         
                          +---------+---------+         
                                    |                   
                                    |                   
                   +----------------v------------------+  
                   |       Internet/ISP (AS 15169)      |  
                   | Peering (Google, Facebook, TikTok) |  
                   +-------------------+--------------+  
                                    |                   
                          +---------v----------+         
                          |    Router B        |         
                          |    (AS 65002)      |         
                          | 192.168.2.1       |         
                          | BGP Peering       |         
                          +-------------------+         
                                    |                   
                         +----------v----------+         
                         |    Router C (Optional) |
                         |    (AS 65003)         |
                         | 192.168.3.1         |
                         |  BGP Peering         |
                         +----------------------+

3. Instalasi FRRouting di Debian

sudo apt update
sudo apt install frr frr-snmp -y

Aktifkan FRR dan set agar berjalan saat boot:

sudo systemctl enable frr
sudo systemctl start frr

4. Konfigurasi BGP Peering di Router A

Edit file /etc/frr/frr.conf:

router bgp 65001
 bgp router-id 192.168.1.1
 neighbor 192.168.2.2 remote-as 65002
 neighbor 8.8.8.8 remote-as 15169
 network 10.1.0.0/24

Restart layanan FRR:

sudo systemctl restart frr

5. Konfigurasi BGP Peering di Router B

Edit file /etc/frr/frr.conf:

router bgp 65002
 bgp router-id 192.168.2.1
 neighbor 192.168.1.1 remote-as 65001
 network 10.2.0.0/24

Restart layanan FRR:

sudo systemctl restart frr

6. Verifikasi Peering BGP

Masuk ke shell FRR:

vtysh

Cek status peering BGP:

show ip bgp summary

7. Advanced BGP Features

7.1 BGP Prefix Filtering

ip prefix-list PL-IN permit 10.0.0.0/24
neighbor 192.168.2.2 prefix-list PL-IN in

7.2 BGP Route Reflector

router bgp 65001
 bgp cluster-id 1
 neighbor 192.168.2.2 route-reflector-client

7.3 BGP Route Maps

route-map SET-LOCAL-PREF permit 10
 set local-preference 200
neighbor 192.168.2.2 route-map SET-LOCAL-PREF out

7.4 BGP Authentication (MD5)

neighbor 192.168.2.2 password mysecurepassword

7.5 Multipath Routing (ECMP)

router bgp 65001
 maximum-paths 4

7.6 RPKI Validation untuk Keamanan BGP

bgp rpki server tcp 192.0.2.1 port 323
bgp rpki cache timeout 3600

7.7 BGP Communities untuk Manajemen Routing

route-map SET-COMMUNITY permit 10
 set community 65001:1000
neighbor 192.168.2.2 route-map SET-COMMUNITY out

7.8 BGP Security Best Practices

  • Batas Maksimal Prefix:

    neighbor 192.168.2.2 maximum-prefix 10000 90
    
  • Session Timeout & Dampening:

    bgp dampening 1 2000 4000 600
    

8. Monitoring dengan Grafana + Prometheus

8.1 Instalasi Prometheus

sudo apt install prometheus -y

Tambahkan konfigurasi untuk menarik metrik FRRouting:

sudo nano /etc/prometheus/prometheus.yml

Tambahkan:

scrape_configs:
  - job_name: 'frr'
    static_configs:
      - targets: ['localhost:9112']

Restart Prometheus:

sudo systemctl restart prometheus

8.2 Instalasi Exporter untuk FRRouting

sudo apt install prometheus-frr-exporter -y

Aktifkan service:

sudo systemctl enable prometheus-frr-exporter
sudo systemctl start prometheus-frr-exporter

8.3 Instalasi Grafana

sudo apt install grafana -y
sudo systemctl enable grafana-server
sudo systemctl start grafana-server

Buka Grafana di browser http://server-ip:3000, login, dan tambahkan data source Prometheus dengan alamat http://localhost:9090.

Tambahkan dashboard untuk monitoring BGP dengan FRR Metrics Dashboard dari Grafana.


9. Troubleshooting BGP

show ip bgp neighbors
show ip bgp
show ip bgp summary
show ip bgp rib

Gunakan Wireshark/tcpdump untuk analisis paket:

tcpdump -i eth0 port 179 -vv

10. Kesimpulan

Dengan konfigurasi ini, Debian dapat digunakan sebagai router BGP yang handal untuk peering dengan berbagai provider, serta dilengkapi monitoring dengan Grafana dan Prometheus agar lebih mudah dianalisis secara visual. Jika ada kendala atau ingin eksplorasi lebih lanjut, jangan ragu untuk mencoba fitur tambahan FRRouting!


🔥 Mikrotik Failover Setup dengan Pengalihan VPN untuk Speedtest dan Traceroute 🔥

# Mikrotik Failover Setup

# Add IP Addresses for WAN and LAN interfaces
/ip address
add address=192.168.10.1/24 interface=WAN1
add address=192.168.20.1/24 interface=WAN2
add address=192.168.30.1/24 interface=WAN3
add address=192.168.100.1/24 interface=LAN1
add address=192.168.200.1/24 interface=LAN2

# Mark connections for routing
/ip firewall mangle
add chain=prerouting src-address=192.168.100.0/24 action=mark-connection new-connection-mark=LAN1_conn passthrough=yes
add chain=prerouting src-address=192.168.200.0/24 action=mark-connection new-connection-mark=LAN2_conn passthrough=yes

add chain=prerouting connection-mark=LAN1_conn action=mark-routing new-routing-mark=to_WAN1 passthrough=yes
add chain=prerouting connection-mark=LAN2_conn action=mark-routing new-routing-mark=to_WAN2 passthrough=yes

# Add Routes for WAN Failover
/ip route
add dst-address=0.0.0.0/0 gateway=192.168.10.1 routing-mark=to_WAN1 check-gateway=ping distance=1 comment="to_WAN1"
add dst-address=0.0.0.0/0 gateway=192.168.20.1 routing-mark=to_WAN2 check-gateway=ping distance=1 comment="to_WAN2"
add dst-address=0.0.0.0/0 gateway=192.168.30.1 check-gateway=ping distance=2 comment="to_WAN3" disabled=yes

# Configure NAT for Outbound Traffic
/ip firewall nat
add chain=srcnat out-interface=WAN1 action=masquerade
add chain=srcnat out-interface=WAN2 action=masquerade
add chain=srcnat out-interface=WAN3 action=masquerade

# Failover Script to Switch to WAN3 if WAN1 & WAN2 Fail
/system script
add name="Failover-WAN3" source={
  :log info "Checking WAN1 & WAN2 status..."
  :if ([/ping 8.8.8.8 interface=WAN1 count=3] = 0 && [/ping 8.8.8.8 interface=WAN2 count=3] = 0) do={
      :log warning "WAN1 & WAN2 DOWN! Switching to WAN3..."
      /ip route set [find comment="to_WAN1"] disabled=yes
      /ip route set [find comment="to_WAN2"] disabled=yes
      /ip route set [find comment="to_WAN3"] disabled=no
  } else={
      :log info "WAN1 atau WAN2 masih aktif, tetap di jalur utama."
  }
}

/tool netwatch
add host=8.8.8.8 interval=30s timeout=3s up-script="/system script run Restore-MainWAN" down-script="/system script run Failover-WAN3"

# Restore WAN1 or WAN2 if Back Online
/system script
add name="Restore-MainWAN" source={
  :log info "Checking if WAN1 or WAN2 is back..."
  :if ([/ping 8.8.8.8 interface=WAN1 count=3] > 0 || [/ping 8.8.8.8 interface=WAN2 count=3] > 0) do={
      :log warning "WAN1 atau WAN2 UP! Switching back from WAN3..."
      /ip route set [find comment="to_WAN1"] disabled=no
      /ip route set [find comment="to_WAN2"] disabled=no
      /ip route set [find comment="to_WAN3"] disabled=yes
  }
}

/system logging
add topics=script action=memory

# Notify Failover to Telegram
/system script
add name="Notify-Failover" source={
  /tool fetch url="https://api.telegram.org/bot<TOKEN>/sendMessage?chat_id=<CHAT_ID>&text=WAN1%20&%20WAN2%20DOWN!%20Failover%20ke%20WAN3" keep-result=no
}

/tool netwatch
add host=8.8.8.8 interval=30s timeout=3s down-script="/system script run Notify-Failover"

# Dynamic DDNS Script for WAN3 IP Update
/system script
add name="Dynamic-DDNS" source={
  :global ddnsName "myddns.example.com"
  :global ddnsUser "myuser"
  :global ddnsPass "mypassword"
  :global currentIP [/ip address get [find interface=WAN3] address]
  :set currentIP [:pick $currentIP 0 [:find $currentIP "/"]]
  /tool fetch url="https://dynamicdnsprovider.com/update?hostname=$ddnsName&myip=$currentIP" user=$ddnsUser password=$ddnsPass keep-result=no
}

/system scheduler
add name=Update-DDNS interval=5m on-event="/system script run Dynamic-DDNS"

# VPN Redirect for Speedtest & Traceroute
/interface wireguard add name=VPN-WG private-key="<your-private-key>"
/ip address add address=10.10.10.2/24 interface=VPN-WG
/ip route add dst-address=0.0.0.0/0 gateway=10.10.10.1 routing-mark=speedtest
/ip firewall mangle add chain=prerouting protocol=icmp action=mark-routing new-routing-mark=speedtest passthrough=yes
/ip firewall mangle add chain=prerouting protocol=tcp dst-port=8080 action=mark-routing new-routing-mark=speedtest passthrough=yes
/ip firewall mangle add chain=prerouting protocol=tcp dst-port=80 action=mark-routing new-routing-mark=speedtest passthrough=yes

Kesimpulannya, konfigurasi ini membuat jaringan Anda lebih handal dan dapat mengalihkan koneksi secara otomatis jika terjadi masalah pada WAN utama (WAN1 dan WAN2). Berikut adalah beberapa poin penting:

1. Failover WAN (WAN1, WAN2, WAN3)

  • WAN1 dan WAN2 akan digunakan secara utama untuk koneksi.

  • Jika WAN1 dan WAN2 mati (terdeteksi dengan ping), sistem akan otomatis beralih ke WAN3 sebagai cadangan.

  • Begitu salah satu dari WAN1 atau WAN2 kembali online, sistem akan kembali menggunakan jalur utama (WAN1 atau WAN2).

2. Dynamic DNS

  • Menyediakan pembaruan otomatis alamat IP untuk WAN3 menggunakan layanan DDNS, jadi meskipun IP publik WAN3 berubah, Anda tetap bisa mengakses jaringan tersebut dengan nama domain yang tetap.

3. VPN untuk Redirect Speedtest & Traceroute

  • Menambahkan pengalihan khusus untuk speedtest dan traceroute agar bisa melalui VPN untuk keperluan testing atau pengaturan lainnya. Hal ini memastikan bahwa test koneksi tidak terpengaruh oleh jaringan utama yang sedang dipakai.

4. Notifikasi via Telegram

  • Jika WAN1 dan WAN2 mati dan terjadi failover ke WAN3, Anda akan mendapatkan notifikasi melalui Telegram agar bisa segera menanggapi.

5. Pengaturan Failover yang Fleksibel

  • Konfigurasi ini menggunakan Netwatch dan Script untuk memantau kondisi WAN dan melakukan pengalihan atau pemulihan rute secara otomatis. Ini membuat jaringan tetap stabil tanpa memerlukan intervensi manual.

6. NAT dan Firewall

  • Konfigurasi NAT memastikan bahwa lalu lintas keluar melalui masing-masing WAN tetap termasker dengan benar.

  • Firewall mangle digunakan untuk menandai lalu lintas berdasarkan koneksi dan mengarahkan lalu lintas tersebut ke WAN yang tepat.

Dengan konfigurasi ini, Anda mendapatkan jaringan yang lebih andal dengan failover otomatis, pengalihan VPN untuk testing, dan notifikasi untuk pemeliharaan jaringan.

Jika ada hal yang perlu ditambahkan atau disesuaikan, Anda bisa menyesuaikannya sesuai kebutuhan spesifik di lapangan. Semoga membantu dan mudah dipahami!

Tutorial Lengkap Setup WireGuard + Cloudflare WARP untuk Optimasi Routing dengan VPS Singapura & Indonesia

 

      [ Client ]
          │
          ▼
    🌍 Internet
          │
    ┌───────────┐
    │  Starlink         │ (Only Transit)
    └───────────┘
          │
          ▼
  ┌─────────────────┐        ┌──────────────────┐
  │  VPS Singapura          │ -----> │  VPS Indonesia           
  │  10.100.100.1               │ <----- │  10.100.101.1                
  │  Public IP SG               │        │  Public IP ID                
  └─────────────────┘        └──────────────────┘
          │
          ▼
    [ WireGuard ]
          │
          ▼
   [ Cloudflare WARP ]
          │
          ▼
      🌍 Internet

      Penjelasan

✅ Client → Koneksi utama ke VPS Singapura melalui WireGuard
✅ VPS Singapura → Server utama untuk VPN
✅ VPS Indonesia → Server backup jika VPS Singapura mati
✅ Failover → Jika VPS SG mati, koneksi dialihkan ke VPS Indonesia
✅ Cloudflare WARP → Optimasi jalur & routing lebih cepat
✅ Starlink → Hanya sebagai transit, semua bandwidth tetap dari VPS


1. Pendahuluan

Topologi ini menggunakan dua VPS (Singapura & Indonesia) sebagai gateway utama untuk koneksi internet, dengan Starlink hanya sebagai transit. WireGuard digunakan sebagai VPN utama, dan Cloudflare WARP membantu optimasi routing. Sistem ini juga memiliki failover jika VPS utama (SG) mati, maka koneksi otomatis dialihkan ke VPS backup (ID).

2. Persiapan

Sebelum memulai, pastikan Anda memiliki:

  • 2 VPS (Singapura & Indonesia) dengan OS Ubuntu/Debian

  • WireGuard terinstal di kedua VPS

  • Cloudflare WARP terinstal di VPS utama (SG)

  • Akses root ke server dan client

3. Instalasi WireGuard di VPS Singapura & Indonesia

apt update && apt install wireguard -y

4. Konfigurasi WireGuard di VPS Singapura (/etc/wireguard/wg0.conf)

[Interface]
Address = 10.100.100.1/24
PrivateKey = <PRIVATE_KEY_SG>
ListenPort = 51820

[Peer]
PublicKey = <PUBLIC_KEY_ID>
AllowedIPs = 10.100.101.1/32
Endpoint = <PUBLIC_IP_ID>:51820
PersistentKeepalive = 25

5. Konfigurasi WireGuard di VPS Indonesia (/etc/wireguard/wg0.conf)

[Interface]
Address = 10.100.101.1/24
PrivateKey = <PRIVATE_KEY_ID>
ListenPort = 51820

[Peer]
PublicKey = <PUBLIC_KEY_SG>
AllowedIPs = 10.100.100.1/32
Endpoint = <PUBLIC_IP_SG>:51820
PersistentKeepalive = 25

6. Menjalankan WireGuard

systemctl enable wg-quick@wg0
systemctl start wg-quick@wg0

7. Instalasi Cloudflare WARP di VPS Singapura

curl -fsSL https://pkg.cloudflareclient.com/install.sh | bash
warp-cli register
warp-cli set-mode proxy
warp-cli connect

8. Menambahkan Routing di VPS Singapura

iptables -t nat -A POSTROUTING -o warp0 -j MASQUERADE
iptables -A FORWARD -i wg0 -o warp0 -j ACCEPT
iptables -A FORWARD -i warp0 -o wg0 -j ACCEPT

9. Setup Failover dari Singapura ke Indonesia

while true; do
  ping -c 3 10.100.100.1 > /dev/null
  if [ $? -ne 0 ]; then
    ip route replace default via 10.100.101.1 dev wg0
  else
    ip route replace default via 10.100.100.1 dev wg0
  fi
  sleep 10
done

Simpan script ini di /root/failover.sh dan jalankan:

chmod +x /root/failover.sh
nohup /root/failover.sh &

10. Uji Koneksi

Di client, coba hubungkan ke WireGuard VPS Singapura dan cek apakah routing berjalan dengan baik.

ping -c 3 8.8.8.8
curl ifconfig.me

Penutup Sistem ini memastikan koneksi tetap optimal dengan failover otomatis. Semua bandwidth tetap dari VPS, sementara Starlink hanya sebagai jalur transit. Jika ada pertanyaan, silakan tinggalkan komentar di blog!


🔥 DNS TANPA AMPUN: Filtering Super Kuat dengan AdGuard Home + BIND Resolver 🔥

 


Pendahuluan

Di dunia jaringan, keamanan dan kecepatan adalah segalanya! Tutorial ini akan membawamu menguasai kombinasi AdGuard Home + BIND DNS, solusi hybrid yang bisa:
Memblokir iklan, malware, & konten berbahaya langsung dari DNS
Menjaga kecepatan & kestabilan jaringan dengan resolver lokal
Mengontrol sepenuhnya domain lokal & upstream DNS

Spesifikasi Server yang Dibutuhkan

Untuk menjalankan AdGuard Home dan BIND secara optimal, berikut spesifikasi minimal server:

  • CPU: 2 Core (Rekomendasi 4 Core untuk performa lebih baik)
  • RAM: 2GB (Rekomendasi 4GB jika menangani banyak query)
  • Storage: 20GB SSD (Rekomendasi lebih besar jika ingin menyimpan log DNS dalam jangka panjang)
  • OS: Debian 10/11 atau Ubuntu 20.04/22.04
  • Koneksi Jaringan: Minimal 100Mbps, lebih baik jika 1Gbps untuk ISP besar

Apa yang Akan Kamu Pelajari?

1️⃣ Instalasi AdGuard Home di Debian/Linux – Blokir iklan & ancaman sejak dini
2️⃣ Konfigurasi Filtering & Upstream DNS – Pilih server tercepat & teraman
3️⃣ Instalasi & Setup BIND sebagai Resolver – Kendali penuh atas DNS lokal
4️⃣ Integrasi AdGuard Home dengan BIND – Kombinasi yang tak tertandingi
5️⃣ Testing & Monitoring DNS Query – Pantau & optimalkan performa DNS
6️⃣ Custom Redirect Page di AdGuard Home – Ganti halaman blokir ke tampilan sendiri


1️⃣ Instalasi AdGuard Home di Debian/Linux

AdGuard Home adalah DNS server yang mampu memfilter iklan, malware, dan konten berbahaya langsung dari query DNS.

Langkah-langkah Instalasi

wget https://github.com/AdguardTeam/AdGuardHome/releases/latest/download/AdGuardHome_linux_amd64.tar.gz
tar -xvf AdGuardHome_linux_amd64.tar.gz
cd AdGuardHome
sudo ./AdGuardHome -s install

Akses Web UI AdGuard Home

Setelah instalasi selesai, buka browser dan akses:

http://<IP-SERVER>:3000

Ikuti wizard setup untuk konfigurasi awal.


2️⃣ Konfigurasi Filtering & Upstream DNS

  • Masuk ke SettingsDNS Settings
  • Tambahkan upstream DNS (misalnya Cloudflare, Google, atau Quad9)
  • Aktifkan Filtering untuk memblokir iklan & malware otomatis

3️⃣ Instalasi & Setup BIND sebagai Resolver

BIND digunakan sebagai DNS resolver authoritative untuk domain lokal.

Instalasi BIND

sudo apt update && sudo apt install bind9 -y

Konfigurasi Named.conf.options

Edit file konfigurasi:

sudo nano /etc/bind/named.conf.options

Tambahkan:

options {
    directory "/var/cache/bind";
    recursion yes;
    allow-recursion { any; };
    forwarders {
        127.0.0.1 port 5353; // Arahkan ke AdGuard Home
    };
};

Simpan dan restart BIND:

sudo systemctl restart bind9

4️⃣ Integrasi AdGuard Home dengan BIND

  • Masuk ke AdGuard Home Web UISettingsDNS Settings
  • Tambahkan 127.0.0.1:53 sebagai upstream untuk query internal
  • Tambahkan Google/Cloudflare sebagai fallback DNS resolver

5️⃣ Testing & Monitoring DNS Query

Cek apakah setup sudah berjalan dengan baik:

dig google.com @127.0.0.1
dig your-local-domain.com @127.0.0.1

Cek log DNS di AdGuard Home untuk melihat filtering yang terjadi.


6️⃣ Custom Redirect Page di AdGuard Home

Secara default, AdGuard Home hanya menampilkan pesan error ketika sebuah domain diblokir. Kita bisa menggantinya dengan halaman redirect kustom.

Metode 1: DNS Rewrites ke Halaman Kustom

  1. Buat Server Web (Nginx/Apache) di Mesin yang Sama
    sudo apt install nginx -y
    echo '<h1>Website ini diblokir oleh jaringan</h1>' | sudo tee /var/www/html/index.html
    sudo systemctl restart nginx
    
  2. Atur DNS Rewrite di AdGuard Home
    • Buka AdGuard Home Web UIFiltersDNS Rewrites
    • Tambahkan domain yang ingin diarahkan ke IP server web
    • Contoh:
      example.com → 192.168.1.100
      

Metode 2: Redirect Langsung via Firewall

Jika ingin langsung mengarahkan semua situs yang diblokir ke halaman tertentu, gunakan rule iptables:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.100:80
iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination 192.168.1.100:443

💡 Dengan metode ini, pengguna yang mengakses situs yang diblokir akan otomatis diarahkan ke halaman kustom!


🚀 Sekarang jaringanmu sudah lebih aman, cepat, dan bebas iklan! 🚀

XSS Exploits and Defenses: Memahami Serangan dan Cara Mengatasinya

 

Pendahuluan Cross-Site Scripting (XSS) adalah salah satu serangan keamanan web yang paling umum dan berbahaya. Dengan mengeksploitasi kerentanan ini, penyerang dapat menyisipkan skrip berbahaya ke dalam halaman web, yang kemudian dijalankan di browser pengguna. Artikel ini akan membahas berbagai jenis XSS, cara eksploitasi, dan langkah-langkah pertahanan yang efektif.


Jenis-Jenis XSS

  1. Stored XSS (Persistent XSS)

    • Terjadi ketika skrip berbahaya disimpan di database atau server web dan dijalankan setiap kali halaman dimuat oleh pengguna lain.
    • Contoh: Komentar di forum yang berisi skrip JavaScript berbahaya.
  2. Reflected XSS

    • Terjadi ketika input pengguna yang tidak difilter langsung dipantulkan kembali dalam respons HTTP.
    • Contoh: URL dengan parameter yang dapat disusupi skrip berbahaya.
  3. DOM-Based XSS

    • Terjadi ketika skrip berbahaya dimanipulasi langsung di Document Object Model (DOM) oleh browser tanpa interaksi dengan server.
    • Contoh: JavaScript yang memproses URL tanpa validasi.

Eksploitasi XSS

Penyerang memanfaatkan XSS untuk:

  • Mencuri cookie sesi pengguna.
  • Mengalihkan pengguna ke situs phishing.
  • Menyisipkan keylogger untuk mencatat input pengguna.
  • Mengontrol konten halaman untuk manipulasi data.

Contoh payload sederhana XSS:

<script>alert('XSS Attack!');</script>

Ketika disisipkan dalam input yang tidak tervalidasi, skrip ini akan dieksekusi di browser korban.


Pertahanan terhadap XSS

  1. Validasi dan Sanitasi Input

    • Gunakan htmlspecialchars() di PHP atau escape() di JavaScript untuk membersihkan input.
    • Contoh sanitasi:
      echo htmlspecialchars($_GET['user_input'], ENT_QUOTES, 'UTF-8');
      
  2. Content Security Policy (CSP)

    • Mencegah eksekusi skrip yang tidak diizinkan dengan menerapkan kebijakan CSP pada header HTTP:
      Content-Security-Policy: default-src 'self'; script-src 'self' https://trusted-cdn.com
      
  3. Escape Output Data

    • Gunakan fungsi khusus untuk menghindari injeksi skrip berbahaya pada HTML, JavaScript, dan atribut lainnya.
  4. Hindari Menggunakan eval() dan innerHTML

    • Sebisa mungkin hindari metode yang langsung mengeksekusi kode atau menampilkan HTML tanpa validasi.
  5. Gunakan Framework yang Aman

    • Framework modern seperti React, Angular, dan Vue.js memiliki mekanisme bawaan untuk melindungi dari XSS.

Kesimpulan

XSS adalah ancaman serius bagi keamanan web, tetapi dapat dicegah dengan praktik pengkodean yang aman. Validasi input, escape output, dan penerapan CSP adalah langkah-langkah penting dalam mengamankan aplikasi dari serangan ini. Dengan memahami eksploitasi dan metode pertahanan, pengembang dapat memastikan bahwa sistem mereka lebih tahan terhadap serangan siber.


Dengan menerapkan langkah-langkah ini, Anda dapat menjaga keamanan aplikasi web dari ancaman XSS. Tetap waspada dan selalu lakukan pengujian keamanan secara berkala!

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | coupon codes