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
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.
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.
Keren. Install dulu ah.