H2O 2.1以降からアクセス制御が大分簡単にかけるようになったので
server-statusページに対して行った。
server-status.rbというファイルでACLを書いていく
404で返したかったのでdenyではなくrespondを使っています。
paths: /server-status: mruby.handler-file: /etc/h2o/mruby/server-status.rb status: ON
require "trie_addr.rb" trie = TrieAddr.new.add(["許可するIP"]) acl { allow { path.start_with?("/server-status") } respond(404, {}, ["File Not Found"]) { !trie.match?(addr) } }
参考
Access Control – Configure – H2O
H2O x mrubyで人はどれだけ幸せになれるのか
H2O server-statusページへのアクセス制御
最近のコメント