kazu22002の技術覚書

PHPer, Golang, AWS エンジニアの日々

F5アタックと戦ってみる by 会社の人

F5アタック、DoS攻撃DDoS攻撃の対策と戦っていた。(会社の人が)

itpro.nikkeibp.co.jp

これがあるとWEBサーバー、DBサーバーともにリソースが足りなくなりサービスが維持できなくなる。

サービス全体が止まってしまう。

これはサービスを展開する会社としては、痛いところです。

DoSでどうでもいいIPであればファイアウォールでIPではじく対策もできる。

qiita.com

そして会社の人が、対策を入れたのですが、なんか面白そうな技術がいっぱいあったので予想して書いてみます。。。

会話と動きからの考察、予想のため、まともには使えないので、すみません。

今回の事情

サービスを利用している人が大量アクセス

今回はアクセスログを見てみると、利用者からの大量アクセス。

しかも認証した後なので、確実だと思われる。そして悪意もない。

とりあえず見解としてF5のところになにかが置かれてしまっていた状況とかだと予想した。

こんなのどうやって防げばいいんだ??

プログラムで大量アクセスIPから防ぐ方法も考えたが、プログラム部分まで到達している時点ですでに処理は走るわけで、あまり効果を得られるとは思えない。

あとはいろんなサービスすべてに入れるのが大変。これは現実的ではないので、辞めました。

というわけで、ミドルウェアの時点で防ぎたい。

apacheのモジュール

apacheのモジュールであるか探してみるとあった。

qiita.com

やっぱあるもんですよね。さすがapacheです。

かなり十分な機能みたいですね。

時間での許容量を超えた場合に、エラーページに飛ばすことができる。

十分な要件です!!

ただなぜか今回の場合はダメだったみたいです。

理由はロードバランサーが入っているため、それぞれのサーバーへ負荷分散されてしまい効果が薄くなってしまうため、見送りだったみたい。

やり方はあるのかもしれないが、今回は別の方法を採用。

Nginxでの機能を利用

Nginxは標準でDos対策の機能があるみたいですね。

nginxでのdos攻撃対策 | TECH

たぶんこのあたりを採用したのだと思われる。「バースト」とかの単語がでていたので。

今回、対策した内容をちゃんと聞いていなかったので、よくわかっていないです。

ただミドルウェアの構成としては

LB → Nginx → Apache → プログラム部分

という構成であることは把握しているのですが、どんな技術なのかな??

すごく気になっているので、今度ちゃんと聞いてみたいです。

やろうと思えばいろいろできるものですねー。

ハイパフォーマンスHTTPサーバ Nginx入門

ハイパフォーマンスHTTPサーバ Nginx入門