FreeRadius 3.1 ve Eduroam Kurulumu

Merhaba

Bu makalemizde ülkemizde ve dünyada kullanılan Eduroam kurulumunu anlatacağım.
Maalesef konu hakkında yeterince kaynak yok ve olanlarda günün (2020) şartlarına uygun değil.

Önce teşekkürle başlamak istiyorum;Teknoloji konusunda her zaman yardımcı olan,karşılaştığım sorunlar konusunda bize yol gösteren destek veren Değerli büyüğüm,Abim FATİH TUNCEZ‘e ve Ülkemizdeki Eduroam kurulumu hakkında tek kaynağı hazırlayan (2009 şartlarına göre)Gökhan ERYOL ‘a teşekkür ederim.

Makale 2 bölümden oluşmaktadır.İlk bölümde sıfırdan Ubuntu 20.04 üzerine FreeRadius,mysql ve open source yazılım olan DolaRadius kurulumu yapılacaktır.İkinci Bölümde ise Eduroam için gerekli konfigurasyonlar yapılacaktır.

1)UBUNTU 20.04 Üzerine FreeRadius Kurulumu(https://computingforgeeks.com/how-to-install-freeradius-and-daloradius-on-ubuntu/)
terminal ortamında sırasıyla aşagıdaki komtları çalıştırınız.
sudo apt update
sudo apt -y upgrade
sudo reboot
sudo apt -y install apache2
sudo apt -y install php libapache2-mod-php php-{gd,common,mail,mail-mime,mysql,pear,db,mbstring,xml,curl}
php -v
sudo apt update
sudo apt install mariadb-server
sudo mysql_secure_installation
–burda Root şifrresini belirleyip,Not ediniz
sudo mysql -u root -p
CREATE DATABASE radius;
GRANT ALL ON radius.* TO radius@localhost IDENTIFIED BY “Str0ngR@diusPass”;
FLUSH PRIVILEGES;
sudo apt policy freeradius

sudo apt -y install freeradius freeradius-mysql freeradius-utils
sudo add-apt-repository ppa:freeradius/stable-3.0
sudo apt-get update
sudo apt-get install freeradius freeradius-mysql freeradius-utils
sudo su –
mysql -u root -p radius < /etc/freeradius/3.0/mods-config/sql/main/mysql/schema.sql
sudo mysql -u root -p -e “use radius;show tables;”
sudo ln -s /etc/freeradius/3.0/mods-available/sql /etc/freeradius/3.0/mods-enabled/
sudo vim /etc/freeradius/3.0/mods-enabled/sql
açılan ekranı temizleyip,
sql {
driver = “rlm_sql_mysql”
dialect = “mysql”

# Connection info:
server = “localhost”
port = 3306
login = “radius”
password = “Str0ngR@diusPass”

# 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”
yapıştırınız.
sudo chgrp -h freerad /etc/freeradius/3.0/mods-available/sql
sudo chown -R freerad:freerad /etc/freeradius/3.0/mods-enabled/sql
sudo systemctl restart freeradius.service

Şu an Freeradius çalışmış olmalı olası hatalar için

Sudo freeradius -X (Debug Modu) çalıştırıp hatalarınızı izleyebilirsiniz.

Şimdi Dolaradius Kurulumu yapılacaktır.
sudo apt -y install wget unzip
wget https://github.com/lirantal/daloradius/archive/master.zip
unzip master.zip
mv daloradius-master daloradius

cd daloradius
sudo mysql -u root -p radius < contrib/db/fr2-mysql-daloradius-and-freeradius.sql
sudo mysql -u root -p radius < contrib/db/mysql-daloradius.sql
cd ..
sudo mv daloradius /var/www/html/
sudo chown -R www-data:www-data /var/www/html/daloradius/
sudo chmod 664 /var/www/html/daloradius/library/daloradius.conf.php
sudo vim /var/www/html/daloradius/library/daloradius.conf.php
Açılan ekranda gerekli şifreleriniz yazıp kaydet yapınız.
$configValues[‘CONFIG_DB_HOST’] = ‘localhost’;
$configValues[‘CONFIG_DB_PORT’] = ‘3306’;
$configValues[‘CONFIG_DB_USER’] = ‘radius’;
$configValues[‘CONFIG_DB_PASS’] = ‘Sifreniz’;
$configValues[‘CONFIG_DB_NAME’] = ‘radius’;

sudo systemctl restart freeradius.service apache2

http://ip-address/daloradius/login.php

An itibariyle DaloRadius kurulmuş ve linkten erişiliyor olmalı.
Kulad:Administrator şifre:radius

 

2)Eduroam Ayarlarının yapılması

Eduroam ayarlarını FreeRadius 3.1 stable göre yapılacaktır.

Öncelikle sırasıyla gidelim.

1)Radius.conf dosyanızı yedekleyin.

Sonrasında

security {
max_attributes = 200
reject_delay = 0
status_server = yes
}

değişikliklerini yapınız.

2)1.bölümdeki işlemleri yaptınız da OpenSSL de kurulmuş olacaktır.

Şimdi SSL sertifikaları oluşturulacaktır.(İlgili bölüm Eduroam.te sitesindede anlatılmaktadır.)

ca.cnf [ req ] prompt = no distinguished_name = certificate_authority default_bits = 2048 input_password = demirgibikollarimhicaffetmemsollarim output_password = demirgibikollarimhicaffetmemsollarim x509_extensions = v3_ca [certificate_authority] countryName = TR stateOrProvinceName = ANKARA localityName = BILKENT organizationName = TUBITAK ULAKBIM emailAddress = eduroam@ulakbim.gov.tr commonName = “TUBITAK ULAKBIM eduroam Certificate Authority”
server.cnf: [ req ] prompt = no distinguished_name = server default_bits = 2048 input_password = demirgibikollarimhicaffetmemsollarim output_password = demirgibikollarimhicaffetmemsollarim [server] countryName = TR stateOrProvinceName = ANKARA localityName = BILKENT organizationName = TUBITAK ULAKBIM emailAddress = eduroam@ulakbim.gov.tr commonName = “TUBITAK ULAKBIM eduroam Radius Server Certificate”
client.cnf: [ req ] prompt = no distinguished_name = client default_bits = 2048 input_password = demirgibikollarimhicaffetmemsollarim output_password = demirgibikollarimhicaffetmemsollarim [client] countryName = TR stateOrProvinceName = ANKARA localityName = BILKENT organizationName = TUBITAK ULAKBIM emailAddress = eduroam@ulakbim.gov.tr commonName = “TUBITAK ULAKBIM eduroam Radius Client Certificate”
Dosyalarda gerekli değişiklikler yapıldıktan sonra, bootstrap komutu çalıştırılarak gereken sertifikalar oluşturulur.
./bootstrap

3)Proxy.conf dosyası

Dosya Adı : proxy.conf
home_server trrad01 {
type = auth+acct
ipaddr = 193.140.83.100
ipv6addr = 2001:a98:10::100 # ipv6 bağlantınız yok ise kapatınız
port = 1812
secret = Onceden_Belirlenmis_Sifre
response_window = 20
zombie_period = 40
revive_interval = 120
status_check = status-server #radiusd.conf ta da açılmalıdır.
check_interval = 30
num_answers_to_alive = 3
}
home_server trrad02 {
type = auth+acct
ipaddr = 193.140.100.35
ipv6addr = 2001:a98:11:0:204:75ff:feb1:ac9 # ipv6 bağlantınız yok ise kapatınız
port = 1812
secret = Onceden_Belirlenmis_Sifre
response_window = 20
zombie_period = 40
revive_interval = 120
status_check = status-server
check_interval = 30
num_answers_to_alive = 3
}
home_server_pool EDUROAM-FTLR {
type = fail-over
home_server = trrad01
home_server = trrad02
}
###REALM TANIMLARI###
realm alanadi.edu.tr {
nostrip
}
realm “~\\.alanadi\\.edu\\.tr$” {
nostrip
}
realm NULL {
}
realm DEFAULT {
pool = EDUROAM-FTLR
nostrip
}

3)Dosya Adı : clients.conf  dosyasını ayarlayınız.
##############
# TRRAD01
client 193.140.83.100 {
secret = Onceden_Belirlenmis_Sifre
shortname = trrad01
nas-type = other
virtual_server = eduroam # Virtual Server adini yaziniz
}
client 2001:a98:10::100 {
secret = Onceden_Belirlenmis_Sifre
shortname = trrad01v6
nas-type = other
virtual_server = eduroam # Virtual Server adini yaziniz
}
#
# TRRAD02
client 193.140.100.35 {
secret = Onceden_Belirlenmis_Sifre
shortname = trrad02
nas-type = other
virtual_server = eduroam # Virtual Server adini yaziniz
} client 2001:a98:11:0:204:75ff:feb1:ac9 {
secret = Onceden_Belirlenmis_Sifre
shortname = trrad02v6
nas-type = other
virtual_server = eduroam # Virtual Server adini yaziniz
}
#
Dosya Adı : sites-enabled/eduroam
(bold olan satırlar eklenmelidir, diğerleri örnek olarak verilmiştir):

 

4)“inner-tunnel” Sanal Sunucu Dosyasının Yapılandırılması

Bu kısım biraz farklı sites-avaıble klasöründeki default olanı siliniz.

orda eduroam ve inner-tunnel olamak üzere iki dosya yer alacak.

server inner-tunnel { authorize { suffix unix update control { Proxy-To-Realm := LOCAL } eap { ok = return } files pap } authenticate { Auth-Type PAP { pap } eap } session { radutmp } post-auth { reply_log Post-Auth-Type REJECT { attr_filter.access_reject } } pre-proxy { pre_proxy_log } post-proxy { post_proxy_log }}

Parantezlere dikkat edelim.

Eduroam kısmında normalde dökümanda farklı yazıyor ama çalışan ayarlar bu şekilde.Realm ==”DEFAULT” şeklinde yapınız.

server eduroam { authorize { auth_log suffix eap unix files pap #Following 5 lines are for rejecting “user@” type domainless reqs if ((Realm ==”DEFAULT”) && (User-Name =~ /.*@$/)) { update control { Auth-Type := Reject } } # End of reject domainless reqs. } authenticate { Auth-Type PAP { pap } eap } preacct { acct_unique suffix files } accounting { } session { radutmp } post-auth { reply_log exec Post-Auth-Type REJECT { reply_log } } pre-proxy { attr_filter.pre-proxy pre_proxy_log } post-proxy { post_proxy_log attr_filter.post-proxy } }

5) freeRadius -X yapıp çalıştırınız.

Burda MsChap la ilgili hata dönebilir.Eğer kullanmıyorsanız kapatabilirsiniz.Biz PAP sistemine göre düzenleme yaptık.

6)Artık son işlemdeyiz.

Radiusd.conf tüm sistemlerin yer aldığı dosyadır.

Burda Orjinal dosyanızda portlar bulunmamakta.Bu yüzden open port hatası alırsınız.

Bu kısımda

listen {
ipaddr = *
# ipv6addr = ::
port = 0
type = acct
# interface = eth0
# clients = per_socket_clients
}

belirtmelisiniz.Eğer yoksada eklemelisiniz.

İşlem basamaklarını atlamadığımız zaman Başarıyla kurulmuş olacaktır.

Sorularınızı

info@entegrasyonbilisim.com a iletirseniz yardımcı olmaya çalışırım.