Bash Shell Script: Untuk Notifikasi Email Setiap Ada Login SSH

FeaturedNgoprekTutorial
Views: 9

VPS saya belakangan kena serang terus, beberapa website saya dideface dengan website judol atau judi online. Kampret emang, kacau banget. Salah satu hal yang saya mau deteksi lewat mana hacker ini masuk, adalah akses SSH (Secure Shell), sekalian memantau siapa dan kapan saja yang berhasil masuk ke dalam server Anda secara real-time adalah langkah preventif yang sangat efektif untuk mendeteksi aktivitas mencurigakan sejak dini. Tutorial ini Bash shell script sederhana, namun powerful yang otomatis mengirimkan notifikasi email setiap kali ada sesi login SSH yang aktif ke server Linux Kamu. Yukk,,

1. Buat App Password di Akun Gmail Kamu

Kadang server kita belum di konfigurasi untuk kirim email, jadi kita gunakan akun Gmail & app password. Kamu ikuti tutorial ini.

2. Siapkan Skrip Pengirim Email di Server Linux

Saya gunakan server Ubuntu, buat sebuah skrip bash (misalnya di /home/arif/ssh_login_alert.sh) yang akan dieksekusi otomatis setiap kali ada pengguna yang berhasil login SSH.

Kamu bisa menggunakan perintah curl dengan protokol SMTPS (karena mail atau sendmail sering kali memerlukan konfigurasi postfix yang rumit).

#!/bin/bash

# Hanya jalankan saat sesi login terbuka (bukan saat sesi tertutup)
if [ "$PAM_TYPE" = "open_session" ]; then
# Ambil informasi login
IP="$PAM_RHOST"
USER="$PAM_USER"
SERVICE="$PAM_SERVICE"
TIME=$(date "+%Y-%m-%d %H:%M:%S")
HOST=$(hostname)

# Jika IP kosong (misal login lokal), abaikan atau tandai lokal
[ -z "$IP" ] && IP="Lokal/Internal"

# Konfigurasi Akun Gmail
GMAIL_USER="email-pengirim@gmail.com"
GMAIL_APP_PASSWORD="xxxx xxxx xxxx xxxx"
RECIPIENT="email-penerima@gmail.com"

# Buat pesan email
EMAIL_CONTENT="From: $GMAIL_USER
To: $RECIPIENT
Subject: [ALERT] SSH Login pada $HOST oleh $USER

Halo,

Ada aktivitas login SSH baru pada server Kamu:
- Hostname : $HOST
- Pengguna : $USER
- IP Address : $IP
- Layanan : $SERVICE
- Waktu : $TIME

Jika ini bukan Kamu, segera amankan server Kamu!
"

# Kirim email menggunakan curl via SMTPS
echo "$EMAIL_CONTENT" | curl --url 'smtps://smtp.gmail.com:465' \
--ssl-reqd \
--mail-from "$GMAIL_USER" \
--mail-rcpt "$RECIPIENT" \
--user "$GMAIL_USER:$GMAIL_APP_PASSWORD" \
--upload-file - &>/dev/null &
fi

Jangan lupa untuk memberikan izin eksekusi pada skrip tersebut:

sudo chmod +x /home/arif/ssh_login_alert.sh

3. Integrasikan Skrip dengan PAM (Pluggable Authentication Modules)

Agar skrip berjalan otomatis setiap kali ada SSH login yang berhasil, konfigurasikan file PAM SSH.

Buka file konfigurasi PAM untuk SSH:

sudo nano /etc/pam.d/sshd
Tambahkan baris berikut di bagian paling bawah file:
session optional pam_exec.so seteuid /home/arif/ssh_login_alert.sh
Simpan dan keluar dari editor (Ctrl+O, lalu Enter, lalu Ctrl+X).

4. Cobain tes

Buka terminal baru atau lakukan SSH ke server kamu dari perangkat lain. Jika konfigurasi sudah benar, Kamu akan menerima email notifikasi di kotak masuk Gmail Kamu beberapa detik setelah login berhasil. Selamat mencoba.

Mungkin Kamu juga suka

Tutorial: Cara Membuat App Password (Sandi Aplikasi) di Akun Google/Gmail

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Fill out this field
Fill out this field
Mohon masukan alamat email yang sah.
You need to agree with the terms to proceed