[Çözüldü] Ubuntu ve freeRadius

Başlatan mrtrca, 22 Ocak 2013 - 22:51:34

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

mrtrca

Merhabalar,

        Ubuntu sunucum üzerinde FreeRadius paketini koşturmaktayım. Herhangi bir sorunum yok. PHP dilini kullanarak bir arayüz hazırlıyorum, hemen hemen * her şey tamam. Sadece birkaç sorun kaldı onları da hallederek geliyorum.
        FreeRadius kullananlar bilirler sisteme yeni bir Erişim Noktası(AP) eklenmesi için clients.conf dosyasına eklenecek cihazın internet protokolü(ip) adresini ve guvenlik(secret) kodunu yazmak gerekiyor.

Örnek;


client 25.25.25.122
{
secret = guvenlikkodu
shortname = 27nciCaddeAp
}


Her seferinde bu konfigurasyon dosyasını kullanılabilir yapmak için;

service radiusd restart

yazmam gerekiyor. Ancak bu durumda radius sunucu kapanıp açılana kadar ki arada kullanıcılardan gelen istekler reddediliyor, sistem yoğun kullanılan bir sistem ve bu esnada en az 10 kullanıcı geri çeviriliyor.

radius sunucudaki istemci listesini sunucuyu durdurmadan/yeniden başlatmadan güncellemeye yapan komutu/parametreyi  uzun uğraşlarıma rağmen bulamadım.

Bilen varsa esirgemezse çok sevinirim.

Saygılar,

heartsmagic

kill ve HUP sinyali önerilmiş şurada:
http://stackoverflow.com/questions/11171626/reload-freeradius-clients-without-restart-the-service
kill -HUP $(cat /var/run/radiusd/radiusd.pid)

HUP sinyali ile birçok servis yapılandırma dosyalarını yeniden yüklüyorlar, Radius'ta da belki bu işe yarayabilir önerildiği üzere. Tabi .pid dosyası aynı yerde midir bilemiyorum. İlla dosyadan da okutmaya gerek olmadan ps ile de bakılabilir tabi.

PID vermeden belki şöyle de olur:

killall -HUP radius_servisinin_ismi_nasıl_geçiyorsa
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

mrtrca

cevabınız için teşekkür ederim.

yazdığınız komut

service radiusd reload

komutu ile aynı işi görüyor sanırım. çünkü işe yaramadım.

sanırım reload parametresi radiusd.conf dosyasını yeniden yüklemeye yarıyor.

Teşekkürler

heartsmagic

Değişiklikler radiusd.conf dosyasında olmuyor mu zaten? O dosya bir şekilde "reload" ile yeniden yüklenebiliyorsa ayarların hayata geçmesi gerekmiyor mu? Tam olarak sistem nasıl yani o tarafta?
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

mrtrca

#4
sistem şu şekilde işliyor.
radius.conf dosyasında sistemin işleyişi ayarlanıyor.
clients.conf dosyasına da istemicler yazılıp radius 'a bildiriliyor.

radius 'a doğrulaması için sorgu gönderen erişim noktasının internet protokolü numarası clients.conf 'taki ile eşleşmiyorsa kullanıcı adı ve şifre doğru bile olsa cevap vermiyor.

:)
analatabildim mi bilmiyorum.



resimdeki ap yazan noktaların internet protokolü adresleri clients.conf isimli dosyaya yazılıyor.


heartsmagic

Anladım, ben clients.conf dosyasını es geçmişim ki ilk iletide yazmışsın aslında. Pek tecrübe etmediğim bir şey olunca haliyle sadece göz yordamıyla öneri sunabiliyorum.

Şurada senin buraya geçtiğin benzer bir öneri verilmiş: http://serverfault.com/questions/401633/reload-freeradius-clients-without-restart-the-service
service freeradius reload
Sen bunu denedin ve iş görmedi mi? Orada cevap onaylanmış çünkü.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

cagriemer

Benim anlayamadigim nokta cok yogun kullanilan bir sisteme nicin surekli AP ekleme ihtiyaci duyuyorsunuz? Belki sorunu baska bir yere kaydirabiliriz.

mrtrca

Sayın heartsmagic,

Alıntı yapılan: heartsmagic - 27 Ocak 2013 - 11:56:51
Anladım, ben clients.conf dosyasını es geçmişim ki ilk iletide yazmışsın aslında. Pek tecrübe etmediğim bir şey olunca haliyle sadece göz yordamıyla öneri sunabiliyorum.

Şurada senin buraya geçtiğin benzer bir öneri verilmiş: http://serverfault.com/questions/401633/reload-freeradius-clients-without-restart-the-service
service freeradius reload
Sen bunu denedin ve iş görmedi mi? Orada cevap onaylanmış çünkü.

bunu deneyince olmuyor.

Sayın cagriemer,

Alıntı yapılan: cagriemer - 27 Ocak 2013 - 12:57:34
Benim anlayamadigim nokta cok yogun kullanilan bir sisteme nicin surekli AP ekleme ihtiyaci duyuyorsunuz? Belki sorunu baska bir yere kaydirabiliriz.

sistem şöyle: bir mahallenin/sokağın/binanın/lokasyon 'un AP montajları tamamlandıktan sonra o mahalledeki müşterilerimizin sistemi kullanabilmeleri için AP 'lerin sisteme tanıtılması gerekiyor, daha sonra başka bir mahalle/sokak/bina/lokasyon 'a montaj yapılınca tekrar tanımlanıyor. 

Dolayısı ile hemen hemen hergün yeni AP/NAS tanımlamak gerekiyor. Sistemi kullanan 1000 'e yakın kullanıcı var. Sistem sürekli aktif. Şimdilik restart parametresi ile idare ediyoruz. Öngörülen kullanıcı sayısı yaklaşık 20.000 ileride sorun olabilir. Ona da kendi çapımda şöyle bir çözüm düşündüm. Sanırım kendime bir AP/NAS ip listesi oluşturup bunları şimdiden clients.conf 'a tanımlayacağım. Sonradan ekleme ihtiyacım olmayacak.


heartsmagic

Açıkçası reload işlemi neden olmuyor cidden bilmiyorum, dediğim gibi diğer tarafta cevaba onay verilmiş. Varsa doğrudan kaynağa, freeradius listelerine, forumuna falan da sorabilirsin durumu.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

guestwho

Alıntı Yap
Dolayısı ile hemen hemen hergün yeni AP/NAS tanımlamak gerekiyor. Sistemi kullanan 1000 'e yakın kullanıcı var. Sistem sürekli aktif. Şimdilik restart parametresi ile idare ediyoruz. Öngörülen kullanıcı sayısı yaklaşık 20.000 ileride sorun olabilir. Ona da kendi çapımda şöyle bir çözüm düşündüm. Sanırım kendime bir AP/NAS ip listesi oluşturup bunları şimdiden clients.conf 'a tanımlayacağım. Sonradan ekleme ihtiyacım olmayacak.

    20.000 adet bloktan oluşan metin tabanlı bir konfigürasyon dosyası içerisinden veri ayıklama işlemi pek randımanlı olmaz diye düşünüyorum; sonuçta bu clients.conf dosyası sistem açılışında ayrıştırılarak okunuyor. Kullanıcı sayınız arttıkça sistem muhtemelen daha geç açılır olacaktır. Bunun yerine arka uçta SQL veri tabanı kullanmayı düşünmüş müydünüz acaba ? Hem bu şekilde her veri girişinde sistemi yeniden başlatmak zorunda kalmazsınız diye düşünüyorum.
You want weapons? We're in a library. Books are the best weapon in the world. This room's the greatest arsenal we could have. Arm yourself!

mrtrca

20.000 kullanıcı yani clients.conf dosyasının içerisine yaklaşık 120 - 150 arasında bir kayıt girilecek. kullanıcılar bu dosyaya yazılmıyor. kullanıcılar zaten SQL 'de bir tabloda tutuluyor.

guestwho

Anladım. Şu bağlantıda clients.conf içeriğini de SQL 'e taşıma yöntemi anlatılmış; belki işinize yarayabilir: http://sourceforge.net/apps/trac/hotcakes/wiki/YfiTechDynamicClients

Özellikle "Defining Clients" başlığından itibaren "nas SQL tablosu" ile dinamik olarak istemci ekleme işleminden bahsedilmiş.

Alıntı yapılan: heartsmagic - 28 Ocak 2013 - 01:46:16
Açıkçası reload işlemi neden olmuyor cidden bilmiyorum, dediğim gibi diğer tarafta cevaba onay verilmiş.

Galiba bu komut FreeRADIUS sunucusunun ("2.1.10" ve önceki sürümlerinde) modüllerinden sadece bazılarını düzgün bir şekilde yeniden yükleyebiliyor. Sunucuyu hata ayıklama (debugging) kipinde başlatıp çıktıları incelemek gerekiyor aslında. Mesela kullanılan sürüm şu güncellemeyi içermiyor da olabilir:

https://github.com/FreeRADIUS/freeradius-server/commit/3b11ce9a33333d20912096329c54c08143051d4e
You want weapons? We're in a library. Books are the best weapon in the world. This room's the greatest arsenal we could have. Arm yourself!

heartsmagic

@guestwho, evet ben hiç sürüm değişikliği olmuş mudur, olmuşsa öyle bir değişiklik olmuş mudur diye düşünmemiştim. Fakat yine de kullanıcı eklendikten sonra yeniden başlatmak biraz garip geliyordu bana. Başka yollardan yapılabiliyorsa bilemiyorum tabi, ancak @mrtrca'nın örneğinde olduğu gibi en azından birilerinin hizmet alamamasının önüne geçmek gerekiyor sanırım.

Umarım senin önerdiğin yol çözüm olur, zira konu hakkında tecrübem olmadığı için benden fazlaca bir öneri çıkmayacak gibi :) Bu nedenle konuyu asıl kaynağa yönlendirmek istemiştim.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

mrtrca

Edindiğim tecrübeye göre;

Eğer freeradius SQL modülü ile kullanılıyorsa,
clients.conf 'a eklenecek NAS, veritababındaki nas tablosundan alınıyor.
Yani el ile clients.conf dosyasına ekleme yapılınca reload da yapsak restart da yapsak bir işe yaramıyor.
SQL tablosundaki radius veritabanındaki nas tablosuna ekledikten sonra reload parametresi ile işlem tamamlanabiliyor.

Bende işe yaradı.

Saygılar,

heartsmagic

Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

guestwho

Ben de şunu sorayım; şu an sistem istemcileri dinamik olarak ekleyebiliyor mu veri tabanına ?
You want weapons? We're in a library. Books are the best weapon in the world. This room's the greatest arsenal we could have. Arm yourself!

mrtrca

Şöyle ;

veritababnında nas isimli bir tablo var, bu tabloya clients.conf dosyasına eklediğimiz gibi

nasname = 10.0.0.1
shortname = 2nciCadde
secret = 1234567

şekline ekledikten sonra

service radiusd reload

komutunu yazınca NAS 'lar otomatik olarak clients.conf dosyasına ekleniyor.

dolayısı ile dinamik olarak kullanabiliyoruz.


heartsmagic

Bu durumda @guestwho'nun önerisi doğrultusunda sorun çözülmüş gibi görünüyor?
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

mrtrca

Evet sorun çözüldü,
kısacası freeradius 'u SQL modülü ile kullanıyorsanız clients.conf dosyasında değişiklik yapmıyoruz. ilgili veritabanındaki tabloda değişklik yapıyoruz.