中国からの大量アクセス(DDos)に泣かされた話
中国からのアクセスは恐ろしい..
負荷が高いサーバーが有り原因を見てみるとアクセスが集中しているような状況だった。詳しく調べてみると、とあるURLへのアクセスが集中している
/otn/leftTicket/queryA?leftTicketDTO.train_date=2018-09-30&leftTicketDTO.from_station=CDP&leftTicketDTO.to_station=BDP&purpose_codes=ADULT
このURLでめちゃくちゃアクセスされている。接続元のIPアドレスをしらべると中国からのアクセス。teratermを使ってtailコマンドで確認すると、ものすごい勢いでアクセスがきていた(><)なんて恐ろしい…
こんなURLはサイト上に存在しておらず、どういった経路でアクセスされているのかは全くの謎。しかし、対策をしないとapacheが落とされるのは確実なので、ブロックすることにした。
接続数を調べてブロックする
apacheへの接続数を調べると多くて4000とかアクセスされてるし(T_T)当然耐えきれず、サイトがダウンしているように見えるという…
接続数の調べ方 → netstat -an | grep :443 | wc -l
とりあえずiptablesで中国からのアクセスを全てブロックしapacheまで届かせないように対応することにした。
↑のサイトが非常に役に立ちました。サイトの内容を参考にしてiptablesで中国のIPリストを一括でブロック。
一件落着!かと思いきや、完全には対応しきれておらず。。。
WEBサイトのレスポンス低下
WEBサイトのレスポンスが低下してしまったのです。まさに泣きっ面に蜂(><)おそらく、iptablesに大量のIPアドレスを登録したのが原因ではなかろうか。5000くらい登録したのでフィルタリングに時間かかるようになったのでは?
と思いまして、IPアドレスを厳選して登録し直す作業をしているのです。iptablesの設定を変えたからか、FTPも繋がらなくなったし。なんなんだいったい?と言いたくなるよ。ホントに。
結局、アクセスログからIPアドレスを抽出してリストを作成してiptableでブロックしたところ、性能も改善して不正アクセスも止まりました。
余計なものまでブロックしすぎてたということですな。リストは自作に限ります。手間を惜しんだらダメという当たり前な教訓です。
アクセスログから対象のIPアドレスを抽出
apacheのアクセスログでアクセス元のIPアドレスを抽出。
tail -f ssl_access_log | grep [l]eftTicket | awk '{print $1}'
teratermのログに出力したものを加工プログラムを経由してiptablesのコマンドを生成する。
生成したコマンドをまとめて実行!の繰り返し。
ある程度繰り返しているとアクセスが落ち着いてきたのがわかる。
前向きに捉えるよ
腐っても仕方ない。いちおう僕もインフラエンジニアの端くれ。iptablesとFTPとかいろいろ覚えれるチャンスだと思って。前向きに捉えてなんとかするさ!
こういうとき、インフラ担当一人は辛いなぁ。でも、仕方ない。頑張るのですよ!!
サーバーに来る前のルーターレベルで対応してもらえると助かるのだが、使っているサーバーではそういうのはやっていないらしい。
サーバー業者によってはDDOS対策されているものあるのだとか。チョイスミスったかw
明日には落ち着きますように!
ディスカッション
コメント一覧
まだ、コメントがありません