Notifikasi Login SSH Menggunakan Telegram Bot

5 minutes 3,966 4

Telegram merupakan salah satu “messenger apps” yang rupanya mempunyai banyak fungsi. Selain enteng, cepat, mendukung sinkronisasi pada banyak perangkat, aman, sifatnya yang open-source menjadikan Telegram unggul dari aplikasi serupa.

Yang menarik, rupanya Telegram tidak hanya bisa digunakan sebagai aplikasi perpesanan, namun juga bisa menjadi platform Internet of Things. Ini didukung dengan diluncurkannya Telegram Bot pada 24 Juni 2015 lalu.

Kali ini saya akan membagikan cara memanfaatkan Telegram Bot untuk memberikan notifikasi saat ada yang masuk ke server melalui SSH. Tak perlu repot, hanya memerlukan sebuah skrip BASH sederhana dan bot pun bisa langsung bekerja.

Membuat Akun Bot Telegram

Pertama, tentu harus memiliki sebuah akun Telegram yang aktif. Cara membuatnya cukup mudah, dengan mengunduh aplikasi Telegram dan mendaftarkan nomor ponsel.

Kemudian, buat sebuah akun bot yang akan digunakan untuk mengirim pesan sebagai notifikasi. Bot ini juga bisa dimanfaatkan untuk menerima pesan. Caranya, cari akun @botfather lalu mulai percakapan dengannya.

Gunakan perintah /newbot untuk membuat bot baru. Bot @botfather akan menanyakan nama dari bot. Buat sebuah nama dengan menjawab pertanyaan @botfather dan @botfather akan menanyakan username yang akan digunakan oleh bot. Username bot harus berakhiran bot, misal: matriphebot.

Jika username belum digunakan, API key akan diberikan @botfather untuk mengakses API. Contoh API key (bukan API key sebenarnya) adalah sebagai berikut: 110513677:AAFsk7fWe_FUckF5mtYOJeJ4gUDPgCER4co

Membuat Telegram Bot menggunakan @botfather

 

Mendapatkan ID Pengguna

Setelah bot selesai dibuat, dengan menggunakan akun Telegram, tambahkan akun bot yang barusan dibuat. Kemudian, sapa bot tersebut agar kita bisa mengambil ID akun Telegram yang akan dikirimi notifikasi.

memulai percakapan @matriphebot

Untuk melihat ID akun telegram, melalui shell, ketikkan perintah curl.

curl https://api.telegram.org/bot110513677:AAFsk7fWe_FUckF5mtYOJeJ4gUDPgCER4co/getUpdates

Hasil dari perintah di atas adalah berkas JSON seperti berikut.

Dari JSON di atas, diketahui bahwa ID pengguna adalah 1498275 (dalam contoh ini, bukan ID sebenarnya). Maka didapat informasi yang akan digunakan di skrip BASH berupa API key dan ID pengguna.

Skrip BASH

Untuk memasang skrip BASH, pastikan menggunakan akses root atau sudo. Skrip ini bekerja dengan cara menangkap event saat ada pengguna yang masuk melalui SSH, lalu mengirim pesan notifikasi ke pengguna melalui pesan Telegram.

Informasi yang dikirim meliputi tanggal dan jam masuk, alamat IP host dan IP pengguna yang masuk beserta informasi ISP, kota, dan negara pengguna. Informasi IP diperoleh dari layanan ipinfo.io.

Karena keluaran dari layanan ipinfo.io berupa JSON, diperlukan sebuah parser JSON. Saya menggunakan jq. Pastikan jq terpasang di server tujuan.

Unduh skrip BASH berikut lalu letakkan dalam direktori /etc/profile.d/. Berikan nama, misalnya ssh-telegram.sh sehingga skrip berada di /etc/profile.d/ssh-telegram.sh yang nanti akan dieksekusi oleh sistem setiap kali ada pengguna yang masuk melalui SSH.

Sesuaikan variabel USERID dan KEY dengan ID pengguna dan API key yang diperoleh.

Notifikasi via Telegram

Setelah sukses, silakan keluar dari server yang telah dipasangi skrip tersebut, lalu coba masuk melalui SSH. Tak berapa lama, bot akan memberi notifikasi ada pengguna yang masuk ke dalam server.

telegram-notif-ssh

Referensi

4 responses
  1. Gravatar of Toni
    Toni

    Keren. Install dulu ah.

  2. Gravatar of Kenz
    Kenz

    Keren … Aku biasanya pakai pushover untuk notifikasi kalau ada yg login di server … ternyata bisa pakai telegram … trims tutorialnya … 😀

  3. Gravatar of Rere @atemalem
    Rere @atemalem

    Ishh, aku terpana, kok kerenn..
    Trus aku baca sampe selesai lalu berharap paham maksudnya apaan.
    Ternyata aku ga mampu.
    Resep rendang mana, resep rendang.

  4. Gravatar of Arfha
    Arfha

    Saya udah ikutin tutor di atas. Tapi kok ga ada message yang tampil ya mas??
    Mohon bantuannyaa terimakasih