• Resolved artrotek

    (@artrotek)


    Hi,

    I installed Ninjafirewall but can’t activate Full WAF mode. Please help me.

    After installing Full WAF mode, nothing happens. Only the “you need to wait 5 minutes because of caching“ message at the top displays. I waited now 24hours & reloaded php. The problem must be somewhere else.

    I use Runcloud as SAAS Management panel with a Digital Ocean Ubuntu Server.
    The web app is a hybrid stack. Nginx as reverse proxy in Front of Apache (with .htaccess). Server Api is: FPM/FastCGI

    I chose the recommended install options: – Apache + CGI/ Fast CGI or PHPFPM
    – .user.ini

    I read this already:
    https://blog.nintechnet.com/troubleshoot-ninjafirewall-installation-problems

    & Tried to change the conf file like stated in this thread: https://www.ads-software.com/support/topic/full-waf-mode-with-runcloud-io

    But it still don’t works. I’m no expert and don’t know whats the matter.

    Is there a solution to activate Full WAF mode with Runcloud ? (Chances are high that I would buy 2 licenses, if it works)

    Kind Regards,
    Fabian Wagner

Viewing 7 replies - 1 through 7 (of 7 total)
  • Plugin Author nintechnet

    (@nintechnet)

    Try the troubleshooter script: https://nintechnet.com/share/wp-check.txt

    -Rename it to wp-check.php.
    -Upload it into your WordPress root folder.
    -Go to https://YOUR WEBSITE/wp-check.php.
    -Delete it afterwards.

    Then, paste the results here or upload a screenshot somewhere.

    Thread Starter artrotek

    (@artrotek)

    Thanks for the answer.

    Here we go:

    bplist00?_WebMainResource? _WebResourceMIMEType_WebResourceTextEncodingName^WebResourceURL_WebResourceFrameName_WebResourceDataZtext/plainUUTF-8_)https://nintechnet.com/share/wp-check.txtPO.?
    <?php
    /*
    +=====================================================================+
    | wp-check.php (c) NinTechNet – https://nintechnet.com/ |
    +=====================================================================+
    */
    $version = ‘1.9.1’;
    /*
    +=====================================================================+
    | NinjaFirewall’s (WP/WP+ Edition) troubleshooter script |
    +=====================================================================+
    | 1. Rename this file to “wp-check.php”. |
    | 2. Upload it into your WordPress root folder. |
    | 3. Go to https://YOUR WEBSITE/wp-check.php |
    | 4. Delete it afterwards. |
    +=====================================================================+
    */
    if (version_compare(PHP_VERSION, ‘5.4’, ‘<‘) ) {
    if (! session_id() ) {
    session_start();
    }
    } else {
    if (session_status() !== PHP_SESSION_ACTIVE) {
    session_start();
    }
    }
    error_reporting(0);
    ini_set(‘display_errors’, 0);

    ?><html>
    <head>
    <meta http-equiv=’Content-Type’ content=’text/html; charset=utf-8′ />
    <style>.tdb{background: none repeat scroll 0% 0% #F1F1F1}</style>
    </head>
    <body style=”font-family: ‘Open Sans’,sans-serif;”>
    <h3>NinjaFirewall (WP edition) troubleshooter</h3>
    <table width=”100%” border=”0″ cellpadding=”4″ cellspacing=”0″>
    <tr class=”tdb”>
    <th width=”30%”>HTTP server</th>
    <td>:</td>
    <td>
    <?php
    if (! empty( $_SERVER[‘SERVER_SOFTWARE’] ) ) {
    echo $_SERVER[‘SERVER_SOFTWARE’];
    } else {
    echo ‘<font color=”orange”>unknown</font>’;
    }
    ?>
    </td>
    </tr>
    <tr>
    <th width=”30%”>PHP version</th>
    <td>:</td>
    <td>
    <?php
    if ( defined(‘PHP_VERSION’) ) {
    if ( version_compare( PHP_VERSION, ‘5.5’, ‘<‘ ) ) {
    echo PHP_VERSION . ‘: <font color=”red”>Error, NinjaFirewall requires PHP 5.5 or greater</font>’;
    } else {
    echo PHP_VERSION;
    }
    } else {
    echo ‘<font color=”orange”>unknown</font>’;
    }
    ?>
    </td>
    </tr>
    <tr class=”tdb”>
    <th width=”30%”>PHP SAPI</th>
    <td>:</td>
    <td>
    <?php
    if ( defined(‘PHP_SAPI’) ) {
    echo strtoupper( PHP_SAPI );
    if ( defined(‘HHVM_VERSION’) ) {
    echo ‘ (HHVM detected)’;
    }
    } else {
    echo ‘<font color=”orange”>unknown</font>’;
    }
    ?>
    </td>
    </tr>
    <tr><th width=”30%”> </th><td> </td><td> </td></tr>

    <tr>
    <th width=”30%”>auto_prepend_file</th>
    <td>:</td>
    <td>
    <?php
    $auto_prepend_file = ini_get(‘auto_prepend_file’);
    if ( $auto_prepend_file ) {
    echo $auto_prepend_file;
    } else {
    echo ‘none’;
    }
    ?>
    </td>
    </tr>

    <?php
    if (! empty( $auto_prepend_file ) && file_exists( $auto_prepend_file ) ) {
    ?>
    <tr>
    <th width=”30%”>Loader’s path to firewall</th>
    <td>:</td>
    <?php
    $content = file_get_contents( $auto_prepend_file );
    if (! preg_match( “file_exists\('([^']+?)'\)“, $content, $match ) ) {
    ?>
    <td><font color=”red”>Cannot find the path!</font></td>
    <?php
    } else {
    ?>
    <td><?php echo htmlentities( $match[1] ) ?></td>
    <?php
    }
    ?>
    </tr>
    <?php
    }
    ?>

    <?php
    if ( @file_exists( $file = dirname(getenv(‘DOCUMENT_ROOT’) ) . ‘/.htninja’) ) {
    ?>
    <tr>
    <th width=”30%”>.htninja</th>
    <td>:</td>
    <td>
    <?php
    echo ‘found in ‘. dirname(getenv(‘DOCUMENT_ROOT’) ) . ‘/.htninja’;
    ?>
    </td>
    </tr>
    <?php
    include(dirname(getenv(‘DOCUMENT_ROOT’) ) . ‘/.htninja’);
    }
    ?>
    <tr class=”tdb”>
    <th width=”30%”>wp-config.php</th>
    <td>:</td>
    <td>
    <?php
    if ( file_exists( __DIR__ . ‘/wp-config.php’ ) ) {
    $wp_config = __DIR__ . ‘/wp-config.php’;
    echo ‘found in ‘. $wp_config;
    } elseif ( file_exists( dirname( __DIR__ ) . ‘/wp-config.php’ ) ) {
    $wp_config = dirname( __DIR__ ) . ‘/wp-config.php’;
    echo ‘found in ‘. $wp_config;
    } else {
    echo ‘<font color=”red”>Error: cannot find your wp-config.php file</font>’;
    echo ‘</td></tr></table></body></html>’;
    exit;
    }
    ?>
    </td>
    </tr>
    <?php
    if ($wp_config) {
    @include($wp_config);
    }
    ?>
    <tr>
    <th width=”30%”>NinjaFirewall detection</th>
    <td>:</td>
    <td>
    <?php
    if ( defined(‘NFW_STATUS’) ) {
    if (NFW_STATUS == 20) {
    $res = ‘NinjaFirewall WP Edition is loaded’;
    if ( defined(‘NFW_WPWAF’) ) {
    $res .= ‘ (WordPress WAF mode)’;
    } else {
    $res .= ‘ (Full WAF mode)’;
    }
    } elseif (NFW_STATUS == 21) {
    $res = ‘NinjaFirewall WP+ Edition is loaded’;
    if ( defined(‘NFW_WPWAF’) ) {
    $res .= ‘ (WordPress WAF mode)’;
    } else {
    $res .= ‘ (Full WAF mode)’;
    }
    } elseif (NFW_STATUS == 22) {
    $res = ‘NinjaFirewall Pro Edition is loaded’;
    } elseif (NFW_STATUS == 23) {
    $res = ‘NinjaFirewall Pro+ Edition is loaded’;
    } else {
    $res = ‘<font color=”red”>NinjaFirewall is loaded but returned error code #’. NFW_STATUS .'</font>’;
    }
    } else {
    $res = ‘<font color=”red”>NinjaFirewall is not loaded</font>’;
    }
    echo $res;
    ?>
    </td>
    </tr>

    <tr class=”tdb”><th width=”30%”> </th><td> </td><td> </td></tr>
    <tr>
    <th width=”30%”>Loaded INI file</th>
    <td>:</td>
    <td>
    <?php
    $res = php_ini_loaded_file();
    if ( $res ) {
    echo $res;
    } else {
    echo ‘none’;
    }
    ?>
    </td>
    </tr>
    <tr class=”tdb”>
    <th width=”30%”>user_ini.filename</th>
    <td>:</td>
    <td>
    <?php
    $res = ini_get(‘user_ini.filename’);
    if ( $res ) {
    echo $res;
    } else {
    echo ‘none’;
    }
    ?>
    </td>
    </tr>
    <tr>
    <th width=”30%”>user_ini.cache_ttl</th>
    <td>:</td>
    <td>
    <?php
    $res = ini_get(‘user_ini.cache_ttl’);
    if ( $res ) {
    echo $res . ‘ seconds’;
    } else {
    echo ‘none’;
    }
    ?>
    </td>
    </tr>
    <tr class=”tdb”>
    <th width=”30%”>User PHP INI</th>
    <td>:</td>
    <td>
    <?php
    $res = $count = ”;
    if ( file_exists(‘php.ini’ ) ) {
    $res = ‘php.ini found – ‘;
    $count++;
    }
    if ( file_exists(‘php5.ini’ ) ) {
    $res .= ‘php5.ini found – ‘;
    $count++;
    }
    if ( file_exists(‘.user.ini’ ) ) {
    $res .= ‘.user.ini found – ‘;
    $count++;
    }
    if ( $res ) {
    echo $res;
    if ($count > 1) {
    echo ‘<font color=”red”>Warning: you have more than one INI file</font>’;
    }
    } else {
    echo “none found”;
    }
    ?>
    </td>
    </tr>
    <tr><th width=”30%”> </th><td> </td><td> </td></tr>
    <tr>
    <th width=”30%”>DOCUMENT_ROOT</th>
    <td>:</td>
    <td>
    <?php
    $res = getenv(‘DOCUMENT_ROOT’);
    if ( $res ) {
    echo $res;
    } else {
    echo ‘<font color=”red”>Error: cannot find your DOCUMENT_ROOT</font>’;
    }
    ?>
    </td>
    </tr>

    <tr>
    <th width=”30%”>ABSPATH</th>
    <td>:</td>
    <td>
    <?php
    if (defined(‘ABSPATH’) ) {
    echo ABSPATH;
    $doc_root = rtrim( getenv(‘DOCUMENT_ROOT’), ‘/’ );
    if ( ABSPATH != $doc_root . ‘/’ ) {
    echo ‘ (ABSPATH != DOCUMENT_ROOT)’;
    }
    } else {
    echo ‘<font color=”red”>Warning: cannot find the ABSPATH</font>’;
    }
    ?>
    </td>
    </tr>
    <tr class=”tdb”>
    <th width=”30%”>WordPress version</th>
    <td>:</td>
    <td>
    <?php
    if (! empty($wp_version) ) {
    echo $wp_version;
    } else {
    echo ‘<font color=”red”>Warning: cannot find WordPress version</font>’;
    }
    ?>
    </td>
    </tr>
    <tr>
    <th width=”30%”>WP_CONTENT_DIR</th>
    <td>:</td>
    <td>
    <?php
    if (defined(‘WP_CONTENT_DIR’) ) {
    echo WP_CONTENT_DIR;
    } else {
    echo ‘<font color=”red”>Warning: cannot find WP_CONTENT_DIR</font>’;
    }
    ?>
    </td>
    </tr>
    <tr class=”tdb”>
    <th width=”30%”>Plugins directory</th>
    <td>:</td>
    <td>
    <?php
    if ( is_dir( WP_PLUGIN_DIR ) ) {
    echo WP_PLUGIN_DIR;
    } else {
    echo ‘<font color=”red”>Error: cannot find WordPress plugins directory</font>’;
    }
    ?>
    </td>
    </tr>
    <tr>
    <th width=”30%”>User Role</th>
    <td>:</td>
    <td>
    <?php
    if ( $current_user = @wp_get_current_user() ) {
    if (! empty($current_user->caps[‘administrator’]) ) {
    echo ‘Administrator’;
    } elseif (! empty($current_user->caps[‘editor’]) ) {
    echo ‘Editor’;
    } elseif (! empty($current_user->caps[‘author’]) ) {
    echo ‘Author’;
    } elseif (! empty($current_user->caps[‘contributor’]) ) {
    echo ‘Contributor’;
    } elseif (! empty($current_user->caps[‘subscriber’]) ) {
    echo ‘Subscriber’;
    } else {
    echo ‘Unknown role (or user not logged in)’;
    }
    } else {
    echo ‘<font color=”red”>Error: cannot find user role</font>’;
    }
    ?>
    </td>
    </tr>
    <tr class=”tdb”>
    <th width=”30%”>User Capabilities</th>
    <td>:</td>
    <td>
    <?php
    $cap = ”;
    if ( current_user_can( ‘manage_options’ ) ) {
    $cap.= “manage_options: OK – “;
    } else {
    $cap.= ‘<font color=”red”>Error: missing manage_options capability</font> – ‘;
    $mo_err = 1;
    }
    if ( current_user_can( ‘unfiltered_html’ ) ) {
    $cap.= “unfiltered_html: OK”;
    } else {
    $cap.= ‘<font color=”red”>Error: missing unfiltered_html capability</font>’;
    $mo_err = 1;
    }
    echo $cap;
    if (! empty( $mo_err ) ) {
    echo ‘<br />Make sure you are logged in to WordPress before running this script.’;
    }
    ?>
    </td>
    </tr>
    <tr>
    <th width=”30%”>Log dir permissions</th>
    <td>:</td>
    <td>
    <?php
    if (! is_dir( WP_CONTENT_DIR .”/nfwlog” ) ) {
    echo ‘<font color=”red”>Warning: cannot find NinjaFirewall log dir</font>’;
    } else {
    if ( is_writable( WP_CONTENT_DIR .”/nfwlog” ) ) {
    echo WP_CONTENT_DIR .”/nfwlog dir is writable”;
    } else {
    echo ‘<font color=”red”>Warning: ‘. WP_CONTENT_DIR . ‘/nfwlog dir is not writable</font>’;
    }

    }
    ?>
    </td>
    </tr>
    <tr>
    <th width=”30%”>Cache dir permissions</th>
    <td>:</td>
    <td>
    <?php
    if (! is_dir( WP_CONTENT_DIR .”/nfwlog/cache” ) ) {
    echo ‘<font color=”red”>Warning: cannot find NinjaFirewall cache dir</font>’;
    } else {
    if ( is_writable( WP_CONTENT_DIR .”/nfwlog/cache” ) ) {
    echo WP_CONTENT_DIR .”/nfwlog/cache dir is writable”;
    } else {
    echo ‘<font color=”red”>Warning: ‘. WP_CONTENT_DIR . ‘/nfwlog/cache dir is not writable</font>’;
    }

    }
    ?>
    </td>
    </tr>
    </table>
    <p>NinjaFirewall (WP edition) troubleshooter v<?php echo $version ?></p>
    </body>
    </html>
    (>\k?????? /[

    Plugin Author nintechnet

    (@nintechnet)

    This is the script code ??
    You need to rename it to wp-check.php first, and then to run it.

    Thread Starter artrotek

    (@artrotek)

    Hi,

    i renamed it to .php on my local maschine, uploaded it to my web application root Folder (the Folder with all the wp-Files & wp admin/content/includes-Folders – right?)
    then typed it in the browser like this: https://mydomain/wp-check.php

    I did it again and got the same script code. I don’t know whats the problem…

    I have 3 websites and today i found out that on 1 Site it is actually in FULL WAF mode, but on the other two Sites it isn’t. All 3 Sites are on the same server and have the same settings. Little bit confusing, because if it works on 1 site, it should work on the others too.

    Do you have any ideas ?

    Need help, file info

    Plugin Author nintechnet

    (@nintechnet)

    WordPress root folder is the folder where is your main index.php.
    If you see the script code that means your have some PHP configuration issue. Check your php.ini, .user.ini or .htaccess. Maybe an encoding issue (caching plugin etc) or some weird rules?

    Thread Starter artrotek

    (@artrotek)

    Yes root folder is correct.

    I finally found the fault – my fault.

    The path to my runcloud php-extra configuration wasn’t 100% right in all my conf files. I forgot to change the web app name in the other 2 conf files.

    For all people on runcloud having the same problem – Paste this (with your own path) in your web application conf files located under etc/php-extra

    php_admin_value[auto_prepend_file] = /your/path/to/ninjafirewall.php

Viewing 7 replies - 1 through 7 (of 7 total)
  • The topic ‘Can’t activate Full WAF on Runcloud Hybrid Stack’ is closed to new replies.