Untuk keamanan tambahan, Anda dapat meminta token otentikasi berbasis waktu serta kata sandi untuk masuk ke PC Linux Anda. Solusi ini menggunakan Google Authenticator dan aplikasi TOTP lainnya.
Proses ini dilakukan pada Ubuntu 14.04 dengan desktop login Unity standar dan LightDM, tetapi prinsipnya sama pada kebanyakan distribusi Linux dan desktop.
Kami sebelumnya menunjukkan kepada Anda cara mewajibkan Google Authenticator untuk akses jarak jauh melalui SSH, dan proses ini serupa. Ini tidak memerlukan aplikasi Google Authenticator, tetapi berfungsi dengan aplikasi apa pun yang kompatibel yang menerapkan skema otentikasi TOTP, termasuk Authy.
Seperti saat mengatur ini untuk akses SSH, pertama-tama kita harus menginstal perangkat lunak PAM ("pluggable-authentication module") yang sesuai. PAM adalah sistem yang memungkinkan kita untuk memasukkan berbagai jenis metode otentikasi ke dalam sistem Linux dan membutuhkannya.
Di Ubuntu, perintah berikut akan menginstal PAM Google Authenticator. Buka jendela Terminal, ketik perintah berikut, tekan Enter, dan berikan kata sandi Anda. Sistem akan mengunduh PAM dari repositori perangkat lunak distribusi Linux Anda dan menginstalnya:
sudo apt-get install libpam-google-authenticator
Distribusi Linux lainnya semestinya memiliki paket ini tersedia untuk kemudahan instalasi juga - buka repositori perangkat lunak distribusi Linux Anda dan lakukan pencarian untuk itu. Dalam skenario terburuk, Anda dapat menemukan kode sumber untuk modul PAM di GitHub dan kompilasi sendiri.
Seperti yang kami tunjukkan sebelumnya, solusi ini tidak bergantung pada “menelepon rumah” ke server Google. Ini mengimplementasikan algoritma TOTP standar dan dapat digunakan bahkan ketika komputer Anda tidak memiliki akses Internet.
Sekarang Anda harus membuat kunci autentikasi rahasia dan memasukkannya ke aplikasi Google Authenticator (atau yang serupa) di ponsel Anda. Pertama, masuk sebagai akun pengguna Anda di sistem Linux Anda. Buka jendela terminal dan jalankan google-authenticator perintah. Mengetik y dan ikuti petunjuknya di sini. Ini akan membuat file khusus di direktori akun pengguna saat ini dengan informasi Google Authenticator.
Anda juga akan menjalani proses untuk mendapatkan kode verifikasi dua-faktor tersebut menjadi Google Authenticator atau aplikasi TOTP serupa di ponsel cerdas Anda. Sistem Anda dapat menghasilkan kode QR yang dapat Anda pindai, atau Anda dapat mengetiknya secara manual.
Pastikan untuk mencatat kode gawat darurat Anda, yang dapat Anda gunakan untuk masuk dengan jika Anda kehilangan ponsel Anda.
Ikuti proses ini untuk setiap akun pengguna yang menggunakan komputer Anda. Misalnya, jika Anda satu-satunya orang yang menggunakan komputer Anda, Anda dapat melakukannya sekali saja di akun pengguna normal Anda. Jika Anda memiliki orang lain yang menggunakan komputer Anda, Anda akan ingin mereka masuk ke akun mereka sendiri dan menghasilkan kode dua faktor yang sesuai untuk akun mereka sendiri sehingga mereka dapat masuk.
Di sinilah hal-hal menjadi sedikit sulit. Ketika kami menjelaskan cara mengaktifkan dua faktor untuk SSH, kami hanya mewajibkannya untuk SSH login. Ini memastikan Anda masih bisa masuk secara lokal jika Anda kehilangan aplikasi otentikasi atau jika ada yang salah.
Karena kami akan mengaktifkan otentikasi dua faktor untuk proses masuk lokal, ada potensi masalah di sini. Jika ada yang salah, Anda mungkin tidak dapat masuk. Mengingat hal tersebut, kami akan memandu Anda untuk mengaktifkan ini hanya untuk proses masuk grafis. Ini memberi Anda pintu keluar darurat jika Anda membutuhkannya.
Anda selalu dapat mengaktifkan otentikasi dua langkah untuk hanya login grafis, melewatkan persyaratan saat Anda masuk dari prompt teks. Ini berarti Anda dapat dengan mudah beralih ke terminal virtual, masuk ke sana, dan kembalikan perubahan Anda sehingga Gogole Authenciator tidak akan diperlukan jika Anda mengalami masalah.
Tentu, ini membuka lubang di sistem otentikasi Anda, tetapi penyerang dengan akses fisik ke sistem Anda sudah dapat mengeksploitasinya. Itulah sebabnya otentikasi dua faktor sangat efektif untuk login jarak jauh melalui SSH.
Berikut ini cara melakukan ini untuk Ubuntu, yang menggunakan manajer login LightDM. Buka file LightDM untuk mengedit dengan perintah seperti berikut:
sudo gedit /etc/pam.d/lightdm
(Ingat, langkah-langkah spesifik ini hanya akan berfungsi jika distribusi Linux Anda dan desktop menggunakan manajer login LightDM.)
Tambahkan baris berikut ke bagian akhir file, dan kemudian simpan:
auth diperlukan pam_google_authenticator.so nullok
Bit "nullok" di bagian akhir memberi tahu sistem untuk mengizinkan pengguna masuk meskipun mereka belum menjalankan perintah google-authenticator untuk menyiapkan otentikasi dua faktor. Jika mereka telah mengaturnya, mereka harus memasukkan kode waktu-baesd - jika tidak, mereka tidak akan melakukannya. Hapus akun "nullok" dan pengguna yang belum menyiapkan kode Google Authenticator tidak akan dapat masuk secara grafis.
Saat berikutnya pengguna login secara grafis, mereka akan diminta kata sandinya dan kemudian diminta untuk menampilkan kode verifikasi saat ini di ponsel mereka. Jika mereka tidak memasukkan kode verifikasi, mereka tidak akan diizinkan masuk.
Prosesnya harus cukup mirip untuk distribusi Linux dan desktop lainnya, karena kebanyakan manajer sesi desktop Linux menggunakan PAM. Anda mungkin harus mengedit file yang berbeda dengan sesuatu yang mirip dengan mengaktifkan modul PAM yang sesuai.
Rilis Ubuntu yang lebih lama menawarkan opsi "folder rumah enkripsi" yang mudah yang dienkripsi seluruh direktori rumah Anda sampai Anda memasukkan kata sandi Anda. Secara khusus, ini menggunakan ecryptfs.Namun, karena perangkat lunak PAM bergantung pada file Google Authenticator yang disimpan di direktori rumah Anda secara default, enkripsi mengganggu PAM membaca file kecuali Anda memastikan itu tersedia dalam bentuk terenkripsi ke sistem sebelum Anda masuk. Baca README untuk lebih lanjut informasi tentang menghindari masalah ini jika Anda masih menggunakan opsi enkripsi direktori rumah yang tidak berlaku lagi.
Versi Ubuntu yang modern menawarkan enkripsi full-disk, yang akan berfungsi dengan baik dengan opsi di atas. Anda tidak perlu melakukan sesuatu yang istimewa
Karena kami hanya mengaktifkan ini untuk login grafis, itu harus mudah dinonaktifkan jika itu menyebabkan masalah. Tekan kombinasi tombol seperti Ctrl + Alt + F2 untuk mengakses terminal virtual dan masuk ke sana dengan nama pengguna dan kata sandi Anda. Anda kemudian dapat menggunakan perintah seperti sudo nano /etc/pam.d/lightdm untuk membuka file untuk diedit dalam editor teks terminal. Gunakan panduan kami untuk Nano untuk menghapus garis dan menyimpan file, dan Anda akan dapat masuk lagi secara normal.
Anda juga dapat memaksa Google Authenticator diperlukan untuk jenis login lain - kemungkinan bahkan semua login sistem - dengan menambahkan baris “auth required pam_google_authenticator.so” ke file konfigurasi PAM lainnya. Hati-hati jika kamu melakukan ini. Dan ingat, Anda mungkin ingin menambahkan "nullok" sehingga pengguna yang belum melewati proses penyiapan masih dapat masuk.
Dokumentasi lebih lanjut tentang cara menggunakan dan mengatur modul PAM ini dapat ditemukan di file README perangkat lunak di GitHub.