Kehandalan dan skalabilitas Layanan Pengguna Dial-In Remote Authentication (RADIUS)

DIPOSTING PADA 3 Oktober 2017

Pengantar

RADIUS or Layanan Pengguna Dial-In Otentikasi Jauh adalah protokol jaringan yang menyediakan Otentikasi, Otorisasi dan Akuntansi pengguna dan perangkat manajemen terpusat. Ini banyak digunakan oleh Penyedia Layanan Internet dan perusahaan untuk mengontrol akses ke Internet, layanan lokal, jaringan nirkabel melalui titik akses WiFi, dll.

Protokol RADIUS diimplementasikan dalam lapisan aplikasi dengan arsitektur client-server yang dapat menggunakan TCP atau UDP sebagai lapisan transport dan dikomunikasikan dengan basis data pengguna seperti Active Directory, Layanan LDAP or Sistem akuntansi Linux. Solusi RADIUS paling populer adalah FreeRadius atau Microsoft NPS Radius Server.

Protokol Pesan RADIUS

Pesan protokol didasarkan pada permintaan klien dan cara respons server seperti yang ditunjukkan di bawah ini.

1. Klien mengirimkan Permintaan akses ke server untuk setiap pengguna atau perangkat yang akan diautentikasi ke port server TCP / UDP 1812 (versi server yang lebih lama akan digunakan 1645 untuk otentikasi juga).
2. Server membalas sesuai dengan kebijakan Akses-Terima jika otentikasi diizinkan, Akses-Tolak jika akses tidak diizinkan atau Akses-Tantangan jika server memerlukan lebih banyak informasi untuk menentukan akses (seperti validasi kedua: PIN, kata sandi, sertifikat, dll.)

Secara opsional, klien dan server dapat bertukar pesan seperti akuntansi Permintaan Akuntansi serta Akuntansi-Respon untuk mempertahankan pengidentifikasi sesi unik.

3. Klien mengirimkan Permintaan Akuntansi ke server melalui port TCP / UDP 1813 untuk manajemen sesi akuntansi (versi server yang lebih lama akan digunakan 1646 untuk otentikasi juga).
4. Balasan server dengan a Akuntansi-Respon pesan untuk mengkonfirmasi sesi baru.

Dalam lingkungan RADIUS, layanan tambahan untuk manajemen basis data pengguna akan diperlukan dan penting untuk dipertimbangkan dalam ketersediaan tinggi, yang akan diperlakukan dalam artikel spesifik lainnya.

Perimbangan beban RADIUS dan lingkungan ketersediaan tinggi

Masalah jika layanan RADIUS sedang down dapat menghasilkan risiko pengguna tidak dapat mengakses ke jaringan server, atau masuk ke aplikasi, pengguna tidak dapat membuka sesi ke perangkat atau tidak dapat memperoleh otorisasi untuk menggunakan hak dalam proses bisnis. Untuk mengatasi situasi semacam itu, tujuan artikel ini adalah menyiapkan lingkungan yang ditunjukkan di bawah ini.

Zevenet akan membagikan pesan protokol RADIUS di antara semua server RADIUS, baik itu di situs yang berbeda atau lokal. Di bagian berikut kami menjelaskan konfigurasi lingkungan semacam ini, health check lanjutan untuk layanan RADIUS dan tantangan keamanan dari protokol ini.

Konfigurasi Layanan Virtual RADIUS

Sifat protokol RADIUS didasarkan pada paket UDP, sehingga konfigurasi lingkungan RADIUS yang andal dibangun dengan a LSLB bertani dengan L4xNAT profil pada layer 4, port 1812 serta 1813, tipe protokol UDP dan lebih disukai DNAT untuk memiliki transparansi dan mendapatkan IP klien di sisi backend (walaupun NAT harus bekerja dengan baik juga).

Dalam majalah Layanan, tidak ada kegigihan yang diperlukan secara default kecuali beberapa kekakuan antara server klien-radius diperlukan.

Jika RADIUS digunakan melalui TCP bukan UDP, itu bisa diubah di bidang tipe protokol. Itu bisa diatur juga SEMUA protokol untuk memungkinkan TCP dan UDP pada saat yang sama dari IP virtual yang sama.

Terakhir, konfigurasikan backend tanpa port yang dikonfigurasi (karena ini akan menggunakan port tujuan dari koneksi klien) dan uji koneksi. Setelah layanan virtual RADIUS berhasil dikonfigurasi, kita dapat mengatur pemeriksaan kesehatan lanjutan untuk layanan ini.

Konfigurasi Pemeriksaan Kesehatan Lanjut RADIUS

Pemeriksaan lanjutan disertakan dalam Zevenet dengan nama check_radius di bawah folder default / usr / local / zenloadbalancer / app / libexec /.

Bantuan perintah ini dapat dicantumkan:

root@zevenet5# /usr/local/zenloadbalancer/app/libexec/check_radius --help
Tests to see if a RADIUS server is accepting connections.

Usage:
check_radius -H host -F config_file -u username -p password
			[-P port] [-t timeout] [-r retries] [-e expect]
			[-n nas-id] [-N nas-ip-addr]

Options:
 -h, --help
    Print detailed help screen
 -V, --version
    Print version information
 --extra-opts=[section][@file]
    Read options from an ini file. See
    https://www.monitoring-plugins.org/doc/extra-opts.html
    for usage and examples.
 -H, --hostname=ADDRESS
    Host name, IP Address, or unix socket (must be an absolute path)
 -P, --port=INTEGER
    Port number (default: 1645)
 -u, --username=STRING
    The user to authenticate
 -p, --password=STRING
    Password for autentication (SECURITY RISK)
 -n, --nas-id=STRING
    NAS identifier
 -N, --nas-ip-address=STRING
    NAS IP Address
 -F, --filename=STRING
    Configuration file
 -e, --expect=STRING
    Response string to expect from the server
 -r, --retries=INTEGER
    Number of times to retry a failed connection
 -t, --timeout=INTEGER
    Seconds before connection times out (default: 10)

This plugin tests a RADIUS server to see if it is accepting connections.
The server to test must be specified in the invocation, as well as a user
name and password. A configuration file may also be present. The format of
the configuration file is described in the radiusclient library sources.
The password option presents a substantial security issue because the
password can possibly be determined by careful watching of the command line
in a process listing. This risk is exacerbated because the plugin will
typically be executed at regular predictable intervals. Please be sure that
the password used does not allow access to sensitive system resources.

Pertama, mari kita periksa apakah itu berfungsi dengan baik dengan menjalankan perintah contoh berikut (harap gunakan parameter konfigurasi klien radius Anda sendiri dari Zevenet):

root@zevenet5# cd /usr/local/zenloadbalancer/app/libexec/
root@zevenet5# ./check_radius -H <RADIUS_SERVER_IP> -P <RADIUS_SERVER_PORT> -u <DUMMY_USER_NAME> -p <DUMMY_USER_PASSWD> -F <RADIUS_CLIENT_CONFIG_FILE>

Pengujian akan dilakukan dari perangkat Zevenet ke satu server RADIUS tertentu dengan validasi pengguna tiruan dan, secara opsional, file konfigurasi klien untuk parameter klien tertentu. Mari kita uji perintahnya, dan kemudian, saat kita mendapatkan OK dari server dan KEGAGALAN saat tidak berfungsi, kita dapat mengonfigurasi pemeriksaan kesehatan lanjutan di Layanan bagian dari layanan virtual kami yang baru dibuat.

Jangan lupa untuk menggunakan HOST token ketika mengkonfigurasi pemeriksaan kesehatan lanjutan di Zevenet seperti di bawah ini.

check_radius -H HOST -P 1812 -u johndoe -p johnspass -F /etc/radius_client.cfg

Lihat di bawah Layanan konfigurasi bagian.

Opsi Keamanan RADIUS

Protokol RADIUS secara tradisional menggunakan algoritma MD5 untuk otentikasi per paket dan pemeriksaan integritas melalui UDP. Karena keduanya tidak memberikan enkripsi dan perlindungan keamanan, beberapa pendekatan telah dipelajari.

Penyebaran RADIUS berakhir IPsec or Keamanan Protokol Internet telah digunakan secara luas tetapi ada beberapa kesulitan dari opsi ini karena lapisan aplikasi tidak mengetahui kebijakan keamanan, karena tersirat dalam lapisan jaringan. Untuk menggunakan pendekatan ini dengan Zevenet diperlukan beberapa konfigurasi manual karena belum terintegrasi.

Spesifikasi dari DTLS or Datagram Transport Layer Security memungkinkan untuk menyediakan enkripsi, memantau dan mengendalikan kebijakan keamanan lalu lintas tersebut.

Pilihan lain adalah RADIUS selesai TLS yang menyediakan kemampuan keandalan dan lapisan transport TCP.

Untuk pendekatan semacam ini, the IANA telah membuat entri resmi untuk RadSec (Keamanan RADIUS) untuk menggunakan UDP 2083 port untuk RADIUS / TLS implementasi.

Pilihan lain adalah meningkatkan lapisan intisari dan otorisasi EAP (Protokol Otentikasi yang Diperluas) yang tidak digunakan dalam lapisan pembuatan tautan tetapi selama fase otentikasi koneksi, menghindari penggunaan MD5 yang lemah.

Selain itu, dengan Zevenet, layanan RADIUS dapat dilindungi dengan modul IPDS terhadap paket dan host jahat, serangan DoS, upaya brute force, dan banyak lagi.

Kemampuan Proxy RADIUS

Jika beberapa server RADIUS digunakan di berbagai situs, akan menarik untuk meneruskan koneksi klien ke situs yang mengelola data otentikasi, otorisasi, dan akunting mereka. Saat ini, Zevenet tidak mendukung kemampuan proxy RADIUS tetapi direncanakan akan segera disertakan. Nantikan perkembangan terbaru!

Nikmati layanan pengaksesan jaringan yang tersedia dan terukur tinggi Anda!

Bagikan ke:

Dokumentasi di bawah ketentuan Lisensi Dokumentasi Bebas GNU.

Apakah artikel ini berguna?

Artikel terkait