Pengertian, Cara Kerja dan Konfigurasi Remote Access Dial-In User Service (RADIUS)

https://i1.wp.com/rizkyagung.com/wp-content/uploads/2012/05/radius.gif

Remote Access (pada sebagian literatur Authentication) Dial-In User Service, yang sering disingkat menjadi RADIUS, adalah sebuah protokol keamanan komputer yang digunakan untuk melakukan autentikasi, otorisasi, dan pendaftaran akun pengguna secara terpusat untuk mengakses jaringan. RADIUS didefinisikan didalam RFC 2865 dan RFC 2866, yang pada awalnya digunakan untuk melakukan autentikasi terhadap akses jaringan jarak jauh (remote) dengan menggunakan koneksi dial-up.

RADIUS kini telah diimplementasikan untuk melakukan autentikasi terhadap akses jaringan secara jarak jauh dengan menggunakan koneksi selain dial-up, seperti halnya Virtual Private Networking (VPN), access point nirkabel, switch Ethernet, dan perangkat lainnya.

RADIUS mula-mula dikembangkan oleh perusahan Livingston. Pada awal pengembangannya, RADIUS menggunakan port 1645, yang ternyata bentrok dengan layanan “datametrics”. Sekarang, port yang dipakai RADIUS adalah port 1812. Berikut ini adalah RFC (Request For Comment) yang berhubungan dengan RADIUS:

  • RFC 2865 : Remote Authentication Dial-In User Service (RADIUS)
  • RFC 2866 : RADIUS Accounting
  • RFC 2867 : RADIUS Accounting for Tunneling
  • RFC 2868 : RADIUS Authentication for Tunneling
  • RFC 2869 : RADIUS Extensions
  • RFC 3162 : RADIUS over IP6
  • RFC 2548 : Microsoft Vendor-Specific RADIUS Attributes

Karakteristik

Beberapa karakteristik dari RADIUS adalah sebagai berikut:

  • Berbasis UDP Protocol
  • Bisa ditempatkan dimana saja di internet dan dapat membuat autentikasi (PPP, PAP, CHAP, MS-CHAP, EAP) antara Network Access Server (NAS) dan server itu sendiri
  • RADIUS menggunakan Remote Access Server (RAS) Secure ID untuk membuat autentikasi yang kuat dalam pengontrolan akses

Struktur paket data RADIUS bisa digambarkan sebagai berikut:

Paket Data RADIUS

Code, memiliki panjang satu oktet dan digunakan untuk membedakan tipe pesan RADIUS yang dikirimkan pada paket. Kode-kode tersebut (dalam desimal) antara lain:
1. Access-Request
2. Access-Accept
3. Access-Reject
4. Accounting-Request
5.Accounting-Response
11.Access-Challenge
12. Status-Server
13. Status-Client
255. Reserved

Identifier, Memiliki panjang satu oktet dan bertujuan untuk mencocokkan permintaan.

Length, Memiliki panjang dua oktet, memberikan informasi mengenai panjang paket.

Authenticator, Memiliki panjang 16 oktet, digunakan untuk membuktikan balasan dari RADIUS server, selain itu digunakan juga untuk algoritma password.

Attributes, Berisikan informasi yang dibawa pesan RADIUS. Setiap pesan dapat
membawa satu atau lebih atribut. Contoh atribut RADIUS: nama pengguna, password, CHAP-password, alamat IP access point (AP), pesan balasan.


Cara Kerja

RADIUS menggunakan konsep AAA (Authentication, Authorization, Accounting). Konsep tersebut dapat digambarkan sebagai berikut:

Aliran Data Pada RADIUS
  • Access Reject
    User ditolak aksesnya ke semua sumberdaya dalam jaringan. Penyebabnya bisa termasuk kegagalah untuk menyediakan indentifikasi yang tepat atau nama akun yang salah/tidak aktif
  • Access Challenge
    Permintaan informasi tambahan dari user, seperti password alteernatif, PIN, token atau kartu.
  • Access Accept
    User diberikan akses masuk. Begitu User ter-autentifikasi, server RADIUS akan sering mengecek agar User hanya menggunakan sumberdaya sesuai dengan yang diminta. Misalnya User hanya boleh mengakses fasilitas hotspot, dan tidak untuk menggunakan printer. Informasi tentang User dalam database bisa disimpan secara lokal dalam server RADIUS atau disimpan dalam tempat penyimpanan eksternal seperti LDAP atau Active Directory

Proses Authentication

    Proses autentikasi diperlukan ketika Anda mempunyai kebutuhan untuk membatasi siapa saja yang diperbolehkan masuk ke dalam jaringan remote access milik Anda. Untuk memenuhi kebutuhan tersebut, pengguna yang ingin mengakses sebuah jaringan secara remote harus diidentifikasi terlebih dahulu. Pengguna yang ingin masuk ke dalam jaringan pribadi tersebut perlu diketahui terlebih dahulu sebelum bebas mengakses jaringan tersebut. Pengenalan ini bertujuan untuk mengetahui apakah pengguna tersebut berhak atau tidak untuk mengakses jaringan.
      Analoginya sederhananya adalah seperti rumah Anda. Apabila ada orang yang ingin berkunjung ke rumah Anda, kali pertama yang akan dilakukan oleh pemilik rumahnya adalah mengidentifikasi siapa yang ingin datang dan masuk ke dalamnya. Jika Anda tidak mengenal orang tersebut, bisa saja Anda tolak permintaannya untuk masuk ke rumah Anda. Namun jika sudah dikenal, maka Anda mungkin akan langsung mempersilakannya masuk. Demikian juga dengan apa yang dilakukan oleh perangkat

remote access

    terhadap pengguna yang ingin bergabung ke dalam jaringan di belakangnya.
      Pada umumnya, perangkat remote access telah dilengkapi dengan sebuah daftar yang berisikan siapa-siapa saja yang berhak masuk ke jaringan di belakangnya. Metode yang paling umum digunakan untuk mengenali pengakses jaringan adalah dialog Login dan Password. Metode ini juga didukung oleh banyak komponen lainnya, seperti metode

challenge

      dan

response

      ,

messaging support

    , dan enkripsi, tergantung pada protokol sekuriti apa yang Anda gunakan.

Proses Authorization

    Proses authorization merupakan langkah selanjutnya setelah proses autentikasi berhasil. Ketika pengguna yang ingin mengakses jaringan Anda telah dikenali dan termasuk dalam daftar yang diperbolehkan membuka akses, langkah berikutnya Anda harus memberikan batasan hak-hak apa saja yang akan diterima oleh pengguna tersebut.
    Analogi dari proses ini dapat dimisalkan seperti peraturan-peraturan yang tertempel di dinding-dinding rumah Anda. Isi dari peraturan tersebut biasanya akan membatasi para pengunjung agar mereka tidak dapat dengan bebas berkeliling rumah Anda. Tentu ada bagian yang privasi di rumah Anda, bukan? Misalnya setiap pengunjung rumah Anda tidak diperbolehkan masuk ke ruang kerja Anda. Atau setiap pengunjung harus membuka alas kakinya ketika memasuki ruangan ibadah di rumah Anda. Atau setiap pengunjung hanya diperbolehkan masuk sampai teras rumah.
      Semua itu merupakan peraturan yang dapat dengan bebas Anda buat di rumah Anda. Begitu juga dengan apa yang terjadi pada proses pengamanan jaringan

remote access

      Anda. Perlu sekali adanya batasan untuk para pengguna jaringan remote karena Anda tidak akan pernah tahu siapa yang ingin masuk ke dalam jaringan Anda tersebut, meskipun telah teridentifikasi dengan benar. Bisa saja orang lain yang tidak berhak menggunakan

username

      dan

password

    yang bukan miliknya untuk mendapatkan akses ke jaringan Anda.
      Bagaimana untuk membatasi masing-masing pengguna tersebut? Banyak sekali metode untuk melakukan pembatasan ini, namun yang paling umum digunakan adalah dengan menggunakan seperangkat atribut khusus yang dirangkai-rangkai untuk menghasilkan

policy

      tentang hak-hak apa saja yang dapat dilakukan si pengguna. Atribut-atribut ini kemudian dibandingkan dengan apa yang dicatat di dalam

database

    .
      Setelah dibandingkan dengan informasi yang ada di database, hasilnya akan dikembalikan lagi kepada fasilitas AAA yang berjalan pada perangkat tersebut. Berdasarkan hasil ini, perangkat

remote access

    akan memberikan apa yang menjadi hak dari si pengguna tersebut. Apa saja yang bisa dilakukannya dan apa saja yang dilarang sudah berlaku dalam tahap ini.

Database

      yang berfungsi untuk menampung semua informasi ini dapat dibuat secara lokal di dalam perangkat

remote access

      atau router maupun dalam perangkat khusus yang biasanya disebut dengan istilah server sekuriti. Di dalam server sekuriti ini biasanya tidak hanya informasi profil penggunanya saja yang ditampung, protokol sekuriti juga harus berjalan di sini untuk dapat melayani permintaan informasi profil dari perangkat-perangkat yang berperan sebagai kliennya. Pada perangkat inilah nantinya

attribute-value

    (AV) dari pengguna yang ingin bergabung diterima dan diproses untuk kemudian dikembalikan lagi menjadi sebuah peraturan oleh fasilitas AAA tersebut.
      Metode authorization biasanya dilakukan dalam banyak cara. Bisa dilakukan dengan cara

one-time authorization

      yang memberikan seluruh hak dari si pengguna hanya dengan satu kali proses

authorization

      . Atau bisa juga dilakukan per

service authorization

      yang membuat pengguna harus diotorisasi berkali-kali ketika ingin menggunakan layanan tertentu.

Authorization

      juga bisa dibuat per pengguna berdasarkan daftar yang ada di server sekuriti, atau kalau protokolnya mendukung otorisasi bisa diberlakukan per group pengguna. Selain itu, jika keamanan server memungkinkan, Anda dapat memberlakukan aturan-aturan otorisasi berdasarkan sistem pengalamatan

IP

      ,

IPX

    , dan banyak lagi

Proses Accounting

      Proses accounting dalam layanan koneksi remote access amat sangat penting, apalagi jika Anda membuat jaringan ini untuk kepentingan komersial. Dalam proses accounting ini, perangkat remote access atau server sekuriti akan mengumpulkan informasi seputar berapa lama si pengguna sudah terkoneksi, billing time (waktu start dan waktu stop) yang telah dilaluinya selama pemakaian, sampai berapa besar data yang sudah dilewatkan dalam transaksi komunikasi tersebut. Data dan informasi ini akan berguna sekali untuk pengguna maupun administratornya. Biasanya informasi ini akan digunakan dalam melakukan proses auditing, membuat laporan pemakaian, penganalisisan karakteristik jaringan, pembuatan billing tagihan, dan banyak lagi. Fasilitas accounting pada jaringan remote access umumnya juga memungkinkan Anda untuk melakukan monitoring terhadap layanan apa saja yang digunakan oleh pengguna. Dengan demikian, fasilitas accounting dapat mengetahui seberapa besar

resource

      jaringan yang Anda gunakan. Ketika fasilitas AAA diaktifkan pada sebuah perangkat jaringan

remote access

      , perangkat tersebut akan melaporkan setiap transaksi tersebut ke keamanan server. Tergantung pada protokol sekuriti apa yang Anda gunakan, maka cara melaporkannya pun berbeda-beda. Setiap

record accounting

      akan mempengaruhi nilai-nilai atribut dari proses AAA yang lain seperti authentication dan authorization. Semua informasi yang saling terkait ini kemudian disimpan di dalam

database

      server sekuriti atau jika memang diperlukan, kumpulan informasi ini dapat disimpan di server khusus tersendiri. Biasanya server khusus

billing

      diperlukan jika penggunanya sudah berjumlah sangat banyak. Berikut ini adalah contoh cara kerja RADIUS:

      1. Sebuah Wireless Node (WN) / Supplicant dengan alamat IP 192.168.10.30 dan IP yang telah terdaftar dalam pemfilteran MAC ADDRESS meminta akses ke wireless network atau Access Point (AP).
      2. Access Point (AP) akan menanyakan identitas Supplicant. Tidak ada trafik data selain Client yang diperbolehkan sebelum Supplicant terautentikasi. Dalam hal ini, Access point bukanlah sebuah autentikator, tetapi access point berisi autentikator.

 

      1. Setelah nama-pengguna dan password dikirim, proses autentikasi dimulai. Autentikator mengenkapsulasi kembali pesan ke dalam format RADIUS, dan mengirimnya ke RADIUS server. Selama proses autentikasi, autentikator hanya menyampaikan paket antara Supplicant dan RADIUS server. Setelah proses autentikasi selesai, RADIUS server mengirimkan pesan sukses (atau gagal, apabila proses autentikasinya gagal.) Apabila proses autentikasi sukses, Supplicant diperbolehkan untuk mengakses wireless LAN dan/atau internet.

 

    1. Jika nama Supplicant tidak terautentifikasi, maka radius server akan mengirim pesan gagal. Dan proses authentifikasi tidak berjalan atau gagal.

Contoh Implementasi

RADIUS umumnya digunakan oleh ISP (Internet Service Provider) atau penyedia layanan internet untuk melakukan Authentication (pembuktian keaslian pengguna), Authorize (mengatur pemberian hak/otoritas) dan Accounting (mencatat penggunaan layanan yang digunakan).

RADIUS menjalankan sistem administrasi pengguna yang terpusat. Sistem ini akan mempermudah tugas administrator. Dapat kita bayangkan berapa banyak jumlah pelanggan yang dimiliki oleh sebuah ISP, dan ditambah lagi dengan penambahan pelanggan baru dan penghapusan pelanggan yang sudah tidak berlangganan lagi.

Apabila tidak ada suatu sistem administrasi yang terpusat, maka akan merepotkan administrator dan tidak menutup kemungkinan ISP akan merugi atau pendapatannya berkurang.

Dengan sistem ini pengguna dapat menggunakan hotspot di tempat yang berbeda-beda dengan melakukan autentikasi ke sebuah RADIUS server.

KONFIGURASI

Instalasi freeradius
sudo apt-get install mysql-server
sudo apt-get install freeradius freeradius-mysql

konfigurasi radius
sudo nano /etc/freeradius/radiusd.conf
pada baris
proxy_requests = yes
$INCLUDE proxy.conf

Ganti
proxy_requests = no
$INCLUDE proxy.conf

Pengaturan SQL pada freeradius
sudo nano /etc/freeradius/sql.conf
pada baris
# Connection info:
server = “localhost”
login = “radius”
password = “radpass”
ganti dengan
# Connection info:
server = “localhost”
login = “root”
password = “passwordrootmysql”
uncomment
#readclients = yes
Menjadi
readclients = yes
pada versi freeradius 2.x.x
sudo nano /etc/freeradius/sites-enabled/default
uncomment
authorize{
accounting{
session{
post-auth{
pengaturan client
sudo nano /etc/freeradius/clients.conf

client localhost {
ipaddr = 127.0.0.1
secret = testing123
require_message_authenticator = no
nastype = other
}

Import skema mysql database
mysql -u root -p radius < /etc/freeradius/sql/mysql/schema.sql
Enter password:

Untuk memeriksa apakah import berhasil bisa dicek dengan cara:
mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 46
Server version: 5.1.37-1ubuntu5 (Ubuntu)
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
mysql> show databases;
+——————–+
| Database |
+——————–+
| information_schema |
| mysql |
| radius |
+——————–+
3 rows in set (0.00 sec)
mysql> use radius;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show tables;
+——————+
| Tables_in_radius |
+——————+
| radacct |
| radcheck |
| radgroupcheck |
| radgroupreply |
| radpostauth |
| radreply |
| radusergroup |
+——————+
7 rows in set (0.00 sec)
mysql> quit
Bye

Memasukkan username dan password:
mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 48
Server version: 5.1.37-1ubuntu5 (Ubuntu)
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
mysql> use radius
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> insert into radcheck
-> (id, username, attribute, op, value)
-> values
-> (”1″, “sri”, “User-Password”, “:=”, “dharmayanti”);
Query OK, 1 row affected (0.00 sec)
mysql> select * from radcheck;
+—-+———-+—————+—-+——-+
| id | username | attribute | op | value |
+—-+———-+—————+—-+——-+
| 1 | sri | User-Password | := | dharmayanti |
+—-+———-+—————+—-+——-+
1 row in set (0.00 sec)
mysql> quit
Bye

Kemudian menguji freeradius
radtest sri dharmayanti 127.0.0.1 1812 testing123
konfigurasi proxy server
install proxy server, proxy yang digunakan adalah squid di linux
apt-get install squid
edit file squid.conf
sudo gedit /etc/squid/squid.conf

menggabungkan radius dan proxy
# tar -zxvf squid_radius_auth-1.10.tar.gz
# cd squid_radius_auth-1.10/
# make
Konfigurasi di file /etc/squid/squid.conf
auth_param basic program /path_to_auth/squid_radius_auth
auth_param basic children 5
auth_param basic realm Please enter your domain credentials
auth_param basic credentialsttl 8 hours
auth_param basic program /usr/local/squid/libexec/squid_radius_auth -f /etc/radius_config
auth_param basic children 5
auth_param basic realm Web-Proxy
auth_param basic credentialsttl 5 minute
auth_param basic casesensitive off

acl radius-auth proxy_auth REQUIRED
http_access allow radius-auth
http_access allow localhost
http_access deny all

2 thoughts on “Pengertian, Cara Kerja dan Konfigurasi Remote Access Dial-In User Service (RADIUS)”

  1. Hallo Pak, Salam Kenal,

    Ulasan yang sangat menarik dan mudah untuk dipahami,
    Saya sedang membuat penelitian untuk tesis, dengan memanfaatkan RADIUS (freeradius) dengan menambhkan metode yang berbeda, yaitu dengan generate sebuah Token-ID dari session accept-requust. yang tujuannya adalah : jika user masih belum expired waktunya (30 menit) maka user tidak perlu melakukan re-authentication,(Login ke RADIUS) tetapi bila lewat dari 30 menit maka user harus login dari awal, dan akan mendapatkkan Token-ID baru.

    Dimana saya harus meletakan (embed) proses Generate Token ID, terima kasih sebelumnya

    Salam

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s