Jika Anda menggunakan script UDP Custom Manager, Anda mungkin menyadari bahwa fitur "Account Limiter" atau "Multi-Login Limiter" di dalam menu tidak bekerja sama sekali saat digunakan untuk tunnel UDP Custom. User tetap bisa login menggunakan 2 HP atau lebih tanpa terputus.
Mengapa bisa begitu?
Karena script limiter bawaan adalah warisan dari tunnel SSH/Dropbear. Cara kerjanya adalah menghitung proses sshd milik user. Sedangkan pada UDP Custom, ketika 2 HP login, sistem Linux tidak membuat proses baru. Semua data masuk ke satu pintu utama yaitu binary udp-custom. Akibatnya, script limiter menganggap user tidak melakukan apa-apa.
Solusi :
Kita akan membuang logika lama tersebut dan membuat ulang "Mesin Limiter" yang cara kerjanya memata-matai Log Sistem (journalctl) milik service udp-custom. Jika mesin menemukan 2 alamat IP berbeda yang login menggunakan 1 username yang sama, sistem akan langsung mengunci akunnya dan memblokir IP-nya menggunakan Firewall (iptables).
Berikut adalah langkah-langkah dari NOL sampai selesai:
Langkah 1: Membersihkan Sisa Limiter Lama
Sebelum memasang yang baru, kita harus memastikan tidak ada proses limiter lama yang nyangkut di sistem (agar tidak bentrok). Buka SSH/Putty, lalu ketik perintah ini:
pkill -f limiter.sh
for i in $(atq | awk '{print $1}'); do atrm $i; done
Langkah 2: Membuat Script Pembersih (Auto-Unblock)
Script ini bertugas membuka kembali akun user dan menghapus blokiran IP secara otomatis setelah masa hukuman selesai (sesuai waktu yang diatur di menu).
1.Ketik perintah ini untuk membuat file baru:
nano /etc/UDPCustom/unblock_user.sh
2.Copy kode di bawah ini, lalu klik kanan di layar Putty untuk menempelkannya:
#!/bin/bash
user=$1
usermod -U $user
if [ -f /etc/UDPCustom/blocked_ips_${user}.txt ]; then
while read ip; do
iptables -D INPUT -s $ip -j DROP 2>/dev/null
done < /etc/UDPCustom/blocked_ips_${user}.txt
rm -f /etc/UDPCustom/blocked_ips_${user}.txt
fi
echo "$(date '+%Y-%m-%d %H:%M:%S') - $user Unblocked" >> /etc/limit.log
3.Simpan file dengan cara: Tekan Ctrl+O di keyboard, lalu tekan Enter, lalu tekan Ctrl+X untuk keluar dari nano.
Langkah 3: Membuat Script Utama (Mesin Deteksi Multi-Login)
Ini adalah inti dari sistem pembatasan kita. Script ini akan berjalan terus-menerus di background.
1.Ketik perintah ini untuk membuka file limiter utama:
nano /etc/UDPCustom/limiter.sh
2.HAPUS SEMUA ISI LAMA yang ada di dalamnya (Anda bisa menekan tombol Ctrl+K berulang kali sampai layar kosong).
3.Copy kode baru di bawah ini, lalu klik kanan untuk menempelkannya:
Terminal
Langkah 4: Memberikan Izin Eksekusi
Secara default, file yang baru kita buat hanya bisa dibaca. Kita harus mengubahnya menjadi file yang bisa "dijalankan" oleh sistem Linux.
Ketik kedua perintah ini satu per satu:
chmod +x /etc/UDPCustom/unblock_user.sh
chmod +x /etc/UDPCustom/limiter.sh
Langkah 5: Mengaktifkan Melalui Menu Panel UDP
Mesin sudah siap. Sekarang kita tinggal menggunakan User Interface (UI) menu UDP yang sudah ada untuk menghidupkannya.
1.Ketik perintah ini untuk membuka menu utama:
udp
2.Pilih UDP Custom (Ketik 1 lalu Enter).
3.Pilih Limit Accounts (Ketik 7 lalu Enter).
4.Pilih MULTI-LOGIN LIMITER (Ketik 1 lalu Enter).
5.Run limiter every (in minutes): Masukkan angka 1 (artinya sistem akan mengecek setiap 1 menit), lalu Enter.
6.Unblock users every (in minutes):
=> Jika ingin diblokir selamanya sampai Anda buka manual, ketik 0.
=> Jika ingin diblokir otomatis selama 5 menit lalu hidup lagi, ketik 5, lalu Enter.
Jika muncul tulisan "Limiter started", berarti sistem sudah berjalan di background VPS Anda.
Bagaimana Cara Menguji / Membuktikannya?
1.Ambil 2 buah HP.
2.Hubungkan keduanya menggunakan 1 akun yang sama (Pastikan di menu create user, Connection Limit-nya diisi angka 1).
3.Tunggu sekitar 1-2 menit.
4.Kedua HP akan langsung kehilangan koneksi internet (Tidak bisa browsing).
5.Jika Anda mencoba connect lagi, akan gagal (Karena akun terkunci).
Cara Melihat Log Aktivitas:
Anda bisa melihat siapa saja yang tertangkap melanggar aturan dengan mengetik perintah ini di SSH:
cat /etc/limit.log
Catatan Penting:
Jika suatu hari Anda menghapus user tersebut dari menu panel, sistem akan otomatis membersihkan dirinya sendiri. Namun, jika Anda ingin menghapus semua jejak blokiran IP di firewall secara paksa, cara paling aman adalah dengan melakukan Reboot VPS.
Penutup:
Dengan modifikasi ini, fitur limiter yang tadinya hanya "Hiasan" di script Anda, kini telah menjadi senjata nyata untuk menjaga kestabilan VPS dari user yang membagi akun.
Selamat mencoba !!!
