Mengamankan SSH di Linux dengan One-Time Password (OTP) yang dikirim melalui email adalah pendekatan yang lebih rumit daripada menggunakan aplikasi autentikator, tetapi masih mungkin dilakukan. Berikut adalah langkah-langkah untuk mengatur OTP melalui email:
Prasyarat
Server Email: Anda harus memiliki server email yang dapat digunakan untuk mengirim email. Ini bisa menggunakan SMTP server seperti Postfix atau menggunakan layanan pihak ketiga seperti Gmail.
Paket yang Diperlukan: Pastikan Anda memiliki
mail
danopenssl
terinstal.
Langkah 1: Instalasi Paket
Instal Paket: Untuk Debian/Ubuntu:
bashsudo apt-get install mailutils openssl
Untuk Red Hat/Fedora:
bashsudo yum install mailx openssl
Langkah 2: Buat Skrip untuk Mengirim OTP
Buat Skrip OTP: Buat skrip untuk menghasilkan dan mengirim OTP. Misalnya, buat file bernama
send_otp.sh
:bashsudo nano /usr/local/bin/send_otp.sh
Tambahkan kode berikut ke dalam skrip:
bash#!/bin/bash # Menghasilkan OTP OTP=$(openssl rand -hex 3) # Mengirim email dengan OTP echo "Your OTP is: $OTP" | mail -s "Your OTP Code" <your-email@example.com> # Simpan OTP di file sementara echo $OTP > /tmp/otp_$USER # Hapus OTP setelah 5 menit (sleep 300; rm -f /tmp/otp_$USER) &
Gantilah
<your-email@example.com>
dengan alamat email Anda.Beri Izin Eksekusi pada Skrip:
bashsudo chmod +x /usr/local/bin/send_otp.sh
Langkah 3: Konfigurasi SSH untuk Menggunakan OTP
Edit File PAM untuk SSH: Edit file PAM untuk SSH:
bashsudo nano /etc/pam.d/sshd
Tambahkan baris berikut di bagian atas file:
plaintextauth required pam_exec.so /usr/local/bin/send_otp.sh
Edit File Konfigurasi SSH: Buka file konfigurasi SSH:
bashsudo nano /etc/ssh/sshd_config
Pastikan baris berikut ada dan tidak dikomentari:
plaintextChallengeResponseAuthentication yes
Langkah 4: Verifikasi OTP
Buat Skrip untuk Memverifikasi OTP: Buat skrip lain untuk memverifikasi OTP:
bashsudo nano /usr/local/bin/verify_otp.sh
Tambahkan kode berikut:
bash#!/bin/bash read -p "Enter OTP: " INPUT_OTP STORED_OTP=$(cat /tmp/otp_$USER 2>/dev/null) if [[ "$INPUT_OTP" == "$STORED_OTP" ]]; then rm -f /tmp/otp_$USER exit 0 # Token valid else exit 1 # Token tidak valid fi
Beri Izin Eksekusi pada Skrip:
bashsudo chmod +x /usr/local/bin/verify_otp.sh
Langkah 5: Tambahkan Verifikasi OTP ke PAM
Edit File PAM untuk SSH: Edit kembali file PAM untuk SSH:
bashsudo nano /etc/pam.d/sshd
Tambahkan baris berikut setelah baris yang mengirim OTP:
plaintextauth required pam_exec.so /usr/local/bin/verify_otp.sh
Langkah 6: Restart Layanan SSH
- Restart SSH:
Setelah melakukan perubahan, restart layanan SSH:bash
sudo systemctl restart sshd
Langkah 7: Uji Koneksi SSH
- Uji Koneksi SSH: Cobalah untuk terhubung melalui SSH. Anda akan menerima OTP melalui email, dan setelah itu Anda akan diminta untuk memasukkan OTP.
Catatan Tambahan
- Keamanan Email: Pastikan email Anda aman, karena ini adalah cara utama untuk menerima OTP.
- Penghapusan OTP: Skrip ini menghapus OTP setelah 5 menit. Anda dapat menyesuaikannya sesuai kebutuhan.
- Backup: Pertimbangkan untuk mengamankan skrip dan kredensial Anda.
Jika Anda memiliki pertanyaan lebih lanjut atau membutuhkan penjelasan tambahan, silakan tanyakan!
Tidak ada komentar:
Posting Komentar