2014/06/29

RailsアプリケーションにIPアドレス制限をかける

IPアドレスのwhite/black listでアクセス制限を行うalpacaを試してみる。

READMEの通り,Gemfileに以下の一行を追加し,

gem 'alpaca'

bundleを実行。

bundle install

以下のコマンドを実行すると config/alapca.yml が生成される。

rails generate alpaca:install

config/application.rb の class Application < Rails::Application ブロックの最後に以下の一行を追加。

config.middleware.use Rack::Alpaca

config/alpaca.yml の設定では,whitelist: のみ定義する場合でも blacklist: を省略するとalpacaのエラーになるので要注意。

whitelist:
- xx.xx.xx.xx.
blacklist:
- 103.13.152.0/22
default: deny

エラー例:

blacklist: の定義がない場合
undefined method `map' for nil:NilClass (NoMethodError)

blacklist: にホスト名を定義した場合
invalid address (IPAddr::InvalidAddressError)

0 件のコメント: