Untuk mengatur otentikasi dua faktor (2FA) pada SSH di Linux, Anda dapat mengikuti langkah-langkah berikut. Di sini, kita akan menggunakan Google Authenticator sebagai contoh.
Langkah 1: Instalasi Google Authenticator
- Instal paket:
Jalankan perintah berikut untuk menginstal Google Authenticator:
bash
sudo apt-get install libpam-google-authenticator
(Untuk distribusi berbasis RPM, Anda bisa menggunakan yum
atau dnf
.)
Langkah 2: Konfigurasi Google Authenticator
Jalankan Google Authenticator:
Masuk sebagai pengguna yang ingin Anda amankan dan jalankan:
Anda akan diminta untuk menjawab beberapa pertanyaan:
- Apakah Anda ingin mengubah konfigurasi? (jawab
y
) - Simpan kode QR atau kunci yang diberikan, Anda bisa memindai dengan aplikasi autentikator di ponsel Anda (misalnya, Google Authenticator atau Authy).
- Pilih untuk mengizinkan penggunaan satu kali password (OTP) setelah login jika Anda ingin.
Langkah 3: Konfigurasi SSH
Edit file konfigurasi SSH:
Buka file konfigurasi SSH:
bash
sudo nano /etc/ssh/sshd_config
Pastikan baris berikut ada dan tidak dikomentari:
plaintext
ChallengeResponseAuthentication yes
Jika ada baris UsePAM no
, ubah menjadi:
Tambahkan modul PAM:
Edit file PAM untuk SSH:
bash
sudo nano /etc/pam.d/sshd
Tambahkan baris berikut di bagian atas file:
plaintext
auth required pam_google_authenticator.so
Langkah 4: Restart Layanan SSH
- Restart SSH:
Setelah Anda melakukan perubahan, restart layanan SSH dengan perintah berikut:
bash
sudo systemctl restart sshd
Langkah 5: Uji Konfigurasi
- Uji otentikasi:
Cobalah untuk terhubung melalui SSH. Setelah memasukkan kata sandi Anda, Anda akan diminta untuk memasukkan kode dari aplikasi autentikator.
Catatan Tambahan
- Backup Kunci: Pastikan Anda menyimpan kunci cadangan dengan aman. Jika Anda kehilangan akses ke aplikasi autentikator, Anda mungkin tidak dapat lagi masuk ke server.
- Recovery Codes: Beberapa aplikasi autentikator menyediakan kode pemulihan. Simpanlah dengan baik.
Dengan mengikuti langkah-langkah di atas, Anda akan berhasil mengatur otentikasi dua faktor untuk SSH di Linux. Jika ada pertanyaan lebih lanjut, jangan ragu untuk bertanya!
You said:
cara setting 2factor ssh linux dengan keycloak
ChatGPT said:
Untuk mengatur otentikasi dua faktor (2FA) pada SSH menggunakan Keycloak, Anda akan memerlukan beberapa langkah tambahan karena Keycloak umumnya digunakan untuk aplikasi web dan API. Namun, Anda dapat menggunakan Keycloak sebagai server otentikasi dan mengonfigurasi SSH untuk menggunakan token yang dikeluarkan oleh Keycloak. Berikut adalah langkah-langkah umum untuk mencapai ini:
Langkah 1: Siapkan Keycloak
Instal dan Konfigurasi Keycloak:
- Unduh dan instal Keycloak sesuai dengan dokumentasi resminya.
- Jalankan Keycloak dan buat realm serta klien yang sesuai.
Konfigurasi Klien:
- Buat klien baru untuk aplikasi SSH. Atur redirect URI dan informasi lainnya sesuai kebutuhan.
- Aktifkan opsi untuk menghasilkan token dan konfigurasikan pengaturan lainnya yang diperlukan.
Langkah 2: Konfigurasi SSH
Instalasi Paket yang Diperlukan:
Anda mungkin perlu menginstal curl
dan jq
untuk memproses token. Jalankan:
bash
sudo apt-get install curl jq
Buat Skrip Otentikasi:
Anda perlu membuat skrip yang akan digunakan untuk memverifikasi token JWT yang dihasilkan oleh Keycloak. Buat file bernama keycloak-ssh-auth.sh
:
bash
sudo nano /usr/local/bin/keycloak-ssh-auth.sh
Tambahkan kode berikut:
bash
#!/bin/bash
TOKEN=$1
KEYCLOAK_URL="https://<keycloak-server>/auth/realms/<your-realm>/protocol/openid-connect/token/introspect"
CLIENT_ID="<your-client-id>"
CLIENT_SECRET="<your-client-secret>"
RESPONSE=$(curl -s -X POST -d "client_id=${CLIENT_ID}" -d "client_secret=${CLIENT_SECRET}" -d "token=${TOKEN}" ${KEYCLOAK_URL})
if [[ $(echo $RESPONSE | jq -r .active) == "true" ]]; then
exit 0
else
exit 1
fi
Ganti <keycloak-server>
, <your-realm>
, <your-client-id>
, dan <your-client-secret>
sesuai dengan konfigurasi Anda.
Beri Izin Eksekusi pada Skrip:
bash
sudo chmod +x /usr/local/bin/keycloak-ssh-auth.sh
Langkah 3: Konfigurasi PAM untuk SSH
Edit File PAM untuk SSH:
Edit file PAM SSH:
bash
sudo nano /etc/pam.d/sshd
Tambahkan baris berikut di bagian atas file:
plaintext
auth required pam_exec.so /usr/local/bin/keycloak-ssh-auth.sh
Langkah 4: Konfigurasi SSH
Edit File Konfigurasi SSH:
Edit file konfigurasi SSH:
bash
sudo nano /etc/ssh/sshd_config
Pastikan baris berikut ada dan tidak dikomentari:
plaintext
ChallengeResponseAuthentication yes
Langkah 5: Restart Layanan SSH
- Restart SSH:
Setelah melakukan perubahan, restart layanan SSH:
bash
sudo systemctl restart sshd
Langkah 6: Uji Konfigurasi
- Uji Otentikasi:
Cobalah untuk terhubung melalui SSH. Anda perlu mengirim token yang valid dari Keycloak sebagai bagian dari proses otentikasi.
Catatan Tambahan
- Token JWT: Anda perlu cara untuk mendapatkan token JWT dari Keycloak sebelum melakukan koneksi SSH. Ini bisa dilakukan melalui aplikasi klien atau skrip yang menggunakan Keycloak.
- Keamanan: Pastikan Anda mengamankan skrip dan kredensial Keycloak dengan baik.
Jika ada pertanyaan lebih lanjut atau butuh penjelasan tambahan, jangan ragu untuk bertanya!
You said:
contoh 2factor ssh dengan keyclock
ChatGPT said:
Mengonfigurasi otentikasi dua faktor (2FA) untuk SSH menggunakan Keycloak bisa menjadi proses yang kompleks, tetapi berikut adalah contoh langkah demi langkah yang lebih rinci. Kita akan menggunakan Keycloak untuk menghasilkan token dan kemudian mengonfigurasi SSH untuk memverifikasi token tersebut.
Persiapan di Keycloak
Instal Keycloak:
Jika Anda belum menginstal Keycloak, ikuti petunjuk di dokumentasi Keycloak untuk menginstalnya.
Buat Realm:
- Masuk ke konsol admin Keycloak.
- Buat realm baru.
Buat Klien:
- Dalam realm yang baru dibuat, buat klien baru.
- Set
Access Type
ke confidential
. - Catat
Client ID
dan Client Secret
.
Konfigurasi Klien:
- Di bagian
Settings
, aktifkan Service Accounts Enabled
. - Di bagian
Advanced Settings
, aktifkan Authorization
.
Persiapan di Server Linux
Instalasi Paket yang Diperlukan:
Pastikan Anda memiliki curl
dan jq
terinstal:
bash
sudo apt-get install curl jq
Buat Skrip untuk Memverifikasi Token:
Buat skrip untuk memverifikasi token yang dikeluarkan oleh Keycloak.
bash
sudo nano /usr/local/bin/keycloak-ssh-auth.sh
Tambahkan kode berikut:
bash
#!/bin/bash
TOKEN=$1
KEYCLOAK_URL="https://<keycloak-server>/auth/realms/<your-realm>/protocol/openid-connect/token/introspect"
CLIENT_ID="<your-client-id>"
CLIENT_SECRET="<your-client-secret>"
RESPONSE=$(curl -s -X POST -d "client_id=${CLIENT_ID}" -d "client_secret=${CLIENT_SECRET}" -d "token=${TOKEN}" ${KEYCLOAK_URL})
if [[ $(echo $RESPONSE | jq -r .active) == "true" ]]; then
exit 0
else
exit 1
fi
Gantilah <keycloak-server>
, <your-realm>
, <your-client-id>
, dan <your-client-secret>
dengan nilai yang sesuai.
Beri Izin Eksekusi pada Skrip:
bash
sudo chmod +x /usr/local/bin/keycloak-ssh-auth.sh
Konfigurasi SSH
Edit File PAM untuk SSH:
Edit file PAM SSH:
bash
sudo nano /etc/pam.d/sshd
Tambahkan baris berikut di bagian atas file:
plaintext
auth required pam_exec.so /usr/local/bin/keycloak-ssh-auth-auth.sh
Edit File Konfigurasi SSH:
Edit file konfigurasi SSH:
bash
sudo nano /etc/ssh/sshd_config
Pastikan baris berikut ada dan tidak dikomentari:
plaintext
ChallengeResponseAuthentication yes
Restart dan Uji
Restart Layanan SSH:
Setelah Anda melakukan perubahan, restart layanan SSH:
bash
sudo systemctl restart sshd
Uji Koneksi SSH:
Anda perlu mendapatkan token JWT dari Keycloak untuk dapat terhubung. Anda bisa menggunakan aplikasi klien seperti Postman atau cURL untuk mendapatkan token:
bash
curl -X POST "https://<keycloak-server>/auth/realms/<your-realm>/protocol/openid-connect/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "client_id=<your-client-id>" \
-d "client_secret=<your-client-secret>" \
-d "grant_type=password" \
-d "username=<your-username>" \
-d "password=<your-password>"
Ambil token dari respons, dan saat melakukan koneksi SSH, kirimkan token tersebut sebagai parameter.
Catatan Tambahan
- Pastikan untuk mengamankan skrip dan kredensial Anda.
- Pertimbangkan untuk menggunakan HTTPS untuk keamanan yang lebih baik.
- Uji coba dengan hati-hati di lingkungan yang aman sebelum mengimplementasikan di server produksi.
Jika ada pertanyaan lebih lanjut atau butuh bantuan dengan konfigurasi, silakan beri tahu!
====================================================================
Untuk mengatur otentikasi dua faktor (2FA) pada SSH menggunakan Keycloak, Anda akan memerlukan beberapa langkah tambahan karena Keycloak umumnya digunakan untuk aplikasi web dan API. Namun, Anda dapat menggunakan Keycloak sebagai server otentikasi dan mengonfigurasi SSH untuk menggunakan token yang dikeluarkan oleh Keycloak. Berikut adalah langkah-langkah umum untuk mencapai ini:
### Langkah 1: Siapkan Keycloak
1. **Instal dan Konfigurasi Keycloak**:
- Unduh dan instal Keycloak sesuai dengan dokumentasi resminya.
- Jalankan Keycloak dan buat realm serta klien yang sesuai.
2. **Konfigurasi Klien**:
- Buat klien baru untuk aplikasi SSH. Atur redirect URI dan informasi lainnya sesuai kebutuhan.
- Aktifkan opsi untuk menghasilkan token dan konfigurasikan pengaturan lainnya yang diperlukan.
### Langkah 2: Konfigurasi SSH
3. **Instalasi Paket yang Diperlukan**:
Anda mungkin perlu menginstal `curl` dan `jq` untuk memproses token. Jalankan:
```bash
sudo apt-get install curl jq
```
4. **Buat Skrip Otentikasi**:
Anda perlu membuat skrip yang akan digunakan untuk memverifikasi token JWT yang dihasilkan oleh Keycloak. Buat file bernama `keycloak-ssh-auth.sh`:
```bash
sudo nano /usr/local/bin/keycloak-ssh-auth.sh
```
Tambahkan kode berikut:
```bash
#!/bin/bash
TOKEN=$1
# Ganti dengan URL Keycloak dan realm Anda
KEYCLOAK_URL="https://<keycloak-server>/auth/realms/<your-realm>/protocol/openid-connect/token/introspect"
CLIENT_ID="<your-client-id>"
CLIENT_SECRET="<your-client-secret>"
# Verifikasi token
RESPONSE=$(curl -s -X POST -d "client_id=${CLIENT_ID}" -d "client_secret=${CLIENT_SECRET}" -d "token=${TOKEN}" ${KEYCLOAK_URL})
if [[ $(echo $RESPONSE | jq -r .active) == "true" ]]; then
exit 0 # Token valid
else
exit 1 # Token tidak valid
fi
```
Ganti `<keycloak-server>`, `<your-realm>`, `<your-client-id>`, dan `<your-client-secret>` sesuai dengan konfigurasi Anda.
5. **Beri Izin Eksekusi pada Skrip**:
```bash
sudo chmod +x /usr/local/bin/keycloak-ssh-auth.sh
```
### Langkah 3: Konfigurasi PAM untuk SSH
6. **Edit File PAM untuk SSH**:
Edit file PAM SSH:
```bash
sudo nano /etc/pam.d/sshd
```
Tambahkan baris berikut di bagian atas file:
```plaintext
auth required pam_exec.so /usr/local/bin/keycloak-ssh-auth.sh
```
### Langkah 4: Konfigurasi SSH
7. **Edit File Konfigurasi SSH**:
Edit file konfigurasi SSH:
```bash
sudo nano /etc/ssh/sshd_config
```
Pastikan baris berikut ada dan tidak dikomentari:
```plaintext
ChallengeResponseAuthentication yes
```
### Langkah 5: Restart Layanan SSH
8. **Restart SSH**:
Setelah melakukan perubahan, restart layanan SSH:
```bash
sudo systemctl restart sshd
```
### Langkah 6: Uji Konfigurasi
9. **Uji Otentikasi**:
Cobalah untuk terhubung melalui SSH. Anda perlu mengirim token yang valid dari Keycloak sebagai bagian dari proses otentikasi.
### Catatan Tambahan
- **Token JWT**: Anda perlu cara untuk mendapatkan token JWT dari Keycloak sebelum melakukan koneksi SSH. Ini bisa dilakukan melalui aplikasi klien atau skrip yang menggunakan Keycloak.
- **Keamanan**: Pastikan Anda mengamankan skrip dan kredensial Keycloak dengan baik.
Jika ada pertanyaan lebih lanjut atau butuh penjelasan tambahan, jangan ragu untuk bertanya!
Tidak ada komentar:
Posting Komentar