Tutorial Setup Honeypot & Canary Tokens di VPS: Jebak Hacker Secara Real-Time
Poin Kunci Artikel Ini:
- Jalan-jalan di jaringan internal menggunakan skrip pemindai port untuk melihat layanan lain yang bisa diserang.
- Mencoba login ke service database lokal seperti MySQL, PostgreSQL, atau Redis.
- Jam dua malam, HP di samping bantal mendadak bergetar.
Jam dua malam, HP di samping bantal mendadak bergetar. Begitu dilirik, ada notifikasi masuk: seseorang baru saja berhasil masuk ke VPS produksi lewat SSH. Dia mulai menjelajah direktori server, mengaduk-aduk folder, dan mencari file .env, password database, atau AWS secret key.
Yang bikin mengelus dada, firewall dan Fail2ban sama sekali tidak bereaksi. Kenapa? Karena penyerang masuk menggunakan kredensial asli yang bocor dari insiden kebocoran data di tempat lain. Bagi firewall, si peretas adalah tamu sah yang punya kunci pintu depan.
Di dunia cybersecurity, situasi ini disebut fase lateral movement atau eksplorasi pasca-penembusan. Kalau keamanan server cuma bergantung pada benteng luar, penyusup bisa dengan santai mengacak-acak data kamu selama berbulan-bulan tanpa ketahuan.
Di artikel ini, kita bakal merakit sistem peringatan dini super presisi menggunakan OpenCanary dan Canary Tokens di VPS Linux. Kita akan memasang umpan jebakan di dalam sistem. Sekali saja umpan itu disentuh penyerang, sirine bahaya langsung menyala detik itu juga tanpa false positive.
Kenapa Keamanan Perimeter Saja Sering Gagal?
Bayangkan kamu punya rumah dengan pagar besi tinggi dan gembok tebal. Pagar itu ibarat Firewall dan Fail2ban. Mereka ampuh menahan orang asing yang mencoba mendobrak pintu atau menebak kombinasi gembok secara membabi buta (serangan brute force).
Tapi apa yang terjadi kalau pencuri dapat duplikat kunci rumah kamuβmisalnya dari kunci SSH laptop developer yang hilang? Pagar tinggi tidak ada gunanya lagi. Pencuri sudah ada di dalam ruang tamu.
Begitu penyerang berhasil menginjakkan kaki di VPS kamu, pola perilaku mereka hampir selalu sama:
- Memeriksa direktori aplikasi untuk mencari file rahasia seperti
.env,wp-config.php, atauconfig.json. - Menggeledah folder pengguna untuk berburu file kredensial kunci seperti
~/.aws/credentialsatau~/.ssh/id_rsa. - Jalan-jalan di jaringan internal menggunakan skrip pemindai port untuk melihat layanan lain yang bisa diserang.
- Mencoba login ke service database lokal seperti MySQL, PostgreSQL, atau Redis.
Di situlah konsep honeypot (pot madu umpan) dan canary token (ranjau data) bekerja. Kita menyediakan layanan palsu dan file umpan beracun di dalam VPS. Karena layanan dan file ini tidak pernah dipakai oleh aplikasi resmi, maka siapa pun yang menyentuhnya sudah pasti 100% adalah penyusup.
Langkah 1: Install & Konfigurasi OpenCanary di VPS
OpenCanary adalah perangkat lunak open-source buatan Thinkst Security. Aplikasi ini sangat ringan dan pas dipasang di VPS kelas hemat (bahkan dengan 1 vCPU dan RAM 1GB) tanpa mengganggu kinerja aplikasi utama kamu.
1. Siapkan Environment dan Dependency
Masuk ke terminal VPS Linux (Ubuntu/Debian) milikmu, lalu persiapkan pustaka Python yang dibutuhkan:
sudo apt update && sudo apt install -y python3-dev python3-pip python3-venv build-essential libssl-dev libffi-dev libpcap-dev
sudo python3 -m venv /opt/opencanary-env
source /opt/opencanary-env/bin/activate
pip install --upgrade pip setuptools
pip install opencanary
Setelah instalasi selesai, buat file konfigurasi bawaan OpenCanary dengan perintah ini:
opencanaryd --copyconfig
Perintah tersebut akan menempatkan file konfigurasi dasar di /etc/opencanaryd/opencanary.conf atau di folder ~/.opencanaryd/opencanary.conf.
2. Atur Service Umpan (FTP, SSH, MySQL)
Buka file opencanary.conf memakai editor teks pilihanmu, misalnya nano. Di file JSON ini, kita bisa memilih layanan mana saja yang ingin dijadikan umpan palsu beserta versi aplikasi rekaan yang akan tampil saat di-scan hacker.
{
"device.node_id": "vps-produksi-sgp",
"git.enabled": false,
"ftp.enabled": true,
"ftp.port": 21,
"ftp.banner": "FileZilla Server 0.9.60 beta",
"ssh.enabled": true,
"ssh.port": 2222,
"ssh.version": "SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.5",
"mysql.enabled": true,
"mysql.port": 3306,
"mysql.banner": "5.7.34-log",
"logger": {
"class": "PyLogger",
"handlers": {
"syslog": {
"class": "logging.handlers.SysLogHandler",
"address": "/dev/log"
}
}
}
}
Tips Taktis: Jika SSH asli server kamu masih berada di port 22, ubah port SSH asli tersebut ke port lain (misalnya port 4422). Setelah itu, set port OpenCanary SSH ke port 22. Peretas atau bot otomatis yang mencoba memindai port 22 bakal langsung masuk ke perangkap jebakan OpenCanary.
3. Buat Systemd Service Supaya Jalan Otomatis
Supaya OpenCanary terus berjalan di latar belakang dan otomatis menyala saat server di-reboot, buat file service baru di /etc/systemd/system/opencanary.service:
[Unit]
Description=OpenCanary Honeypot Daemon
After=network.target
[Service]
Type=forking
User=root
WorkingDirectory=/opt
ExecStart=/opt/opencanary-env/bin/opencanaryd --start
ExecStop=/opt/opencanary-env/bin/opencanaryd --stop
Restart=always
[Install]
WantedBy=multi-user.target
Jalankan perintah berikut untuk mengaktifkan service tersebut:
sudo systemctl daemon-reload
sudo systemctl enable --now opencanary
sudo systemctl status opencanary
Langkah 2: Tanam Canary Tokens (Ranjau Data)
OpenCanary bertugas menjaga lalu lintas port jaringan. Tapi bagaimana kalau peretas yang masuk langsung memindai file-file di dalam disk? Di sinilah peran Canary Tokens.
Canary Token adalah jejak umpan unik berupa API Key palsu, file dokumen jebakan, hingga URL khusus yang akan memicu notifikasi begitu file tersebut dibuka atau diakses.
1. Pasang AWS API Key Palsu
Buka situs layanan gratis canarytokens.org. Pilih opsi token AWS API Key, masukkan email atau URL Webhook milikmu untuk menerima peringatan, lalu buat token baru.
Kamu akan mendapatkan Access Key ID dan Secret Access Key palsu. Simpan kunci jebakan ini di folder standar AWS milik server:
mkdir -p ~/.aws
cat << 'EOF' > ~/.aws/credentials
[default]
aws_access_key_id = AKIAIOSFODNN7EXAMPLE
aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
EOF
Ketika peretas menemukan file ini dan mencoba mengeksekusi perintah seperti aws s3 ls di terminal, sistem Canary Tokens langsung menangkap panggilannya. Kamu akan mendapatkan notifikasi instan lengkap dengan lokasi IP dan ISP penyerang.
2. Pasang File .env Beracun
Penyerang biasanya suka menjalankan perintah cepat seperti grep -rnw '/var/www' -e 'DB_PASSWORD' untuk mencari kredensial tersembunyi. Kamu bisa memanfaatkan kebiasaan ini dengan membuat file .env umpan di folder web server:
cat << 'EOF' > /var/www/html/.env.backup
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=production_db
DB_USERNAME=admin_user
DB_PASSWORD=SuperSecretPassword123!
API_MONITORING_URL=https://canarytokens.com/static/terms/xxxxxx/index.html
EOF
Begitu penyusup tergiur dan mencoba mengakses tautan API_MONITORING_URL lewat browser atau perintah curl, detail alamat IP dan data browser peretas bakal langsung terekam.
Langkah 3: Hubungkan Notifikasi Real-Time ke Telegram
Sistem keamanan sebagus apa pun tidak ada gunanya kalau peringatannya baru dibaca tiga hari kemudian. Mari kita hubungkan log OpenCanary langsung ke aplikasi Telegram.
1. Skrip Integrasi Telegram
Buat bot baru lewat @BotFather di Telegram untuk mendapatkan Bot Token, lalu dapatkan Chat ID akunmu. Selanjutnya, buat skrip Python pemantau log di /opt/canary_telegram.py:
import time
import requests
import json
LOG_FILE = "/var/log/syslog"
TELEGRAM_BOT_TOKEN = "ISI_TOKEN_BOT_TELEGRAM_KAMU"
TELEGRAM_CHAT_ID = "ISI_CHAT_ID_TELEGRAM_KAMU"
def send_telegram_alert(message):
url = f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendMessage"
payload = {
"chat_id": TELEGRAM_CHAT_ID,
"text": f"π¨ *PERINGATAN JEBAKAN HONEYPOT!*
{message}",
"parse_mode": "Markdown"
}
try:
requests.post(url, json=payload, timeout=5)
except Exception as e:
print(f"Gagal mengirim pesan: {e}")
def monitor_log():
try:
with open(LOG_FILE, "r") as f:
f.seek(0, 2)
while True:
line = f.readline()
if not line:
time.sleep(1)
continue
if "opencanary" in line.lower():
send_telegram_alert(line.strip())
except Exception as e:
print(f"Error memantau log: {e}")
if __name__ == "__main__":
monitor_log()
2. Jalankan Skrip Notifikasi sebagai Service
Agar skrip pemantau Telegram ini selalu aktif, buatkan systemd service di /etc/systemd/system/canary-telegram.service:
[Unit]
Description=Canary Telegram Alert Daemon
After=network.target opencanary.service
[Service]
Type=simple
User=root
ExecStart=/usr/bin/python3 /opt/canary_telegram.py
Restart=always
[Install]
WantedBy=multi-user.target
Aktifkan service notifikasi tersebut:
sudo systemctl daemon-reload
sudo systemctl enable --now canary-telegram
Uji Coba: Pastikan Perangkap Bekerja!
Jangan tunggu peretas sungguhan datang untuk membuktikan sistem ini bekerja. Kamu bisa melakukan tes sendiri dari komputer lokal:
- Coba lakukan tes koneksi ke port umpan SSH OpenCanary:
ssh root@IP_VPS_KAMU -p 2222. - Coba lakukan pencarian port menggunakan Nmap ke port MySQL umpan:
nmap -p 3306 IP_VPS_KAMU. - Coba akses URL Canary Token yang ditempel di file
.env.backupmenggunakan terminal:curl https://canarytokens.com/static/terms/xxxxxx/index.html.
Jika semua berjalan lancar, dalam hitungan detik notifikasi peringatan lengkap dengan detail alamat IP akan langsung masuk ke pesan Telegram kamu.
Saatnya Mengamankan Server Kamu!
Mengamankan VPS tidak selalu berarti harus membeli perangkat lunak enterprise yang mahal. Dengan mengombinasikan OpenCanary dan Canary Tokens, kamu sudah membangun sistem pertahanan berlapis yang pintar dan hemat resource.
Strategi pertahanan Deception Technology ini mengubah peta permainan: penyusup harus menebak mana file atau port yang asli, sementara kamu hanya perlu menunggu satu kesalahan kecil dari mereka untuk mengambil tindakan tegas.
Tunggu apa lagi? Luangkan waktu 15 menit hari ini untuk memasang jebakan di VPS kamu sebelum ada tamu tak diundang yang masuk tanpa permisi!



