이 가이드에서는 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" 설정 섹션에서 활성화되어 있다면, 웹사이트를 모니터링하기 시작합니다. 설정을 올바르게 구성했는지 확인하세요.