このガイドでは、YiiアプリケーションにShieldonファイアウォールを実装する方法についてのアイデアを提供します。
PHP Composerを使用します:
composer require shieldon/shieldon
これにより、Shieldonに必要な依存関係もインストールされます:
public/index.php
の次の行よりも前に、以下のコードを追加します:
例:
/*
|--------------------------------------------------------------------------
| Shieldonファイアウォールの実行
|--------------------------------------------------------------------------
|
| Shieldonファイアウォールは、ウェブサイトに寄せられるすべてのHTTPリクエストを監視します。
| Yiiの初期化の前にShieldonファイアウォールを実行すると、Yiiの組み込み機能との競合を回避できます。
*/
if (isset($_SERVER['REQUEST_URI'])) {
$storage = __DIR__ . '/../runtime/shieldon';
$firewall = new \Shieldon\Firewall\Firewall();
$firewall->configure($storage);
// コントロールパネルのベースURL
$firewall->controlPanel('/firewall/panel/');
$response = $firewall->run();
if ($response->getStatusCode() !== 200) {
$httpResolver = new \Shieldon\Firewall\HttpResolver();
$httpResolver($response);
}
}
FirewallPanelController
という名前のコントローラを作成します。
例:
<?php
namespace app\controllers;
use yii\web\Controller;
class FirewallController extends Controller
{
public function beforeAction($action)
{
$this->enableCsrfValidation = false;
return parent::beforeAction($action);
}
/**
* ファイアウォールパネルのエントリーポイント。
*
* @return string
*/
public function actionPanel()
{
$panel = new \Shieldon\Firewall\Panel();
$panel->entry();
}
}
config/web.php
ファイルでenablePrettyUrl
がtrueに設定されていることを確認してください。
例:
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
'firewall/panel/' => 'firewall/panel',
'firewall/panel/<slug:.*>' => 'firewall/panel',
],
],
以上です。
ブラウザで/firewall-panel
を訪れることでファイアウォールパネルにアクセスできます。
https://yourwebsite.com/firewall-panel
デフォルトのログインはshieldon_user
で、パスワードはshieldon_pass
です。ファイアウォールパネルにログインした後は、まずログインとパスワードを変更することをお勧めします。
Shieldonファイアウォールが「Daemon」設定セクションで有効になっている場合、ウェブサイトのモニタリングが開始されます。設定が正しく行われていることを確認してください。