pfSense FreeRADIUS – Simultaneous-Use Kullanımı (Eş zamanlı kullanıcı)

Sorun aslında FreeRadius’a özgü olsa da aslında sorun demeyelimde ipucu demek daha sağlıklı olur.Eğer sizlerde benim gibi pfSense üzerinde freeradius manyağı olduysanız günün birinde bu konuya uğrayacağınız kesin .

pfSense üzerinde eğer Freeradius’a nas olarak CaptivePortal kullanacaksanız default olarak Simultaneous-Use kullanımına izin vermiyor.Yani siz CaptivePortal üzerinde eş zamanlı kontrol değil de freeradius üzerinde yapmak isterseniz bu işlev çalışmayacaktır.

pfSense CaptivePortal bypass Patch

pfSense üzerinde eğer CaptivePortal bacağında Tranparent Proxy hizmeti sunuyorsanız (squid2) sistemi bypass edebilecekleri bir bug ortaya çıkıyor.Kullanıcılar karşılama ekranına uğramadan direk Proxy server üzerinden internet’e erişebiliyorlar.Bu durum’da yaptığınız hotspot’un hiçbir geyiği kalmıyor ve dışarıdan ağınıza kolayca erişebilen kullanıcılar elde etmiş oluyorsunuz.(En son isteyeceğiniz bir durum sanırım.)

Çözümü için squid3 veya squid3 dev paketlerini kurarak çözebilirsiniz.Ama bu squid sürümleri şuan pfSense üzerinde stabil olmadığına ınandığım için veya inanmadığımız için squid2 kurup karşıya geçiyoruz.Bu durumlarda squid2’e aşağıdaki patch’i uygulayarak bu bug’tan kurtulabilirsiniz.

CentOS üzerinde Freeradius ve Ghost Kurulumu

Belirli nedenlerden dolayı Radius sunucunuzu bir başka sunucuda tutmak isteyebilir ve/veya pfSense yerine başka bir firewall tercih etmişsinizdir. Örneğin;Mikrotik ve Ghost’u veya sıfırdan yazdığınız bir ürünü Mikrotik’e göre Attribute değerlerini güncelleyerek daha gelişmiş bir Radius Manager yazmışsınızdır.Mikrotik veya Donanımsal Firewall’lar üzerinde Radius server bulunmuyorsa ve üzerinede kurulum yapmanıza izin vermiyor,desteklemiyorsa Radius sunucuzunuzu dışarıdaki bir sunucu’da tutmanız gerekebilir.Bu durum da benim gibi kaynak olarak bakmak için bu makaleyi takip edebilirsiniz.

pfSense Uyumlu Donanım Listeleri

pfSense için bir cihaz toplamaya karar verirseniz ve uyumluluk konusundaki kafanızdaki soru işaretlerini aşağıdaki linklerle giderebilirsiniz.

pfSense 2.1.x  versiyonları için (FreeBSD 8.3) : http://www.freebsd.org/releases/8.3R/hardware.html
pfSense 2.0.x versiyonları için (FreeBSD 8.1): http://www.freebsd.org/releases/8.1R/hardware.html

ipucu : pfSense dhcp Leases cihazları görüntülememe sorunu

Bu aralar forumlarda da sık sık önüme çıkıyor dhcp leases bölümünde ip almış cihazları görüntüleyemiyorum veya pfSense üzerinde dhcp rezervasyon diğer adıyla static mapping yaptığım istemciler gözükmüyor gibi sorular oluyor.Bugün benim başımada gelince aklıma nmap geldi. Burada nmap’ı anlatacak kadar uzun bir döküman olmayacak malesef ama basitçe Nmap’ın çalışma mantığından bahsedelim.NMAP Gordon Lyon amcamızın uğraşları doğrultusunda C/C++ ve Phyton yazılım dilleriyle geliştirilmiş bir güvenlik ağ tarayıcısıdır.Nmap ile ağ haritasını çıkartabilir,işletim sistemlerini,portların ve çalışan servislerin durumunu görebilirsiniz.

Bu sorunu aşmak için Ağdaki cihazlara ya ping atmanız gerekir yada nmap gibi benzeri yazılımlarla network’ü scan edip cihazlara pfsense üzerinden paket göndermeniz yeterli olacaktır.pfSense ARP tablosuna bakıp orada /var/db altında dhcp leases dosyasına yazar. Listelerkende aynı şekilde ilgili dosyadan çeker. Eğer siz ortam’da bulunan cihazlarla haberleşirseniz arp tablosuna eklenecek ve pfSense listeleyecek.Ama bazı durumlarda saçmaladığı oluyor ondan dolayı bu durumlarda Nmap ile ağı tarayıp cihazları görebilirsiniz.

Neyse lafı daha fazla uzatmadan Yüklenebilir Paketler listesinden nmap’ı bulun ve yükleyin. Yükleme tamamlandıktan sonra Diagnostics -> Nmap menüsünden aşağıdaki sayfaya erişin ve subnetinizi girip tarama işlemini tamamlayınız.

nmaps1

 

Tarama tamamlandıktan sonra DHCP Leases içeriği ;

ekrantest1

Gördüğünüz gibi üretici isimlerininde artık DHCP leases adı altında geldiğini görmekteyiz.

Artık NMAP ile yapabileceklerinizi geliştirebilir bu aracı pfSense üzerinde daha aktif kullanabilirsiniz.Bizim işimiz dhcp Leases’i update etmekti bitti : )

Selametle…

 

Centos üzerinde Oracle Client Kurulumu (PHP)

Php ile Oracle veritabanı sunucunuza bağlanmak isterseniz sunucunuz üzerinde Oracle Client kurulu olması gerekiyor ve PHP extension kurulumlarını yapmanız gerekmektedir.Ben pfSense üzerinde Radius’u , MySQL’i  tutmak yerine Centos üzerinde tutarak bütün yükü pfSense sırtına yüklemek istemiyorum.Sonuç itibariyle pfSense bir Firewall, web server değil : )

Neyse lafı daha fazla uzatmadan yavaştan kuruluma geçelim.Şuan 12.1 oracle client sürümü mevcuttu bende indirip kendi web siteme rpm dosyalarını attım. Eğer yıllar sonra bu makeleye uğrarsanız aşağıdaki link çalışmaya devam ederse güncel RPM dosyalarını indirmeniz gerekir.

Radius CaptivePortal Kullanıcı Hatırlama Modülü

Merhabalar ;

Bir cafe’nin isteği doğrultusunda kullanıcılar birkere giriş yaptıktan sonra bir daha karşılama ekranı gelmesin otomatik authentication olmalarını istemişlerdi.

Ben kendi sistemime göre çözdüm ama yerel kimlik doğrulama içinde birşeyler yapılabilir düşüncesindeyim veya CaptivePortal için kendi veritabanınızı kullanıyorsanız kullanıcılar giriş yaparken veya kayıt olurken mac adreslerini veritabanına yazdırarakta çözebilirsiniz.Bazı arkadaşlar PHP ile mac adresini nasil aldin sorunusunu yoneltecektir.Mac adresini PFSense kendisi ARP tablosunda bakıp clientmac değişkeni olarak index.php’de kullanmış bende onu kullanaraktan yola çıktım.(En azindan ben maci öyle aldığını düşünüyorum.)Yani aşağıdaki kodları kendinize göre düzenlerken clientmac değişkeni kafanızda soru işareti oluşturmasın.

Ben Ghost üzerinde bu modülü kullandığım için giriş yaparken kullanıcıların mac adresini veritabanına yazdırma gereği duymadım çünkü, Freeradius mac adreslerini radacct tablosunda zaten tutuyor.

Ayrıca bu modülü aktif ettikten sonra CaptivePortal veya Radius Bandwitdh limitlendirme çalışamayacaktır. (Testlerim en azından bunu gösterdi.)Eğer biraz daha karıştırıp çözebilirsem kodu güncellemeye çalışırım. Şimdilik farklı yöntemlerle bandwithleri kullanıcı bazlı değil de Network bazlı kısıtlayabilirsiniz.

Shell’e Putty veya yardımcı SSH Client ile bağlanıp usr/local/captiveportal dizine gidin ve index.php dosyasının en altında ?> tagindan öncesine ekleyin.

Dediğim gibi kodun calısabilmesi için bir veritabanı baglantısı yapmanız veya kullanıcılarının giriş yaptıktan sonra mac adreslerini biryere kaydettirmiş olmanız gerekiyor.

/* Kullanici Hatirlama Modulu baslangic */

include("Config.php"); // Db Bağlantısı

$sor = mysql_fetch_array(mysql_query("SELECT * FROM radacct WHERE callingstationid='$clientmac'")); //Mac adresini aliyoruz.
if($sor != '')   // mac varsa
{
 $username = $sor['username']; //Mac adresine ait kullanici adini öğreniyoruz.
 $bul = mysql_fetch_array(mysql_query("SELECT * FROM radcheck WHERE username='$username' AND attribute='User-Password'"));
 //Eğer kullanici radcheck tablosunda varsa captiveportal_logportalauth bağlantısıyla sisteme otomatik giris yaptiriyoruz.
 $user2 = $bul['username'];
 if($user2 !='')  // eğer kullanici radcheck tablosunda varsa giris yap.
 {

 // Kullanıcımızı captiveportal ekranı gelmeden girisini tamamliyoruz.

 captiveportal_logportalauth($user2,$clientmac,$clientip,"Bir kahvenin kirk yil hatri olur dedi ve giris yapti.");
 portal_allow($clientip, $clientmac, $user2);
 exit;
 }
 else{}
 }

else { }

/* Kullanici Hatirlama Modulu bitis  */

Ayrıca CaptivePortal’ın zaten giriş yaptıktan sonra Mac’i otomatik izinli maclere ekletebiliyoruz gibi muhabbetler olacaktır.Ama malesef buraya eklenen macler captiveportal üzerinde tanımlanan herşeyi es geçiyor ve hiçbir limitleme veya eğer bir report veya log alıyorsanız bunları almanız mümkün olmuyor. (Mac ve İp loglarından bahsetmiyorum.)

Arama
RSS
Beni yukari isinla