この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 14709|答える: 2

[ウェブ] nginxはDDoS保護されているhttp_user_agent

[リンクをコピー]
掲載地 2016/12/20 10:37:01 | | |

フロントエンドのスクイッドリバースプロキシからnginxへ
nginxはDDoS保護されているhttp_user_agent
まず、アクセスログを確認してhttp_user_agentに見つかった疑わしい訪問の特徴を特定し、それをフィルタリングします
「Mozilla/4.0(互換; MSIE 5.01; Windows NT 5.0; MyIE 3.01)Cache-Control: no-store, must-revalidate"
もし($http_user_agent ~ must-revalidate) {
リターン503;
}
#这样就返回503错误
所在地 = / {
include proxy.conf;
if( $http_user_agent ~* "MSIE 5.01" ) {
proxy_pass http://www.qq.com;
#access_log /usr/local/nginx/logs/k.log main;
      }
proxy_pass http://windows.abc.com;
}
#判断一下user エージェント、もしMSIE 5.01なら、別の場所に投げてみて、例えば www.qq.com を指して抵抗できるか試すようにしてください、笑
proxy_hide_header キャッシュ制御;
最後に、キャッシュコントロールに戻り、ページを訪れます
これでリンクはフロントエンドのスクイッドにキャッシュされ、アプリケーションサーバーはクラッシュしません
#########################################################
nginxにおける位置モジュールのパラメータの詳細な記述
Nginxのロケーションには以下のマッチがあります:
1. = このクエリに厳密に一致します。 もし見つかったら、捜索をやめてください。
2. ^~ パスの接頭辞を一致させ、見つかった場合は検索を停止します。
3. ~ は大文字に応じた正則一致です   
4. ~* は大文字に区別されないマッチです
5. !~ と !~* はそれぞれ大文字を区別する不一致と大文字を区別しない不一致です

ファイルおよびディレクトリの照合
* -f と !-f はファイルの存在を判定するために使われます
* -d と !-d はディレクトリが存在するかどうかを判定するために使われます
* -e と !-e はファイルやディレクトリが存在するかどうかを判定するために使われます
* -xと!-xはファイルが実行可能かどうかを判定するために使われます

利用可能なグローバル変数の一部
$args
$content長さ
タイプ$content
$document_ルート
$document_uri
$host
$http_user_agent
$httpクッキー
$limitレート
$request body_file
$request_メソッド
$remote_addr
$remote_port(埠)を
$remote_user
$requestファイル名
$request_uri
$query弦
$scheme
$serverプロトコル
$server_addr
$server_name
$server_port(ポート)
$uri

書き換え後のフラグは以下のようになります:
前の
休憩
リダイレクト
永久

proxy_pass http://localhost:80;
proxy_set_header ホスト$host;
転送後に自動的にドメイン名情報を変更することができます




先の:解放されたオブジェクトにアクセスできないためのC#の回避策
次に:PowerShellは複数のスペースを1つのスペースに変換して余分なスペースを除去します
 地主| 掲載地 2016/12/20 10:37:25 |

サーバーはccの影響を受けます(攻撃者はプロキシサーバーを使って被害ホストへの正当なリクエストを生成し、DDOSを実行し、それをcc(ChallengeCollapsar)と呼ぶ名前で偽装します。 )攻撃をして、nginxは簡単に対処できます。

CC攻撃者のuseragentは一般的に固定されているため、私たちはnginxを使ってuseragatetを判断し、CC攻撃を処理します。
nginxサーバー構成において

(1) Useragentは特定の特徴に等しい(大文字を区別しない)
if ($http_user_agent ~* OliveHC3){
   リターン403;
}
(2) Useragentには特定の機能が含まれています(大文字を区別しない)
if ($http_user_agent ~* (*OliveHC3*)){
   リターン403;
}
(3) Useragentは空の機能である
if ($http_user_agent ~ ^$){
        リターン403;
}


こうして攻撃は403号線に戻りました。
 地主| 掲載地 2016/12/20 11:03:41 |

1. $remote_addrおよび$http_x_forwarded_forはクライアントのIPアドレスを記録するために使われます。
2.$remote_user:クライアントのユーザー名を記録するために使用;
3.$time_local:アクセス時間とタイムゾーンを記録するために使用;
4.$request:リクエストを記録するためのURLおよびHTTPプロトコル;
5.$status :リクエストのステータスを記録するために使用; 成功は200、
6.$body_bytes_s ent: クライアントに送信されるファイルの本文の内容の大きさを記録します。
7.$http_referer:そのページのリンクからの訪問を記録していました。
8.$http_user_agent: クライアントブラウザの関連情報を記録します。
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com