PfSense 2.2.x Soap ve Mysql Kurulum Çözümü



  • Arkadaşlar herkese merhaba,

    Uzun zamandır 2.2.x sürümlerine Soap ve Mysql bileşeni kuramıyordum. pkg install komutu kullanınca php sürümü değişiyor ve pfsense kullanılamaz hale geliyordu.

    Hotspot için 2.1.x Firewall uygulamaları için 2.2.x kullanıyordum derken bu gece tekrar bakmak istedim ve sonunda başardım.
    Belki gereksiz kullandığım komutlar vardır, bir çok deneme ile kurduğum için bilen varsa gereksiz komutları söylerse yemekte onunda tuzu olur :))

    Öncelikle;

    pkg install yapıyorum daha sonra
    pkg install mysql55-client mysql55-server

    Yapıp Mysql kurulumunu yapıyorum.
    Sırasıyla;

    /etc/rc.php_ini_setup
    php -m | grep mysql
    /usr/local/bin/mysql_install_db –-basedir=/usr/local
    chmod 777 /var/db/mysql
    mv /usr/local/etc/rc.d/mysql-server /usr/local/etc/rc.d/mysql-server.sh
    ee /usr/local/etc/rc.d/mysql-server.sh (mysql enable)

    /usr/local/etc/rc.d/mysql-server.sh start

    bundan sonra da db ve kullanıcı oluşturma kalıyor ki zaten aynı.

    Soap için ise;
    pkg install libxml2
    pkg add -M http://pkg.freebsd.org/freebsd:10:x86:32/latest/All/php55-soap-5.5.33.txz
    ** 64 Bit kurulumlarda
    ** pkg add -M http://pkg.freebsd.org/freebsd:10:x86:64/latest/All/php55-soap-5.5.33.txz
    Yaptıktan sonra;
    touch /etc/php_dynamodules/php-soap
    touch /etc/php_dynamodules/php55-mysql
    touch /etc/php_dynamodules/mysql

    bu komutları giriyorum ve 2.2.x sürümünde Soap ve Mysql kullanılabiliyor. Böylelikle hotspot çalışıyor.

    Benim php sürümüm 5.3.30 yüklediğimiz soap sürümü 5.3.33 ama hiç bir sorun çıkmıyor. Bir kaç kere denedim.

    Umarım ihtiyacı olanların kullanması nasip olur.

    Son olarak da; perl ile çalışan Tib5651 ı biraz modifiye ederek OpenSSL ile imzalama eklentisi geliştirdim.
    PFsense 2.1.x sürümlerinde iki tane openssl var,
    /usr/local/bin/openssl  Bu sürümü kullanınca ts ile zaman damgası ile imzalama yapabiliyorsunuz.

    loglama yaptığımız sh dosyasına;

    dosya_adi=LogImza-meydan-$tarih.tar.gz
    yol=/loglar/$tarih/imza
    calisma_dizini=/loglar/$tarih/imza/temp
    saklama_dizini=/loglar/$tarih/imza
    hatali_imzalar=/loglar/$tarih/imza/hatali/hatali-imza-$dosya_adi-$tarih
    CAPublicKEY=/CA/cacert.pem
    TSAPublicKEY=/CA/tsacert.pem
    openssl=/usr/local/bin/openssl
    openssl_conf=/usr/local/openssl/openssl.cnf
    password=******
    eposta_adresi=******

    $openssl ts -query -data $dosya_adi -no_nonce -out $dosya_adi.tsq
    $openssl ts -reply -queryfile $dosya_adi.tsq -out $dosya_adi.der -token_out -config $openssl_conf -passin pass:$password

    Gibi düzenlemeler ekledim. Yalnız openssl.cnf dosyasını modifiye etmeniz lazım. Sertifika falan oluşturmak /CA dizini göstermek gerekiyor.
    Onu da 5651 openssl ile imzalama diye aratıp aşağıdaki sitedeki makaleye göre yaptım. Mevcut pfsense de ki yollara göre düzenleme yapmanız gerekebilir.
    https://www.syslogs.org/openssl-ile-5651-sayili-kanun-geregi-log-imzalamak/

    Bu verdiğim linki ve yukarıdaki ufak hazırladığım zabazingo ile biraz uğraşarak çok rahat yapabileceğinizi düşünüyorum.

    İnşallah tipik hotspot projenize openssl'i de entegre edebilirsiniz.
    Not : 2.2.x sürümlerinde /usr/local/bin/openssl yerine openssl i direk yazıp kullanabilirsiniz.

    Saygılarımla,



  • Merhaba anlatımınız için teşekkürler kurulumu az önce pfsense 2.2.6 X86 üzerinde denedim kurulum sırasında komutlarda herhangi bir hata almadım php versiyonunu 5.5.46 kurdu soapta belirttiğiniz komutlar ile kurdum fakat hatlar almaktayım.
    kurulum adımlarında  2.1.3 kurulumdaki adımları izledim.

    ghost paneline girmek istediğimde bu adrese yönlendiriyor"https://192.168.1.1/ghost/Auth.php" ve aşağıdaki hatayı veriyor. halbuki db_settings.php deki username password doğru.

    Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /usr/local/www/ghost/inc/db_settings.php on line 18 Warning: Cannot modify header information - headers already sent by (output started at /usr/local/www/ghost/inc/db_settings.php:18) in /usr/local/www/ghost/Auth.php on line 19
    

    Tc bilgilerini girdiğimde doğrulama yapılamadı diyor ve System loglara baktığımda.

    Apr 2 12:29:45	
    Apr 2 12:29:45	radiusd[16765]: [sql] SQL query error; rejecting user
    Apr 2 12:29:45	radiusd[16765]: rlm_sql_getvpdata: database query error
    Apr 2 12:28:56	
    Apr 2 12:28:56	radiusd[16765]: [sql] SQL query error; rejecting user
    Apr 2 12:28:56	radiusd[16765]: rlm_sql_getvpdata: database query error
    Apr 2 12:28:33	radiusd[16765]: Ready to process requests.
    Apr 2 12:28:33	radiusd[13652]: Loaded virtual server <default>
    Apr 2 12:28:33	radiusd[13652]: rlm_sql (sql): Connected new DB handle, #4
    Apr 2 12:28:33	radiusd[13652]: rlm_sql_mysql: Starting connect to MySQL server for #4
    Apr 2 12:28:33	radiusd[13652]: rlm_sql (sql): Attempting to connect rlm_sql_mysql #4
    Apr 2 12:28:33	radiusd[13652]: rlm_sql (sql): Connected new DB handle, #3
    Apr 2 12:28:33	radiusd[13652]: rlm_sql_mysql: Starting connect to MySQL server for #3
    Apr 2 12:28:33	radiusd[13652]: rlm_sql (sql): Attempting to connect rlm_sql_mysql #3
    Apr 2 12:28:33	radiusd[13652]: rlm_sql (sql): Connected new DB handle, #2
    Apr 2 12:28:33	radiusd[13652]: rlm_sql_mysql: Starting connect to MySQL server for #2
    Apr 2 12:28:33	radiusd[13652]: rlm_sql (sql): Attempting to connect rlm_sql_mysql #2
    Apr 2 12:28:33	radiusd[13652]: rlm_sql (sql): Connected new DB handle, #1
    Apr 2 12:28:33	radiusd[13652]: rlm_sql_mysql: Starting connect to MySQL server for #1
    Apr 2 12:28:33	radiusd[13652]: rlm_sql (sql): Attempting to connect rlm_sql_mysql #1
    Apr 2 12:28:33	radiusd[13652]: rlm_sql (sql): Connected new DB handle, #0
    Apr 2 12:28:33	radiusd[13652]: rlm_sql_mysql: Starting connect to MySQL server for #0
    Apr 2 12:28:33	radiusd[13652]: rlm_sql (sql): Attempting to connect rlm_sql_mysql #0
    Apr 2 12:28:33	radiusd[13652]: rlm_sql (sql): Attempting to connect to radius@localhost:3306/radius
    Apr 2 12:28:33	radiusd[13652]: rlm_sql (sql): Driver rlm_sql_mysql (module rlm_sql_mysql) loaded and linked</default>
    

    ve sistemi restart ettiğimde pfsense panelde açılışta aşağıdaki gibi bir uyarı veriyor.
    pfSense has detected a crash report or programming bug. Click here for more information.

    Crash report begins.  Anonymous machine information:
    
    i386
    10.1-RELEASE-p25
    FreeBSD 10.1-RELEASE-p25 #0 c39b63e(releng/10.1)-dirty: Mon Dec 21 15:19:53 CST 2015     root@pfs22-i386-builder:/usr/obj.RELENG_2_2.i386/usr/pfSensesrc/src.RELENG_2_2/sys/pfSense_SMP.10
    
    Crash report details:
    
    PHP Errors:
    [02-Apr-2016 12:13:15 Europe/Istanbul] PHP Deprecated:  mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /usr/local/www/ghost/inc/db_settings.php on line 18
    [02-Apr-2016 12:22:31 Europe/Istanbul] PHP Deprecated:  mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /usr/local/www/ghost/inc/db_settings.php on line 18
    [02-Apr-2016 12:22:31 Europe/Istanbul] PHP Deprecated:  mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /usr/local/www/ghost/inc/db_settings.php on line 18
    [02-Apr-2016 12:22:36 Europe/Istanbul] PHP Deprecated:  mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /usr/local/www/ghost/inc/db_settings.php on line 18
    [02-Apr-2016 12:22:36 Europe/Istanbul] PHP Deprecated:  mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /usr/local/www/ghost/inc/db_settings.php on line 18
    [02-Apr-2016 12:22:57 Europe/Istanbul] PHP Deprecated:  mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /usr/local/www/ghost/inc/db_settings.php on line 18
    [02-Apr-2016 12:22:57 Europe/Istanbul] PHP Deprecated:  mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /usr/local/www/ghost/inc/db_settings.php on line 18
    [02-Apr-2016 12:24:54 Europe/Istanbul] PHP Deprecated:  mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /usr/local/www/ghost/inc/db_settings.php on line 18
    [02-Apr-2016 12:25:02 Europe/Istanbul] PHP Deprecated:  mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /usr/local/www/ghost/inc/db_settings.php on line 18
    
    Filename: /var/crash/minfree
    2048
    
    

    Verdiğiniz komutlar dışında Db balantısı yaparken captive portal üzerinde yada radius üzerinde yaptığınız farklı bir ayarlama var mı acaba siz hangi versiyonlarda test ettiniz benzer hatalar ile karşılaştınız mı ?

    Benim php sürümüm 5.3.30 yüklediğimiz soap sürümü 5.3.33 ama hiç bir sorun çıkmıyor. Bir kaç kere denedim.

    demişsiniz fakat verdiğiniz komutlarda php ve soap için 5.3.X değil 5.5.X sürümünü kuruyor sorun burdan kaynaklı olabilir mi ?



  • Selamlar,

    2.2.x sürümüyle birlikte Yeni PHP Sürümü geldiği için Ghost için kullandığımız MySQL fonksiyonları çalışmayacaktır. Aşağıda aldığınız hata dan bu yüzden kaynaklaniyor. Ghost'u PDO,mySQLi'ye göre upgrade etmek lazım.

     The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead 
    


  • samet bey ,

    bilgilendirme için teşekkür ederim ek olarak sormak istediğim bir şey var ghost u 2.1.5 üzerine kurduğumda hiçbir sorun vermeden kuruyor fakat loglarda aşağıdaki hatayı veriyor ve kullanıcıyı login etmiyor.
    radiusd[82624]: Login incorrect: [Fatal error: Class 'SoapClient' not found in /var/db/cpelements/captiveportal-tc.php on line 45] (from client captiveportal port 2000 cli 00:0c:29:70:65:e0)

    Mysql ve ya soap için aşağıdaki paketleri kuruyorum.

    pkg_add -rfi http://ftp-archive.freebsd.org/pub/FreeBSD-Archive/ports/i386/packages-8.3-release/All/php5-soap-5.3.10_1.tbz
    pkg_add -r http://ftp-archive.freebsd.org/pub/FreeBSD-Archive/old-releases/i386/8.3-RELEASE/packages/databases/mysql-server-5.5.21.tbz

    sorun neden olabilir acaba ?



  • Serdar bey merhaba,

    Yazarken hatalı yazmışım. Paket bilgilerini paylaşıyorum;

    [2.2.6-RELEASE][root@pfSense.localdomain]/root: php -v
    PHP 5.5.30 (cgi-fcgi) (built: Oct 10 2015 20:32:49)
    Copyright © 1997-2015 The PHP Group
    Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies
        with Suhosin v0.9.38, Copyright (c) 2007-2015, by SektionEins GmbH

    [2.2.6-RELEASE][root@pfSense.localdomain]/root: pkg info
    libxml2-2.9.3                  XML parser library for GNOME
    mysql55-client-5.5.46          Multithreaded SQL database (client)
    mysql55-server-5.5.46          Multithreaded SQL database (server)
    perl5-5.20.3_8                Practical Extraction and Report Language
    php55-soap-5.5.33              The soap shared extension for php
    pkg-1.6.4_1                    Package manager

    Kurulumda izlediğim yolu tek tek anlatayım;

    Öncelikle PfSense kurulumu yapıp ,
    pkg install yazıyorum.
    Daha sonra

    pkg install mysql55-client mysql55-server

    İle mysql kurulumunu tamamlıyorum.

    Fakat, ben tam döküman hazırlamadım. Daha sonrasında radius diye bir kullanıcı ve db oluşturup yetkilendirme yapmanız gerekiyor.
    Bunları Samet beyin dökümanında ki gibi gerçekleştirebilirsiniz. Ayrıca, Mysql Enable gibi işlemleri de oluşturun.

    Soapı da kurduktan sonra touch komutlarını girdiğinizden eminmisiniz? o komutlardan sonra makineye reboot atıp test yapın.

    Ayrıca, pfsense aynı anda bir web sunucusu gibi çalıştığı için www klasörüne test diye klasör açıp sıradan bir mysql denemesi ve sorgusu gerçekleştirin.
    tckimlikkontrol ettiğiniz dosyayı kopyalayıp db bağlantılarından çıkarın gelen sonucu ekrana çıkarıp soapın çalışıp çalışmadığını da test edebilirsiniz.

    Ama bana öyle geliyor ki sizin yaşadığınız hata kurulum konfigrasyonla ilgili gibi duruyor.



  • Merhaba ,

    Özelden konuyla ilgili bir mesaj yazdım ilgilenebilirseniz faydalı olacağını düşünüyorum.


Log in to reply