Captive portal + lightsuid raporlama sorunu



  • Sistemde capital portal+ squid+freeradius+mysql+lightsquid+ghost hotspot mevcuttur. sistem stabil çalışmaktadır fakat forumdada aradım bulamadım. Sorunum capital portalda login olan kullanıcılar light squidte görünüyor ama ip yerine capital portaldaki isim ile görünmesini istiyorum bunu nasıl yapabilirim?



  • Merhaba,

    Eğer kullanıcıların ip adreslerini biliyorsanız,
    "/usr/pbi/lightsquid-i386/etc/lightsquid/" altındaki "realname.cfg" dosyasını açın ve kullanıcıların ip adres ve isimlerini kaydedin;

    192.168.1.100    Ahmet
    192.168.1.101    Mehmet
    192.168.1.102    Hasan
    192.168.1.103    Huseyin

    Ardından Status > Proxy Report > Lightsquid > Refresh Now dediğinizde artık raporlar ip adresi yerine isim olarak gelecektir.

    İyi çalışmalar dilerim.



  • kemal bey merhaba kusura bakmayın talebimi yanlış ilettim. benim isedigim ip adresi kalsın fakat Gerçek ad kısmında '?' işareti olan yerde capital portaldaki isimler görünmesini istiyorum.



  • Merhaba,

    Öncelikle Lightsquid'de "?" işareti olduğu yere (Real Name kısmına), captive portal daki kişi isimlerini yazdırmanın hali hazırda bir yöntemi bildiğim kadarıyla yok.
    Ancak siz mysql+ghost kullandığınıza göre php de yazacağınız bir script ile bunu yapabilirsiniz.

    Lightsquid, "?" işareti olduğu yeri doldurmak için "/usr/pbi/lightsquid-i386/etc/lightsquid/realname.cfg" dosyasında ip-isim tanımlamaları varmı ona bakıyor.
    Eğer tanımlama yoksa "?" işareti koyuyor.

    captive portal girişleri mysql de "radacct" tablosunda tutuluyor ve bu tabloda hem "kullanıcı adı", hem "ip adresi" gibi bilgiler bulunmaktadır.
    Yazacağınız bir script ile cp kullanıcı adı ve ip adreslerini bu "realname.cfg" dosyasına yazdırabilirseniz, lightsquid "?" işareti kısmına artık cp isimleri gelir.

    İyi çalışmalar dilerim.



  • Peki bu belirttiginiz çözümü nasıl uygulayabilirim ?



  • Açıkçası elimde bu iş için hali hazırda bir script maalesef yok.
    Ancak yazılması iyi olur belki diğer arkadaşlarında işine yarar.
    Yazmaya başlayayım bitince buradan haber veririm.



  • Merhaba,

    Lightsquid "Realname" kısmına Captive Portal isimlerini yazdıran script aşağıda eklenmiştir.

    İyi çalışmalar dilerim.

    Kullanımı :
    1 - Script kodlarini kopyalayin.
    2 - "/usr/local/www" altinda "ls_rapor.php" adinda bir dosya olusturun ve kodlari icine yapistirin.
    3 - Sonra Cron'da "/usr/local/bin/php /usr/local/www/ls_rapor.php" olarak 10 dk.da bir çalisacak sekilde ekleyin.
    NOT : Scripti browser dan http://[PFSENSE IP ADRESI]/ls_rapor.php seklinde de calistirabilirsiniz.

    
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    // 	Bu script, Hotspot'u Captive Portal+Freeradius+Mysql+Ghost seklinde kullananlar icin, Lightsquid raporlarindaki "Real Name" kismina "Kullanici Adi" yazdirmak için kullanilan scripttir. 
    // 	Kemal GOK | Versiyon : 0.1 | Ekim 2015 | kemalgok.com | kemalgok@gmx.net 
    // 	KULLANIMI : 
    //	1 - Script kodlarini kopyalayin.
    //	2 - "/usr/local/www" altinda ls_rapor.php adinda bir dosya olusturun ve kodlari icine yapistirin. 
    //	3 - Sonra Cron'da "/usr/local/bin/php /usr/local/www/ls_rapor.php" olarak 10 dk.da bir çalisacak sekilde ekleyin.
    //	NOT : Scripti browser dan http://[PFSENSE IP ADRESI]/ls_rapor.php seklinde de calistirabilirsiniz. 
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    
    // TANIMLAMALAR...
    $basla = microtime(true);
    $realname="/usr/pbi/lightsquid-i386/etc/lightsquid/realname.cfg";
    $geceoniki=date("Y-m-d 00:00:00", strtotime(now));		
    
    function baglan()
    {
    	$host="localhost"; 		// Mysql hostname
    	$username="radius";  	// Mysql username 	(Varsayilan olarak username : radius)
    	$password="radpass"; 	// Mysql password	(Varsayilan olarak password : radpass)
    	$db_name="radius"; 		// Database name
    
    	$con = mysql_connect($host,$username,$password);
    	if (!$con)die('Baglanamadi : ' . mysql_error());
    	mysql_select_db($db_name, $con);
    }
    
    //////////////// ANA BLOK ///////////////////
    baglan();
    $result=mysql_query("SELECT framedipaddress, username FROM radacct WHERE acctstarttime BETWEEN '$geceoniki' AND NOW() ORDER BY framedipaddress");
    echo "IP ADRES >> KULLANICI ADI 
    ";
    while($row = mysql_fetch_array($result)) 
    {
    	echo "$row[framedipaddress] >> $row[username] 
    ";
    	$user_ip.=$row[framedipaddress]." ".$row[username]."\n";
    	$say+=1;
    }		
    file_put_contents($realname, $user_ip);
    
    echo "$say adet IP ADRES > ISIM eslesmesi LIGHTSQUID dosyasina yazildi...
    ";
    $gecen_zaman = microtime(true) - $basla;
    
    echo "Script calisma zamani : ".$gecen_zaman." saniye
    ";
    mysql_close();
    ?> 
    


  • Kemal bey merhabalar verdiginiz scripti kullandım fakat lightsquid te real name kısmında hala ? işareti mevcut fakat veridigniz scripti çalıştırdıgımda ip karşısında captive portal kullanıcı isimleri çıkıyor script te



  • Merhaba,

    Scripti çalıştırdıktan sonra,
    1 - "/usr/pbi/lightsquid-i386/etc/lightsquid/realname.cfg" dosyasında isimler ve ip ler gelmis mi ?
    2 - Lightsquid de "Refresh now" yaptınız mı?



  • Merhabalar,

    Eğer ki önerdiğiniz çözüm 64bit olduğundaki yolu da yazabilir misiniz. Belki arkadaşımızın sistemi 64bit olduğu için olmayabilir mi?

    SGTR



  • @en2li2:

    Sistemde capital portal+ squid+freeradius+mysql+lightsquid+ghost hotspot mevcuttur. sistem stabil çalışmaktadır fakat forumdada aradım bulamadım. Sorunum capital portalda login olan kullanıcılar light squidte görünüyor ama ip yerine capital portaldaki isim ile görünmesini istiyorum bunu nasıl yapabilirim?

    Merhabalar,

    Sizlerden de ricamız soru kaydınızı açarken sisteminizin 32bit ya da 64bit olduğunu da belirtirseniz daha hızlı/etkin yanıt alabilirsiniz.

    SGTR



  • Merhaba,

    @SGTR üstad dediğiniz gibi 64 bitte dosya yolu farklı olabilir.
    Arkadaş sonuç hakkında henüz geri dönüş yapmadı bende merak ediyorum sonuç ne oldu.
    Eğer 64 bitse, dosyanın nerede olduğunu konsol roottayken "find /  -name realname.cfg" komutuyla öğrenebilir.

    İyi çalışmalar dilerim.



  • merhabalar kemal bey dediginiz gibi scripti ekledim çalıştı fakat raporlamada bazı isimler de hala "?" işareti kalıyor bazılarında isimleri yazıyor bunun önüne nasıl geçebiliriz?



  • Merhaba,

    Script, gece 00:00:00 dan o ana kadar CAPTIVE PORTAL üzerinden KULLANICI ADI ve ŞİFRE ile giren tüm kullanıcıları raporlar.
    Ancak siz, CAPTIVE PORTAL üzerinden "pass-through mac " yada "allowed ip addresses " kısmında bazı kullanıcılara direk giriş izni veriyorsanız bunlar "?" olarak kalacaktır.
    Bu soru işareti olan ip leri araştırdığınızda muhtemelen buna benzer bir sonuç ortaya çıkacaktır.

    İyi çalışmalar dilerim.



  • Bu mac pass toured a tanımladıgım mac adreslerine nasıl isimlendirme yapabilirim Kemal bey,



  • Merhaba,

    Bu işin, sizin tarafınızda yapacağınız kısmı, DHCP den bu mac adreslerine statik ip vermenizdir.
    Çünkü lightsqudid mac a göre değil, ip adresine göre rapor oluşturuyor.
    Bu mac adreslerinin hepsini bir ip ye bağlamanız lazım.

    Script tarafında ise, captive portala uğramadan giriş yapan cihazların lightsquid raporlarında çıkması için scriptte bir revizyon yapılması lazım.
    İş durumuna göre bu revizyonu yapabilirim ancak tam bir zaman veremiyorum.

    İyi çalışmalar dilerim.



  • Merhaba,

    Raporlama scriptte, Captive Portal'dan direk giriş izni verilen kullanıcıların Lightsquid raporlarında gözükmesi için gerekli revizyon yapılmıştır.
    Öncelikle, Lightsquid ip adresine göre raporlama yaptığı için, CP dan direk giriş yapan cihazlara DHCP den statik ip tanımlama yapmanız gerekmektedir.

    Scriptin içindeki "$cp_ip" değişkenine örnekte belirtildiği gibi ip leri tanımlamanız yeterlidir.
    Bu tanımlanan ipler lightsquid "realname.cfg" dosyasına eklenecek ve artık raporlarda soru işareti yerine bu kişiler çıkacaktır.

    
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    // 	Bu script, Hotspot'u Captive Portal+Freeradius+Mysql+Ghost seklinde kullananlar icin, Lightsquid raporlarindaki "Real Name" kismina "Kullanici Adi" yazdirmak için kullanilan scripttir. 
    // 	Kemal GOK | Versiyon : 0.2 | Kasim 2015 | kemalgok.com | kemalgok@gmx.net
    // 	KULLANIMI : 
    //	1 - Script kodlarini kopyalayin.
    //	2 - "/usr/local/www" altinda "ls_rapor.php" adinda bir dosya olusturun ve kodlari icine yapistirin. 
    //	3 - Sonra Cron'da "/usr/local/bin/php /usr/local/www/ls_rapor.php" olarak 10 dk.da bir çalisacak sekilde ekleyin.
    //	NOT : Scripti browser dan http://[PFSENSE IP ADRESI]/ls_rapor.php seklinde de calistirabilirsiniz. 
    //	VERSIYON NOTLARI : 
    //	0.2 : Bu versiyonda, Captive Portalda "direk giris yetkisi" verilen iplerin Lightsquid "Realname" kisminda gozukmesini saglayan revizyon yapimistir.
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    
    // TANIMLAMALAR...
    // Bu alttaki kisim, Captive Portaldan direk giris yetkisi verilen cihazlarin lightsquidde raporlanmasi icin kullanilir.
    $cp_ip="
    192.168.1.200 ALI PC 				
    192.168.1.201 VELI IPHONE 		
    192.168.1.202 AHMET TELEFON 		
    192.168.1.203 GARANTI POS 		 			
    192.168.1.204 IP KAMERA
    192.168.1.205 KAMERA DVR CIHAZI";
    //////////////////////////////////////////////////////////////////////////////////////////////////////
    
    $basla = microtime(true);
    $realname="/usr/pbi/lightsquid-i386/etc/lightsquid/realname.cfg";
    $geceoniki=date("Y-m-d 00:00:00", strtotime(now));		
    
    function baglan()
    {
    	$host="localhost";		// Mysql hostname
    	$username="radius";		// Mysql username 	(Varsayilan olarak username : radius)
    	$password="radpass";	        // Mysql password	(Varsayilan olarak password : radpass)
    	$db_name="radius";		// Database name
    
    	$con = mysql_connect($host,$username,$password);
    	if (!$con)die('Baglanamadi : ' . mysql_error());
    	mysql_select_db($db_name, $con);
    }
    
    //////////////// ANA BLOK ///////////////////////////////////////////////////////////////////////////
    baglan();
    $result=mysql_query("SELECT framedipaddress, username FROM radacct WHERE acctstarttime BETWEEN '$geceoniki' AND NOW() ORDER BY framedipaddress");
    echo "IP ADRES >> KULLANICI ADI 
    ";
    while($row = mysql_fetch_array($result)) 
    {
    	echo "$row[framedipaddress] >> $row[username] 
    ";
    	$user_ip.=$row[framedipaddress]." ".$row[username]."\n";
    	$say+=1;
    }		
    $user_ip.=$cp_ip;		// Bu kisimda yukarida tanimlanan CP den direk giren ip leri ekliyoruz.
    file_put_contents($realname, $user_ip);
    
    echo "$say adet IP ADRES > ISIM eslesmesi LIGHTSQUID dosyasina yazildi...
    ";
    if ($cp_ip <> "") echo "CP ip leri LIGHTSQUID dosyasina yazildi...
    ";
    $gecen_zaman = microtime(true) - $basla;
    echo "Script calisma zamani : ".$gecen_zaman." saniye
    ";
    mysql_close();
    ?> 
    


  • @en2li2:

    Bu mac pass toured a tanımladıgım mac adreslerine nasıl isimlendirme yapabilirim Kemal bey,

    DHCP server üzerinde MAC adreslerine IP eşleme yaparsınız, daha sonra bu kişilerin MAC adreslerini pass through MAC listesinden silerek, IP adreslerini Allowed IP adresses listesine isimlerini belirterek ekleyebilirsiniz.

    Eşleme yapacağınız IP adreslerini DHCP dağıtım aralığı haricinde seçmeniz IP çakışması sorunları ile karşılaşmanızı önleyecektir.



  • Kemal güzel olmuş teşekkür ederim buna hangi saatte giriş çıkış yapmış onuda ekleyebilir miyiz.

    ve lighsquid üzerinde de pfsense de ip2name nasıl entegre ederek çalıştırabiliriz. lighsquid captive portal kullanıcı adı ve şifreyi ekliyorum ama görünmüyor. almıyor. Örnek resim linkinide ekledim.

    (ghost paketini kullanıyorum captive portalda)

    http://hizliresim.com/81l041



  • Merhaba

    öncelikle çok yararlı bilgileriniz için teşekkürler.

    Benimde bir sorum olacak.

    Captive Portal ve local user ile internete çıkışlarda kullanıcı denetimi yapıyoruz. Ghost için vermiş olduğunuz kodlar burda da geçerli olacak mıdır?

    raporda ip adresi - kullanıcı adı - mac adresi - tarih - zaman dilimlerini görebilir miyiz?

    Yardımlarınız için tşkler


Log in to reply