Berikut panduan lengkap dari nol agar server Ubuntu mengirim WhatsApp alert tiap ada login SSH ‑‑ kali ini pesan dikirim ke dua nomor:
- 628586160XXXX
- 628572740XXXX (diubah ke format internasional “628…”)
1. Prasyarat
Butuh | Keterangan |
---|
curl | Biasanya sudah ada; jika belum kita pasang. |
API Key | 5b2aed8c-a388-420f-XXXX-856872425248 |
Endpoint | https://backend.notifikasi.pro/api/send-message |
Akses root | untuk menaruh script di /etc/profile.d & membuat log |
2. Pasang curl
(jika perlu)
sudo apt update && sudo apt install curl -y
3. Buat script notifikasi
sudo nano /etc/profile.d/notify-login.sh
Tempel script di bawah ini, lalu simpan (CTRL‑O ↵ CTRL‑X)
#!/bin/bash
# === CONFIG ===
WA_IDS=("628586160XXXX" "628572740XXXX") # ← dua nomor tujuan
WA_KEY="5b2aed8c-a388-420f-XXXX-856872425248" # ← API‑key kamu
API_URL="https://backend.notifikasi.pro/api/send-message"
LOG_FILE="/var/log/notify-login.log"
# === LOGIN INFO ===
USER_LOGIN=$(whoami)
IP_ADDRESS=$(echo $SSH_CLIENT | awk '{print $1}')
LOGIN_TIME=$(date "+%A, %d %B %Y %H:%M:%S")
HOSTNAME=$(hostname)
# === RESOURCE INFO ===
MEM_INFO=$(free -h | awk '/Mem:/ {printf "Total: %s | Used: %s | Free: %s",$2,$3,$4}')
CPU_LOAD=$(top -bn1 | grep "load average" | awk '{print $(NF-2)", "$(NF-1)", "$NF}')
# === MESSAGE ===
MESSAGE="????️ *LOGIN SERVER Terdeteksi*\n\n???? User: *$USER_LOGIN*\n????️ Host: *$HOSTNAME*\n???? IP: *$IP_ADDRESS*\n???? Waktu: *$LOGIN_TIME*\n\n???? RAM: $MEM_INFO\n???? CPU Load: $CPU_LOAD"
# === SEND TO EACH NUMBER ===
for WA_ID in "${WA_IDS[@]}"; do
HTTP_CODE=$(curl -s -o "/tmp/notify_resp_$WA_ID.txt" -w "%{http_code}" \
-X POST "$API_URL" -H "Content-Type: application/json" \
-d "{\"id\":\"$WA_ID\",\"text\":\"$MESSAGE\",\"type\":\"Text\",\"waKey\":\"$WA_KEY\"}")
echo "[$LOGIN_TIME] User $USER_LOGIN from $IP_ADDRESS ⟹ $WA_ID" >> "$LOG_FILE"
if [ "$HTTP_CODE" = "200" ]; then
echo "✅ Sent (HTTP 200)" >> "$LOG_FILE"
else
echo "❌ Failed (HTTP $HTTP_CODE)" >> "$LOG_FILE"
cat "/tmp/notify_resp_$WA_ID.txt" >> "$LOG_FILE"
fi
echo "----------------------------------------" >> "$LOG_FILE"
done
4. Jadikan executable
sudo chmod +x /etc/profile.d/notify-login.sh
5. Siapkan file log
sudo touch /var/log/notify-login.log
sudo chmod 666 /var/log/notify-login.log # mudah diinspeksi
6. Uji coba
- Log‑out, lalu SSH login lagi (bisa dari device berbeda supaya IP berbeda).
- Periksa WhatsApp di kedua nomor – pesan harus muncul.
- Jika belum muncul, cek log:
cat /var/log/notify-login.log
Di sana akan ada:
- Baris “✅ Sent (HTTP 200)” kalau sukses,
- Atau “❌ Failed (HTTP …)” beserta isi respons API kalau ada masalah key/jaringan.
7. Troubleshooting cepat
Gejala | Langkah cek |
---|
Tidak ada pesan | Pastikan script punya izin + jalur /etc/profile.d dieksekusi (hanya login shell). |
HTTP 401/403 | API‑key salah / device belum terhubung. |
HTTP 500 | Server API down; coba lagi. |
Pesan ganda | Periksa apakah script disalin ganda di /etc/profile.d . |
Selesai!
Server kini akan
mengirim alert login lengkap dengan detail resource ke
dua nomor WhatsApp yang kamu minta.