SiteGuard Server EditionでIPアドレスベースのアクセス制限を行う
SiteGuard Server Editionを使って、IPアドレスベースのアクセス制限を行えると聞いたので検証してみます。
検証環境
- Vagrant(vbox)
- apache2.4
- SiteGuard Server Edition 5.00-1
インストール
マニュアルに従ってインストールします。
Vagrant.configure("2") do |config| config.vm.box = "bento/centos-7" config.vm.synced_folder "./data", "/vagrant" config.vm.network "private_network", ip: "192.168.56.10" config.vm.provision "shell", inline: <<-SHELL yum -y update yum -y install kernel-headers kernel-devel gcc httpd glibc perl wget unzip openssl make file java-1.8.0-openjdk java-1.8.0-openjdk-devel fontconfig policycoreutils-python mod_ssl timedatectl set-timezone Asia/Tokyo localectl set-locale LANG=ja_JP.utf8 systemctl start httpd cd /vagrant/ && yum localinstall -y ./siteguard-server-edition.rpm cd /opt/jp-secure/siteguardlite/ && echo y | sudo ./setup.sh SHELL end
(dockerで作ってもよかったかも)
カスタムシグネチャの設定
デフォルトで設定してあるカスタムシグネチャのサンプルを参考に設定してみます。
設定ファイル /opt/jp-secure/siteguardlite/conf
はこんな感じ
ON FILTER:60 sample-02 PATH PCRE_CASELESS,COUNTER(10:3) /login\.php 頻度判定で、パスワードアタックを行う接続元をフィルタする
この設定では、 /login.php
へ10秒間に3回以上アクセスするとブロックされるようになります。
ブロックしてみる
ローカルのURL https://192.168.56.10/login.php
に10秒間に3回以上アクセスしてみます。
こんな感じでブロックされました。
ログにはこんな感じで書き込まれます。
1655071402.297996 0 192.168.56.1 TCP_MISS/000 0 GET http://192.168.56.10/login.php - DIRECT/192.168.56.10 - DETECT-STAT:WAF:RULE_SIG/PART_PATH//CUSTOM//sample-02::/login.php:: ACTION:FILTER: JUDGE:FILTER:0: SEARCH-KEY:1655071402.297996.0:
まとめ
今回はローカルでSiteGuard Server EditionのインストールとIPアドレスベースのアクセス制限を行う検証をしました。 カスタムシグネチャを一つ追加するだけで簡単に設定できることがわかりました。
今回はこの辺で