RADIUS

Photo by Patrick Robert Doyle / Unsplash

Giriş

Bu doküman ile, bir radius sunucu ve yönetim panelinin kurulumu ve uygulama alanları hakkında detaylı bilgiler verilmektedir.

Radius


FreeRADIUS, ağ erişim kontrolü, kimlik doğrulama ve yetkilendirme gibi konularda geniş bir yelpazede kullanım alanına sahip güçlü bir açık kaynaklı RADIUS sunucusudur. Ağında kimlik doğrulama ve yetkilendirmeyi merkezi olarak yönetmek isteyen organizasyonlar için ideal bir çözüm sunar.

Bazı önemli kullanım alanları şunlardır:

  • Kablosuz Ağ Erişim Kontrolü: FreeRADIUS, 802.1X gibi standartlar aracılığıyla kablosuz ağlara erişimi kontrol eder. Bu sayede, yalnızca yetkili kullanıcıların ağa erişmesini sağlayabilir ve yetkisiz erişimi engeller.
  • VPN Erişim Kontrolü: FreeRADIUS, VPN bağlantıları için kimlik doğrulama ve yetkilendirme sağlar. Bu sayede, yalnızca yetkili kullanıcıların VPN'e erişmesini sağlayabilir ve kurumsal verilerini korur.
  • Uygulama Yetkilendirme: FreeRADIUS, web uygulamalarına, sunuculara ve diğer kaynaklara erişimi kontrol eder. Bu sayede, yalnızca yetkili kullanıcıların belirli kaynaklara erişmesini sağlayabilir ve veri güvenliğini korur.
  • Hesap Yönetimi: FreeRADIUS, kullanıcı hesaplarını yönetir. Bu sayede, kullanıcı adları, parolalar, yetkiler ve diğer bilgileri merkezi olarak yönetir.
  • Oturum Yönetimi: FreeRADIUS, kullanıcı oturumlarını yönetir. Bu sayede, oturum sürelerini sınırlayabilir, oturumları otomatik olarak sonlandırabilir ve oturum etkinliğini izleyebilir.

FreeRADIUS, esnekliği ve geniş özellik yelpazesi ile farklı sektörlerde ve kuruluşlarda yaygın olarak kullanılır. Eğitim, sağlık, kamu hizmetleri, finans ve perakende gibi sektörlerde ağ erişim kontrolü, kimlik doğrulama ve yetkilendirme gibi konularda tercih edilen bir çözümdür.

FreeRADIUS'un Kullanım Avantajları:

  • Açık Kaynak Kodlu: FreeRADIUS ücretsiz ve açık kaynaklı bir yazılımdır. Bu sayede, lisans ücreti ödemeden kullanabilir, kaynak kodu incelenebilir ve ihtiyaçlara göre özelleştirilebilir.
  • Esneklik: FreeRADIUS, çok çeşitli kimlik doğrulama ve yetkilendirme yöntemlerini destekler. Bu sayede, farklı ağ ortamları ve kullanıcı gereksinimleri için kullanılabilir.
  • Güvenlik: FreeRADIUS, RADIUS protokolü ve diğer güvenlik standartlarını destekleyerek ağı ve verileri korur.
  • Ölçeklenebilirlik: FreeRADIUS, küçük ve orta ölçekli ağlardan büyük ve karmaşık ağlara kadar her ölçekte kullanılabilir.
  • Kolay Kullanım: FreeRADIUS, kullanımı ve yönetimi kolay bir yazılımdır. Web arayüzü ve komut satırı araçları ile kolayca yönetilebilir.

FreeRADIUS, ağ erişim kontrolü, kimlik doğrulama ve yetkilendirme gibi konularda güçlü ve güvenilir bir çözüm arayan kuruluşlar için ideal bir seçimdir.

Daloradius

Daloradius, FreeRADIUS sunucusuna web tabanlı bir yönetim arayüzü sunan açık kaynaklı bir yazılımdır. Ağınızdaki kimlik doğrulama ve yetkilendirmeyi merkezi olarak yönetmeyi kolaylaştırır ve kullanımı oldukça kolaydır.

Daloradius'un Kullanım Avantajları:

  • Kolay Kullanım: Daloradius, web tabanlı bir arayüze sahip olduğu için kullanımı oldukça kolaydır. Karmaşık komut satırı araçlarını kullanmadan RADIUS sunucusu ve ayarları kolayca yönetilebilir.
  • Zengin Özellikler: Daloradius, kullanıcı yönetimi, grup yönetimi, yetkilendirme profilleri, raporlama ve daha fazlası dahil olmak üzere geniş bir yelpazede özellik sunar.
  • Görsel Raporlama: Daloradius, ağdaki kimlik doğrulama ve yetkilendirme faaliyetleri hakkında görsel raporlar sunar. Bu sayede, ağın güvenliği ve performansı kolayca takip edilebilir.
  • Otomasyon: Daloradius, tekrarlayan görevleri otomatikleştirilmesini sağlayan scripting yeteneğine sahiptir. Bu sayede, zamandan tasarruf edilebilir ve hata riski azaltılabilir.
  • Güvenlik: Daloradius, RADIUS protokolü ve diğer güvenlik standartlarını destekleyerek ağı ve verileri korur.
  • Esneklik: Daloradius, FreeRADIUS ile uyumlu olduğu için farklı ağ ortamları ve kimlik doğrulama yöntemleri ile kullanılabilir.

Daloradius'un Kullanım Alanları:

  • Kablosuz Ağ Erişim Kontrolü: Daloradius, 802.1X gibi standartlar aracılığıyla kablosuz ağlara erişimi kontrol etmek için kullanılabilir.
  • VPN Erişim Kontrolü: Daloradius, VPN bağlantıları için kimlik doğrulama ve yetkilendirme sağlamak için kullanılabilir.
  • Uygulama Yetkilendirme: Daloradius, web uygulamalarına, sunuculara ve diğer kaynaklara erişimi kontrol etmek için kullanılabilir.
  • Hesap Yönetimi: Daloradius, kullanıcı hesaplarını yönetmek için kullanılabilir.
  • Oturum Yönetimi: Daloradius, kullanıcı oturumlarını yönetmek için kullanılabilir.

Daloradius, ağındaki kimlik doğrulama ve yetkilendirmeyi kolaylaştırmak ve merkezi olarak yönetmek isteyen kuruluşlar için ideal bir çözümdür. Kullanıcı dostu arayüzü, zengin özellikleri ve esnekliği ile her ölçekteki ağda kullanılabilir.

Kurulum

Bu belge, FreeRADIUS hizmeti ve ilgili yönetim modülü Daloradius'u, Debian'ın en son sürümü olan "Bookworm" kod adlı sürümüne kurulum sürecini açıklamaktadır. Aşağıdaki bölümler, güvenli ve işlevsel bir RADIUS kimlik doğrulama sunucusu ortamı oluşturmak için gerekli sistem bileşenlerinin yapılandırılmasını detaylandırmaktadır.

İşletim sisteminin hazırlanması

$ sudo apt -y update

Her şeyden önce, güvenlik duvarı hizmetinin kurulması ve yalnızca gerekli portların bağlantıya izin vermesi sağlanmalıdır. Bunu yapmak için aşağıdaki komutlar kullanılabilir;

$ sudo apt install ufw
$ sudo ufw allow ssh
$ sudo ufw allow "WWW Full"
$ sudo ufw allow radius/tcp
$ sudo ufw allow radius/udp
$ sudo ufw allow radius-acct/tcp
$ sudo ufw allow radius-acct/udp
$ sudo ufw enable

Daha güçlü bir güvenlik duvarı elde etmek istenirse, sistemde yönetim hizmetleri (ssh ve web) ve RADIUS hizmetleri ayırrılabilir ve farklı kurallar oluşturulabilir. Bu, yönetim trafiğini RADIUS trafiğinden ayırır ve saldırganların potansiyel olarak bir hizmete erişerek diğerine sıçrama yapmasını zorlaştırır.

Gerekli servislerin kurulması

MariaDB Sunucusu

RADIUS hizmetine veritabanı hizmeti sağlamak için MariaDB kullanılacaktır. MariaDB'yi apt komutu ile kurmak için öncelikle aşağıdaki komut ile apt kaynaklarına MariaDB deposunun eklenmesi gerekmektedir;

$ curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s --

Şimdi, gerekli MariaDB paketleri depodan kurulabilir;

$ sudo apt install mariadb-server mariadb-client

MariaDB sunucu örneğini güvence altına almak için şu komut kullanılabilir;

$ sudo mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.

Enter current password for root (enter for none):

Bu yeni kurulumda root kullanıcı için bir parola bulunmuyor. Devam etmek için sadece Enter'a basılmalıdır. Ancak güvenlik açısından önemli bir adım olarak Unix soket kimlik doğrulaması etkinleştirilmelidir;


OK, successfully used password, moving on...

Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.

You already have your root account protected, so you can safely answer 'n'.

Switch to unix_socket authentication [Y/n] Y

Her ne kadar gerekmese de MariaDB sunucusunda root kullanıcı için bir parola belirlenmelidir. Bu parola sonraki dönemlerde gerekli olabilir.

You already have your root account protected, so you can safely answer 'n'.

Change the root password? [Y/n] Y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!

MariaDB ilk yüklemesi anonim bir kullanıcı sağlar. Bu kullanıcı sistemden kaldırılmalıdır.



By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] Y
 ... Success!

Ağdan yapılacak oturum açma girişimlerinde root kullanıcının bloklanması iyi bir alışkanlık olacaktır;

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] Y
 ... Success!

Test veritabanının silinmesi iyi bir pratik olarak mutlaka önerilir;

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] Y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Son olarak, çalışan örnekteki yetki tablosu yeniden yüklenmelidir;

Reload privilege tables now? [Y/n] Y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Bu aşamada MariaDB sunucusunun kurulumu tamamlandı.

Apache & PHP

Bu paketler, aşağıdaki komutlar kullanılarak kurulabilir;

$ sudo apt -y install apache2
$ sudo apt -y install php libapache2-mod-php php-{gd,common,mail,mail-mime,mysql,pear,mbstring,xml,curl}
$ sudo systemctl enable apache2

Freeradius

Freeradius paketini kurmak için aşağıdaki komut kullanılabilir;

$ sudo apt -y install vi freeradius freeradius-mysql freeradius-utils

Aşağıdaki komut ile bu hizmetin başlangıçta çalışacak şekilde ayarlanması yeterli olacaktır;

$ sudo systemctl enable --now freeradius.service 

Daloradius

Bu paketi kurmak için git aracına ihtiyaç vardır, ancak bu araç Debian'ın temel kurulumunda bulunmamaktadır. Kurulum için aşağıdaki komut yeterli olacaktır;

$ sudo apt -y install git

GitHub'dan daloradius adlı yazılımın kaynak kodu aşağıdaki komutla klonlanabilir;

$ git clone https://github.com/lirantal/daloradius.git

Web sunucusunun barındırabileceği konuma daloradius dosyaları aşağıdaki komutla taşınabilir;

# sudo mv daloradius /var/www/

Örnek konfigürasyon dosyası kopyalayarak,gerçek konfigürasyon dosyası olarak kullanılacak şekilde adlandırılmalıdır;

cd /var/www/daloradius/app/common/includes/
$ sudo cp daloradius.conf.php.sample daloradius.conf.php
$ sudo chown www-data:www-data daloradius.conf.php

Apache2 web sunucusunun dosyalara erişim yetkileri aşağıdaki komutlarla ayarlanabilir;

cd /var/www/daloradius/
$ sudo mkdir -p var/{log,backup}
$ sudo chown -R www-data:www-data var

Yapılandırma

Bu bölümde tüm hizmetlerin konfigürasyonu anlatılmıştır. İlk olarak, ana veritabanının oluşturulması ve RADIUS sunucusunun çalışması için gerekli olan yapılandırmanın veritabanına uygulanması gerekmektedir. Veritabanı adı, kullanıcısı ve parolası kuruluma özel olarak değiştirilmeli ve takip eden bölümlerde atıf yapıldığında burada belirlenen değerler kullanılmalıdır.

Veritabanının oluşturulması

$ sudo mariadb -u root -p

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 45
Server version: 10.11.6-MariaDB-0+deb12u1 Debian 12

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> CREATE DATABASE radius CHARACTER SET utf8 COLLATE utf8_general_ci;
MariaDB [(none)]> GRANT ALL ON radius.* TO radius@localhost IDENTIFIED BY "Password.!";
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> \q

Freeradius

Aşağıdaki komut ile radius sunucusunun çalışması için gerekli şema, veritabanına uygulanmalıdır;

$ sudo su -
# mariadb -u root -p radius < /etc/freeradius/*/mods-config/sql/main/mysql/schema.sql

DB Yükseltme:

Eğer FreeRADIUS veritabanınızı yeni bir sürüme yükseltiyorsanız, aktarılan veritabanında bazı değişiklikler yapmanız gerekebilir. Bu doküman için yapılan çalışmada, eski veritabanında aşağıdaki değişikliklerin uygulaması yeterli sonucun alınmasını sağlamıştır;

MariaDB [radius]> alter table radacct add framedipv6address varchar(45) NOT NULL default '',framedipv6prefix varchar(45) NOT NULL default '';
MariaDB [radius]> alter table radacct add framedipv6address varchar(45) NOT NULL default '';
MariaDB [radius]>  alter table radacct add framedipv6prefix varchar(45) NOT NULL default '';
MariaDB [radius]>  alter table radacct add framedinterfaceid varchar(44) NOT NULL default '';
MariaDB [radius]> alter table radacct add delegatedipv6prefix varchar(45) NOT NULL default '';
MariaDB [radius]>  alter table radacct add class varchar(64) default NULL;
MariaDB [radius]> alter table radacct add KEY framedipv6address (framedipv6address);
MariaDB [radius]> alter table radacct add KEY framedipv6prefix (framedipv6prefix);
MariaDB [radius]>  alter table radacct add KEY framedinterfaceid (framedinterfaceid);
MariaDB [radius]> alter table radacct add KEY delegatedipv6prefix (delegatedipv6prefix);
MariaDB [radius]>  alter table radacct modify column nasportid varchar(32) default NULL;

FreeRADIUS'un SQL konfigürasyon modülünü etkinleştirmek için, kullanılabilir modüller dizini ile etkinleştirilmiş modüller dizini arasında sembolik bir bağlantı oluşturulması gerekir. Bu bağlantı, FreeRADIUS'un SQL veritabanı ile iletişim kurmasını sağlar;

$ sudo ln -s /etc/freeradius/*/mods-available/sql /etc/freeradius/*/mods-enabled/

Bu dosyadaki aşağıdaki kısımların ve değişkenlerin düzenlenmesi gerekir. Elbette parola ve kullanıcı kodu alanları kuruluma özel olarak düzenlenmelidir;

$ sudo vim /etc/freeradius/*/mods-enabled/sql

sql {
driver = "rlm_sql_mysql"
dialect = "mysql"

# Connection info:

server = "localhost"
port = 3306
login = "radius"
password = "Password.!"

# Database table configuration for everything except Oracle

radius_db = "radius"
}

# Set to ‘yes’ to read radius clients from the database (‘nas’ table)
# Clients will ONLY be read on server startup.
read_clients = yes

# Table to keep radius client info
client_table = "nas"

Aynı dosyada, güvenlik açısından önemli olabileceği için MySQL sunucusuna olan SSL bağlantısının devre dışı bırakılması istenmeyebilir. Ancak bu örnekte yerel olarak bağlanıldığı için bunu devre dışı bırakılmıştır. Bunun için aşağıdaki alanların açıklama haline getirilmesi gereklidir;

mysql {
                # If any of the files below are set, TLS encryption is enabled
#               tls {
#                       ca_file = "/etc/ssl/certs/my_ca.crt"
#                       ca_path = "/etc/ssl/certs/"
#                       certificate_file = "/etc/ssl/certs/private/client.crt"
#                       private_key_file = "/etc/ssl/certs/private/client.key"
#                       cipher = "DHE-RSA-AES256-SHA:AES128-SHA"
#
#                       tls_required = no
#                       tls_check_cert = no
#                       tls_check_cert_cn = no
#               }

                # If yes, (or auto and libmysqlclient reports warnings are
                # available), will retrieve and log additional warnings from
                # the server if an error has occured. Defaults to 'auto'
                warnings = auto
        }

Dosyaya erişim izinlerinin doğru ayarlandığından emin olmak için aşağıdaki komutlar çalıştırılmalıdır;

$ sudo chgrp -h freerad /etc/freeradius/*/mods-available/sql
$ sudo chown -R freerad:freerad /etc/freeradius/*/mods-enabled/sql

Son olarak, yeni yapılandırmanın etkili olması için FreeRADIUS sunucusu yeniden başlatılmalıdır;

$ sudo systemctl restart freeradius

Daloradius

Daloradius yazılımı için gerekli olan veritabanı şeması, radius veritabanına aşağıdaki komutlarla uygulanmalıdır;

$ sudo su -
# mariadb -u root -p radius < daloradius/contrib/db/fr2-mysql-daloradius-and-freeradius.sql
# mariadb -u root -p radius < daloradius/contrib/db/mysql-daloradius.sql

Aşağıdaki kısımların ve değişkenlerin düzenlenmesi gerekir. Elbette parola ve kullanıcı kodu alanları kuruluma özel olarak freeradius bölümünde belirtilen değerlerle değiştirilmelidir;

$ sudo vi daloradius.conf.php

$configValues['CONFIG_DB_HOST'] = 'localhost';
$configValues['CONFIG_DB_PORT'] = '3306';
$configValues['CONFIG_DB_USER'] = 'radius';
$configValues['CONFIG_DB_PASS'] = 'Password.!';
$configValues['CONFIG_DB_NAME'] = 'radius';

Apache

Dolayısıyla, http ve https bağlantıları için kullanılan portların yanında 8000 portunun da daloradius yönetim arayüzünü çalıştırmak için apache2 içinde etkinleştirilmesi yeterli olacaktır. Operatör ve kullanıcı portallarının birbirinden ayrılması için bu iyi bir pratik olacaktır;

$ sudo tee /etc/apache2/ports.conf<<EOF
Listen 80
Listen 8000

<IfModule ssl_module>
    Listen 443
</IfModule>

<IfModule mod_gnutls.c>
    Listen 443
</IfModule>
EOF

Daloradius'un operatör arayüzüne erişmek için gereken sanal ana bilgisayar ayarlarının apache web sunucusu konfigürasyon dosyalarında bulunması gerekir;

$ sudo tee /etc/apache2/sites-available/operators.conf<<EOF
<VirtualHost *:8000>
    ServerAdmin operators@localhost
    DocumentRoot /var/www/daloradius/app/operators

    <Directory /var/www/daloradius/app/operators>
        Options -Indexes +FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>

    <Directory /var/www/daloradius>
        Require all denied
    </Directory>

    ErrorLog \${APACHE_LOG_DIR}/daloradius/operators/error.log
    CustomLog \${APACHE_LOG_DIR}/daloradius/operators/access.log combined
</VirtualHost>
EOF

Kullanıcılar için bir bilgi sayfası oluşturulabilir ancak bu doküman içinde bu uygulanmamıştır. Bunun sebebi, temel alınan uygulamada kullanıcıların RADIUS hesap kayıtlarını görüntülemeye ihtiyaç duymamasıdır. Yine de, bu amaç için şu site kullanılabilir;

$ sudo tee /etc/apache2/sites-available/users.conf<<EOF
<VirtualHost *:80>
    ServerAdmin users@localhost
    DocumentRoot /var/www/daloradius/app/users

    <Directory /var/www/daloradius/app/users>
        Options -Indexes +FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>

    <Directory /var/www/daloradius>
        Require all denied
    </Directory>

    ErrorLog \${APACHE_LOG_DIR}/daloradius/users/error.log
    CustomLog \${APACHE_LOG_DIR}/daloradius/users/access.log combined
</VirtualHost>
EOF

Oluşturulan operatör ve kullanıcı uygulamaları apache içinde etkinleştirilmelidir. Bunun için aşağıdaki komutlar kullanılabilir;

$ sudo a2ensite users.conf operators.conf

Her iki uygulama için log klasörleri aşağıdaki komutla oluşturulabilir;

$ sudo mkdir -p /var/log/apache2/daloradius/{operators,users}

apache2 kurulumu ile gelen ön tanımlı site, aşağıdaki komutla devre dışı bırakılabilir;

$ sudo a2dissite 000-default.conf

Son yapılandırmanın etkin olması için apache sunucusu aşağıdaki komutla yeniden başlatılabilir;

$ sudo systemctl restart apache2

Daloradius iki tane pear modülüne ihtiyaç duyar. Bu modüller de aşağıdaki komutla kurulabilir;

$ sudo pear install DB
$ sudo pear install MDB2

Son

Kurulum bu aşamada sona ermiş durumda. Daloradius arayüzüne ulaşarak kullanım amacına göre yapılandırma için her şey hazır.


https://computingforgeeks.com/install-freeradius-and-daloradius-on-debian/ sayfası, bu doküman içinde anlatılanlar ile ilgili kaynak olarak kullanılmıştır.

Dogan ZORLU

Dogan ZORLU