サーバーがプロキシとして使用されているか、悪意のある要求をしていますか?

サーバーがプロキシとして使用されているか、悪意のある要求をしていますか?

AWS EC2 に Ubuntu、Apache、Passenger、Rails 4 プロジェクトがあります。

私はフルスタック開発者であり、プロジェクトのセキュリティとサーバー側に初めて触れました。 UbuntuとApacheを初めて設定することで、以前はHerokuを使ったことがあります。

最近「ユーザーが多すぎて」サイトがダウンしているため、サイトを確認したとき

tail -f log/production.log

私はランダムIPから私のホームページへの継続的なGETリクエストを受信して​​いることを発見しました。リクエストは停止せず、引き続き私のサーバーにあふれます。

I, [2015-04-02T16:38:47.692152 #11851]  INFO -- :   Rendered layouts/_google_analytics.html.erb (0.1ms)
I, [2015-04-02T16:38:47.692709 #11851]  INFO -- : Completed 200 OK in 9ms (Views: 8.6ms | ActiveRecord: 0.0ms)
I, [2015-04-02T16:38:49.073504 #11851]  INFO -- : Started GET "/" for 54.252.254.204 at 2015-04-02 16:38:49 +0000
I, [2015-04-02T16:38:49.077260 #11851]  INFO -- : Processing by HomeController#home_page as */*
I, [2015-04-02T16:38:49.084489 #11851]  INFO -- :   Rendered home/_sign_up_modal.html.erb (1.6ms)
I, [2015-04-02T16:38:49.084799 #11851]  INFO -- :   Rendered home/home_page.html.erb within layouts/application (6.2ms)
I, [2015-04-02T16:38:49.085349 #11851]  INFO -- :   Rendered /home/ubuntu/.rvm/gems/ruby-2.1.5/gems/stripe-rails-0.3.1/app/views/stripe/_js.html.erb (0.1ms)
I, [2015-04-02T16:38:49.086550 #11851]  INFO -- :   Rendered layouts/_google_analytics.html.erb (0.0ms)
I, [2015-04-02T16:38:49.087121 #11851]  INFO -- : Completed 200 OK in 10ms (Views: 8.8ms | ActiveRecord: 0.0ms)
I, [2015-04-02T16:38:50.166665 #11851]  INFO -- : Started GET "/" for 107.23.255.12 at 2015-04-02 16:38:50 +0000
I, [2015-04-02T16:38:50.169943 #11851]  INFO -- : Processing by HomeController#home_page as */*
I, [2015-04-02T16:38:50.176601 #11851]  INFO -- :   Rendered home/_sign_up_modal.html.erb (1.4ms)
I, [2015-04-02T16:38:50.176924 #11851]  INFO -- :   Rendered home/home_page.html.erb within layouts/application (5.5ms)
I, [2015-04-02T16:38:50.177425 #11851]  INFO -- :   Rendered /home/ubuntu/.rvm/gems/ruby-2.1.5/gems/stripe-rails-0.3.1/app/views/stripe/_js.html.erb (0.1ms)

私のサーバーはプロキシとして使用されていますか、それとも攻撃を受けていますか?これがもう発生しないようにするにはどうすればよいですか?

使ってみようこのガイドしかし、ご覧のように私の他の投稿、有効な要求を含むすべての要求を停止する以外は成功しませんでした。

/etc/apache2/sites-available/000-default.conf

<VirtualHost *:80>
  ServerName ec2-54-###-###-##.us-west-2.compute.amazonaws.com
  # !!! Be sure to point DocumentRoot to 'public'!
  DocumentRoot /etc/projects/myapp/public

    <Directory /etc/projects/myapp/public>
            #Options FollowSymLinks
            Options Indexes FollowSymLinks Includes ExecCGI
            AllowOverride All
            Order deny,allow
            Allow from all
    </Directory>
  </VirtualHost>

助けてください!私が提供した用語や情報が足りない場合はお詫び申し上げます。今後ともより良い情報とご案内をさせていただきますよう努力いたします。

答え1

これは難しい状況です。これらの要求は悪意のあるパターンと一致しているように見えるため、サーバーから悪意のある要求をするIPをブロックする必要があります。

今日では、これを行うことができるあらゆる種類の高度なハードウェアがあります。これを実行できない場合は、ファイアウォールルールまたはApacheルールを手動で作成して、特定のIPからの要求を無視またはブロックすることができます。

サーバーリソースの場合は、Apacheよりファイアウォールをブロックすることをお勧めします。 tcpdumpを使用すると、サーバーを攻撃するすべてのIPを表示できます。たとえば、次のようになります。

tcpdump -nnポート80 | awk '{print$3}' | '{Print $1,$2,$3,$4}' |abcd を読むときに echo $a.$b.$c.$d >> newlist.txt を実行します。

*ポート443に対して同じジョブを実行できます。

停止するまで実行され、サーバーにアクセスするすべてのIPをファイルにダンプします。次に、次のように実行します。

猫鳥list.txtソート|

最初のオネライナーを実行したときに各IPがサーバーにアクセスした回数を示すソートされたリストがあります。これにより、自分に悪意のある要求の数を決定でき、何度も実行すると違反者を簡単に識別できます。これで、これらのIPを取得してファイアウォールからブロックする必要があります。

これはDDOSを守る残酷で難しい方法です。誰かがあなたをひどく攻撃しても機能しませんが、この場合、サーバーがクラッシュする可能性があります。

素晴らしいネットワークハードウェアがなければ、攻撃から実際に防ぐ方法はありません。ただし、これらの原則を使用すると、少なくともファイアウォールのルール制限に達するまで自分自身を保護できます。このような場合は、個人ごとにブロックするのではなく、範囲ごとにブロックしてください。見ているhttps://www.arin.net/Google では、運が良ければ、ほとんどのクリックが特定の地域で発生することがわかります。ロシア、中国、東ヨーロッパこの場合、サーバーのパフォーマンスが低下したり、サイトに盗まれたりする可能性のある貴重な情報がある場合は、ゾーン全体をブロックすることをお勧めします。

関連情報