Tentang G Suite Secure LDAP atau Google Cloud Identity
Kurang lebih sebulan yang lalu tepatnya 26 November 2018, Google merilis fitur Secure LDAP untuk pengguna G Suite Enterprise, G Suite Enterprise for Education, G Suite for Education dan Cloud Identity Premium editions. Kebetulan di tempat saya bekerja , kami juga mengunakan layanan G Suite for Education. Layanan Secure LDAP ini sangat dibutuhkan untuk untuk sentralisasi data pengguna terutama bagi instansi dengan jumlah user yang banyak seperti sekolah dan perguruan tinggi.
Kali ini saya mencoba memanfaatkan Secure LDAP dari G Suite ini sebagai sumber data pengguna yang berhak mengakses jaringan WLAN. Service yang kami gunakan adalah Freeradius sebagai radius server bagi akses poin. Nantinya, semua pengguna yang memiliki akun G Suite dengan domain yang kami miliki akan memiliki izin mengakses jaringan WLAN dengan login menggunakan WPA2-Enterprise 802.1x-EAP dengan metode TTLS dan PAP.
Mengaktifkan Secure LDAP client, konfigurasi izin akses dan download sertifikat
Untuk bisa memanfaatkan fitur Secure LDAP dari Gsuite, terlebih dahulu kita harus membuat atau mendaftarkan aplikasi (LDAP Client) yang akan kita gunakan kedalam konsol Admin G Suite (disini kita mengunakan Freeradius. Anda bisa mengikuti langkah berikut :
Login ke konsol Google Admin untuk domain yang anda miliki
Buka menu Aplikasi > LDAP dan klik TAMBAHKAN KLIEN LDAP
Ketikkan nama aplikasi yang akan kita gunakan di kolom Nama Klien LDAP misal : Freeradius Server
Ketikkan deskripsi dari aplikasi anda (opsional) kemudian klik LANJUTKAN
Setelah anda klik LANJUTKAN, akan terbuka halaman izin akses dari aplikasi yang kita daftarkan. Untuk kebutuhan autentikasi penguna di Freeradius, kita akan membutuhkan izin untuk Memverifikasi Kredensial Pengguna, Informasi Pengguna dan Informasi Grup. Untuk dua izin pertama, kita bisa memilih klien yang akan kita gunakan memiliki izin akses untuk seluruh unit organisasi (OU) atau sebagian yang bisa kita tentukan. setelah kita selesai menentukan izin aplikasi klik TAMBAHKAN KLIEN LDAP
Selanjutnya kan muncul halaman sertifikat yang dibuat secara otomatis. Sertifikat ini berfungsi untuk memverifikasi aplikasi anda untuk bisa login dan mengakses Secure LDAP sesuai izin yang telah ditentukan sebelumnya. Silahkan download dan simpan, untuk nantinya kita upload ke server freeradius. Selanjutnya klik LANJUTKAN KE DETAIL KLIEN
Saat muncul detail klien LDAP, klik pada kolom kartu Autentikasi. Kemudian klik BUAT KREDENSIAL BARU, akan muncul username dan password yang dibuat secara otomatis, catat dan simpan untuk kita gunakan pada konfigurasi modul LDAP di Freeradius.
Klik pada kartu Status Layanan, pilih Aktif dan SIMPAN
Menginstall dan konfigurasi Freeradius, modul LDAP dengan Multiple baseDN dan autentifikasi EAP-TTLS+PAP
Seperti biasa, server yang saya gunakan disini adalah Ubuntu Linux 16.04. Dalam konfigurasi Freeradius ini, saya mengunakan beberapa instance modul LDAP dengan Multiple baseDN guna mengakomodasi beberapa domain dan subdomain yang kami gunakan. Langkah untuk install dan konfigurasi Freeradius adalah sebagai berikut :
Install paket freeradius dan freeradius-ldap
sudo apt-get install freeradius freeradius-ldap
Pastikan modul ldap sudah aktif dengan adanya symlink pada
/etc/freeradius/mods-enabled/
Edit file /etc/freeradius/mods-available/ldap bagian lain dari file biarkan saja jangan di edit.
ldap domain1 {
server = 'ldaps://ldap.google.com:636'
identity = 'JumpyTanta'
password = PaSsWoRdSuPeRsEcReT
base_dn = "dc=domain,dc=com"
tls {
start_tls = no
certificate_file = /etc/freeradius/certs/Google_2021_12_21_51950.crt
private_key_file = /etc/freeradius/certs/Google_2021_12_21_51950.key
require_cert = 'allow'
}
}
ldap subdomain1 {
server = 'ldaps://ldap.google.com:636'
identity = 'JumpyTanta'
password = PaSsWoRdSuPeRsEcReT
base_dn = "dc=subdomain,dc=domain,dc=com"
tls {
start_tls = no
certificate_file = /etc/freeradius/certs/Google_2021_12_21_51950.crt
private_key_file = /etc/freeradius/certs/Google_2021_12_21_51950.key
require_cert = 'allow'
}
}
Edit file /etc/freeradius/sites-available/default dan /etc/freeradius/sites-available/inner-tunnel pada bagian authorize dan authenticate tambahkan :
cattatan : tanda titik tiga ( . . . ) berarti ada baris konfigurasi yang tidak perlu dirubah sampai pada bagian tersebut.
authorize {
...
#
# The ldap module reads passwords from the LDAP database.
-ldap
switch "%{realm}" {
case "domain.com" {
domain1
}
case "subdomain.domain.com" {
subdomain1
}
}
expiration
logintime
pap
if (Realm == 'domain.com') {
update control {
Auth-Type = domain1
}
}
if (Realm == 'subdomain.domain.com') {
update control {
Auth-Type = subdomain1
}
}
}
authenticate {
...
# Auth-Type LDAP {
# ldap
# }
Auth-Type domain1 {
domain1
}
Auth-Type subdomain1 {
subdomain1
}
eap
}
Edit file /etc/freeradius/mods-config/files/authorize
File ini untuk mengatur pemberian VLAN sesuai grup user yang telah ditentukan, dalam contoh dibawah ada 4 grup dengan alamat email grup masing-masing adalah [email protected] (VLAN ID 111), [email protected] (VLAN ID 222), [email protected] (VLAN ID 333) dan [email protected] (VLAN ID 444)
DEFAULT realm == "domain.com", domain1-Ldap-Group == "cn=group1,ou=Groups,dc=domain,dc=com"
Tunnel-Type = VLAN,
Tunnel-Medium-Type = IEEE-802,
Tunnel-Private-Group-Id = "111"
DEFAULT realm == "domain.com", domain1-Ldap-Group == "cn=group2,ou=Groups,dc=domain,dc=com"
Tunnel-Type = VLAN,
Tunnel-Medium-Type = IEEE-802,
Tunnel-Private-Group-Id = "222"
DEFAULT realm == "subdomain1.domain.com", subdomain1-Ldap-Group == "cn=group3,ou=Groups,dc=domain,dc=com"
Tunnel-Type = VLAN,
Tunnel-Medium-Type = IEEE-802,
Tunnel-Private-Group-Id = "333"
DEFAULT realm == "subdomain1.domain.com", subdomain1-Ldap-Group == "cn=group4,ou=Groups,dc=domain,dc=com"
Tunnel-Type = VLAN,
Tunnel-Medium-Type = IEEE-802,
Tunnel-Private-Group-Id = "444"
Edit file /etc/freeradius/proxy.conf tambahkan baris berikut :
...
realm domain.com {
Auth-Type := domain1
}
realm subdomain.domain.com {
Auth-Type := subdomain1
}
Edit file /etc/freeradius/clients.conf tambahkan radius client (biasanya Akses poin, NAS, dll.) :
...
client lantai1 {
ipaddr = 192.168.1.0/24 # alamat ip akses poin
secret = passwordkonekradius # password untuk login radius
}
client lantai2 {
ipaddr = 192.168.2.0/24 # alamat ip akses poin
secret = passwordkonekradius # password untuk login radius
}
Test konfigurasi radius server
Setelah semua file diatas disimpan, restart service freeradius dan lakukan radtest. Dalam contoh dibawah kita test dengan [email protected] (terdaftar di G suite, dan member dari [email protected] )
radtest [email protected] {passwordemail} localhost 0 testing123
Jika konfigurasi kita sudah benar, kita akan mendapatkan jawaban dengan kalimat Received Access-Accept dengan disertai informasi Tunnel-Private-Group-Id atau VLAN-ID:
Sent Access-Request Id 195 from 0.0.0.0:59934 to 127.0.0.1:1812 length 89
User-Name = "[email protected]"
User-Password = "{passwordemail}"
NAS-IP-Address = 127.0.0.1
NAS-Port = 0
Message-Authenticator = 0x00
Cleartext-Password = "{passwordemail}"
Sent Access-Request Id 195 from 0.0.0.0:59934 to 127.0.0.1:1812 length 89
User-Name = "[email protected]"
User-Password = "{passwordemail}"
NAS-IP-Address = 127.0.0.1
NAS-Port = 0
Message-Authenticator = 0x00
Cleartext-Password = "{passwordemail}"
Received Access-Accept Id 195 from 127.0.0.1:1812 to 0.0.0.0:0 length 37
Tunnel-Type:0 = VLAN
Tunnel-Medium-Type:0 = IEEE-802
Tunnel-Private-Group-Id:0 = "222"
Setting radius pada Ubiquiti Unifi Controller
Selanjutnya anda tingal melakukan setting pada akses poin untuk menggunakan WPA2-Enterprise. Berikut ini adalah contoh jika anda menggunakan Ubiquiti Unifi Controller (5.9.32) :
Setting > Profile > Radius > CREATE NEW RADIUS PROFILE
Setting > Wireless Network > CREATE NEW WIRELESS NETWORK
Peringatan : Ini hasil catatan saya selama hampir 6 hari begadang, ilmu tambal sulam, copas sana-sini, terutama pada bagian instantiate ldap modul, proxy realm, authorize dan authenticate dengan multiple baseDN. Kalau ada yang salah atau kurang bener dari konfigurasi diatas mohon dimaafkan, dan jangan sungkan untuk membetulkan _/\_
Bro
gue gak bisa nemuin directory ini
Pastikan modul ldap sudah aktif dengan adanya symlink pada
/etc/freeradius/mods-enabled/
Edit file /etc/freeradius/mods-available/ldap bagian lain dari file biarkan saja jangan di edit.
Freeradiusnya versi berapa mas? Pastikan pakai versi 3 ya..
Cara memberikan simultaneous limit login dimana ya gan, saya alhamdulillah sdh sukses coba tutor diatas dgn beberapa penyesuaian
Kalau gak salah, untuk bisa menerapkan simultaneous-use mesti menyimpan accounting di database mysql, trus nanti ubah opsi simultaneous pada file dialup.conf yg ada pada folder ../sql/mysql
Mungkin tulisan saya tahun 2010 ini bisa jadi referensi, intinya accounting data harus disimpan dalam database https://ndra16.my.id/2010/09/solusi-mencegah-login-ganda-di-easyhotspot/
Ini saya coba kalau pakai radtest benar user ditolak kalau melebihi 1 login, nah tapi kalau pakai komputer loginnya msh tembus limit simutaneous nya, kira-kira salahnya dimana ya gan ?
Wah.. saya sendiri sebenernya jarang oprek freeradius, hanya sebatas mengerjakan kebutuhan di kantor saja sih, jadi belum tau kenapa beda hasil antara di PC dengan radtest
Saya coba berhasil sampai di radtest saja tapi di implementasinya gak bisa, bagaimana cara setting TTLS PAPnya
Jika sampai radtest sudah bisa, berarti tinggal masukkan setting radius di akses poin, pilih security wpa2-enterprise. Jangan lupa menambahkan ip akses poin pada clients.conf