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…
コメント