armorこんにちは角田(tsunoda)です。ゼノバース2のレイドボス強ぇ~。Armorの組み合わせでIPをbanしたのでご紹介します。fail2banとはfail2banとは、SSH等の不正アクセス(ログイン失敗)を検知し、一定時間そのIPアドレスからのアクセスをブロックするソフトです。通常、fail2banは単体では使用せず、iptablesやfirewalldとともに使用します。Armorを使用した次第です。Balancerの新しいセキュリティ対策サービスです。主な機能は以下になります。IP制限(whitelist,bkacklist)まだbetaなので無料です☆Policy,ルールの作成CloudArmorのPolicyとルールを作成してみます。sample-policyPolicyが作成されました。次にルールの作成を行なってみましょう。xxx.xxx.xxx.xxx/32・1000は優先度です。数字が低いほど優先度が上です。・–action許可、拒否の設定ができます。拒否ステータスは以下が選択可能です。403(サクセス拒否)404(ファイル未検出)502(不正なゲートウェイ)・–security-policy対象となるsecurity-policyの選択。・–src-ip-ranges許可または拒否したいIP。ルールが作成されました。unbanされたら拒否ルールを削除する。いう一連の流れをfail2ban側で設定します。今回はnginxを使用しています。ポリシールールの作成、削除のスクリプトを作成しておきます。/test/make-policy.sh/test/delete-policy.sh作成したスクリプトをfail2ban/action.d/nginx-dos.confこのファイルに登録しておきます。/test/delete-policy.shさらにそのnginx-dos.confをfail2ban/jail.localのnginx-dosルールのactionに登録する。nginx-dos10秒の間に15回同じIPからアクセスが来たらそのIPを180秒banします。すると、banされればactionbanに登録したmake-policy.shが、unbanされればactionunbanに登録したdelete-policy.shが実行され、ポリシールールの作成、削除が可能になります。Armorを色々触って得た特徴をご紹介します。・反映に時間がかかる。ルールの作成、削除が実際に反映されるのに少し時間がかかりました。反映時間がまちまちなので30~60秒ぐらいbantimeとズレる事があります。・同時にルールの作成、削除ができない。ポリシールールを作成、または削除していると、その間での新たな作成、削除はエラーで返ってきちゃいます。まとめ反映までに時間がかかるので、その間に負荷が上がってしまう事が考えられますが、LB越しでのfail2banとの併用は大量のbotアクセスに対する対策になります。LBでの拒否なので、今まではサーバ毎にバラバラにカウントしていたものが、1台検知したら他のサーバでもbanできます。betaで無料ですが、logは貯まるのでその料金は気をつけなきゃです。Armorを合せて使ってみるのは面白かったです。botアクセスによるサーバ負荷にお困りの方には一つの選択肢になるのではと思います。