phpMyAdmin等、管理者系のサイトにはアクセス制限をかけて指定したIPアドレス以外からは接続できないようにする
rbファイル作成
適当な箇所にrbファイルを作成する
vi /etc/h2o/ip.rb
ALLOW_IPS = %w{
127.0.0.1
xxx.xxx.xxx.xxx ← アクセスを許可するIPアドレス
}
class Acl
def call(env)
if ALLOW_IPS.include? env['REMOTE_ADDR']
[399, {}, []]
else
[403, {'Content-Type' => 'text/plain;charset=utf-8'}, ['Forbidden']] ← 許可アドレス以外にはforbiddenを表示
end
rescue => e
$stderr.puts e
end
end
Acl.new
h2o.conf編集
IPアドレス制限をかけるドキュメントールートの箇所にrbファイルのパスを指定する
例えば今回の場合は mruby.handler-file: /etc/h2o/ip.rb となる
user: h2o
gzip: ON
file.index: [ 'index.html', 'index.php' ]
# PHPの設定
file.custom-handler:
extension: .php
fastcgi.connect:
port: /var/run/php-fpm/www.sock
type: unix
hosts:
"xxx.xxxxxx.com:80":
listen:
port: 80
paths:
"/":
file.dir: /var/www/html
redirect:
url: /index.php/
internal: YES
status: 307
"/phpMyAdmin/":
file.dir: /usr/share/phpMyAdmin
----↓ここから下を追加↓----
mruby.handler-file: /etc/h2o/ip.rb
サービスの再起動
systemctl restart h2o systemctl status h2o
参考

H2Oを実戦投入するためのいろいろ - Qiita
下記で大体戦えるservice h2o reloadで反映かな。TOCBasic認証IP制限特定コンテンツの403対応 .gitなどBasic認証@h2o.cfg mruby.hand…

コメント