質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.91%

総当たり攻撃でしょうか?

解決済

回答 4

投稿 編集

  • 評価
  • クリップ 2
  • VIEW 841

shaketonori

score 17

さくらインターネットのVPSを使用してサーバーを運用しています。
Webサーバーは「nginx」(1.18.0)です。
内部使用なので先頭画面にBasic認証をかけています。

たまたまエラーログを確認しようと tail -f で error.log を開いたところ
以下のようなログが表示されていました。
ほぼ1秒に1件ずつ、次々に表示され止まりません。

いろいろなユーザー名を使用してアクセスを試みているようです。
これは総当たり攻撃をかけられているということでしょうか?

気持ち悪いので、nginxを一旦ストップしたのですが、リスタートしたとたんに
ログも出力を再開しました。

本当に総当たり攻撃なのか、そうであったらどのように対処したらよいか
ご指導ください。

よろしくお願いします。

2020/07/07 12:23:44 [error] 17555#17555: *10 user "speedy" was not found in "/etc/nginx/.htpasswd", client: 103.145.12.200, server: www.sampleabc.com, request: "GET /level/15/exec/- HTTP/1.1", host: "202.181.111.999", referrer: "http://202.181.111.999/"
2020/07/07 12:23:45 [error] 17555#17555: *11 user "speedy@speedy" was not found in "/etc/nginx/.htpasswd", client: 103.145.12.200, server: www.sampleabc.com, request: "GET /level/15/exec/- HTTP/1.1", host: "202.181.111.999", referrer: "http://202.181.111.999/"
2020/07/07 12:23:47 [error] 17555#17555: *12 user "speedy@speedy" was not found in "/etc/nginx/.htpasswd", client: 103.145.12.200, server: www.sampleabc.com, request: "GET /level/15/exec/- HTTP/1.1", host: "202.181.111.999", referrer: "http://202.181.111.999/"
2020/07/07 12:23:48 [error] 17555#17555: *13 user "spender" was not found in "/etc/nginx/.htpasswd", client: 103.145.12.200, server: www.sampleabc.com, request: "GET /level/15/exec/- HTTP/1.1", host: "202.181.111.999", referrer: "http://202.181.111.999/"
2020/07/07 12:23:49 [error] 17555#17555: *14 user "spender" was not found in "/etc/nginx/.htpasswd", client: 103.145.12.200, server: www.sampleabc.com, request: "GET /level/15/exec/- HTTP/1.1", host: "202.181.111.999", referrer: "http://202.181.111.999/"
2020/07/07 12:23:50 [error] 17555#17555: *15 user "sphichet" was not found in "/etc/nginx/.htpasswd", client: 103.145.12.200, server: www.sampleabc.com, request: "GET /level/15/exec/- HTTP/1.1", host: "202.181.111.999", referrer: "http://202.181.111.999/"
2020/07/07 12:23:52 [error] 17555#17555: *16 user "sphichet" was not found in "/etc/nginx/.htpasswd", client: 103.145.12.200, server: www.sampleabc.com, request: "GET /level/15/exec/- HTTP/1.1", host: "202.181.111.999", referrer: "http://202.181.111.999/"
2020/07/07 12:23:53 [error] 17555#17555: *17 user "spk" was not found in "/etc/nginx/.htpasswd", client: 103.145.12.200, server: www.sampleabc.com, request: "GET /level/15/exec/- HTTP/1.1", host: "202.181.111.999", referrer: "http://202.181.111.999/"
2020/07/07 12:23:54 [error] 17555#17555: *18 user "spk" was not found in "/etc/nginx/.htpasswd", client: 103.145.12.200, server: www.sampleabc.com, request: "GET /level/15/exec/- HTTP/1.1", host: "202.181.111.999", referrer: "http://202.181.111.999/"
2020/07/07 12:23:55 [error] 17555#17555: *19 user "spl" was not found in "/etc/nginx/.htpasswd", client: 103.145.12.200, server: www.sampleabc.com, request: "GET /level/15/exec/- HTTP/1.1", host: "202.181.111.999", referrer: "http://202.181.111.999/"
2020/07/07 12:23:56 [error] 17555#17555: *20 user "spl" was not found in "/etc/nginx/.htpasswd", client: 103.145.12.200, server: www.sampleabc.com, request: "GET /level/15/exec/- HTTP/1.1", host: "202.181.111.999", referrer: "http://202.181.111.999/"
2020/07/07 12:23:58 [error] 17555#17555: *21 user "spl0" was not found in "/etc/nginx/.htpasswd", client: 103.145.12.200, server: www.sampleabc.com, request: "GET /level/15/exec/- HTTP/1.1", host: "202.181.111.999", referrer: "http://202.181.111.999/"
2020/07/07 12:23:59 [error] 17555#17555: *22 user "spl0" was not found in "/etc/nginx/.htpasswd", client: 103.145.12.200, server: www.sampleabc.com, request: "GET /level/15/exec/- HTTP/1.1", host: "202.181.111.999", referrer: "http://202.181.111.999/"
2020/07/07 12:24:00 [error] 17555#17555: *24 user "sprinkle" was not found in "/etc/nginx/.htpasswd", client: 103.145.12.200, server: www.sampleabc.com, request: "GET /level/15/exec/- HTTP/1.1", host: "202.181.111.999", referrer: "http://202.181.103.119/"

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • ikadzuchi

    2020/07/07 13:52

    画像中の消しがちょっと不十分で情報が漏れる危険があるので画像は削除した方がよいかと思います。

    キャンセル

  • shaketonori

    2020/07/07 14:04

    ご指摘ありがとうございます。画像は消しておきます。

    キャンセル

  • m.ts10806

    2020/07/11 08:53

    記述を消したところで物理的に消えるわけではなく、画像パスも編集履歴から確認可能です。
    画像の件は運営相談してください。

    キャンセル

回答 4

checkベストアンサー

+5

質問に対する明確な回答が無いようなので一応回答しとくと辞書攻撃です。単語の後ろに0とかがついてるので総当たりも混ざってますが。

そうであったらどのように対処したらよいか

公開が前提ならfail2banはどうでしょうか?自分はssh対策にしか使いませんが、nginxにも対応してます。
デフォルトでエラーログに適した設定があるかどうかは知らないけどアクセスログには対応してるようです。
または質問者自身がエラーログから不正なアクセスを試みる連続したIPを抽出するスクリプトを作って動的にブラックリスト化していくかです。

公開をする気が無いならホワイトリストで自分のIPを許可する、IPが動的で心配なら日本に割り当てられたIPを許可する

また、公開サービスの管理機能とかの認証の場合なら大抵は決められたネットワークからしか繋げないようにすると思うので質問者のような状態にはなりません。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/07/08 16:16

    回答ありがとうございます。
    fail2ban のことは知りませんでした。貴重なご意見ありがとうございました。

    回答を頂いてから fail2ban についてちょっと調べたんですが、かなり専門的なもの
    かと思ったんですが「さくらのナレッジ」でも紹介されているポピュラーなものなんですね。

    mu6 さんが紹介して下さった SiteGuard Server Edition とどのような違いがあるんでしょうか?
    ちょっと調べた私なりの解釈では fail2ban も WAF の一種である、という理解でいいんでしょうか。

    もう少し調べて fail2ban か SiteGuard Server Edition を設定してみようと思います。

    ありがとうございました。

    キャンセル

  • 2020/07/08 20:04

    fail2banはポピュラーどころかcentos7ミニマムインストールでもしない限りデフォルトで入ってなかったっけ?
    SiteGuard使った事無いので違いは知りません

    キャンセル

+3

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/07/08 16:15

    回答ありがとうございました。

    WAF は聞いたことはあったのですが具体的な中身は知りませんでした。
    SiteGuard Server Edition はさくらインターネットのサイトに載っているくらいですから、
    標準的なものなんですね。

    とてもいい情報をありがとうございました。

    キャンセル

+1

接続元IPアドレス(x.x.x.x)で制限するなら下記のように設定ファイルに記載すると、拒否することができます

deny x.x.x.x;
allow all;

逆に利用者を限定(内部使用とのことなので)するなら、下記のように設定ファイルに記載すると、許可したIPアドレスからしか接続できなくなります
※接続元IPアドレスを特定できないと利用できない

allow y.y.y.y;
deny all;

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/07/08 16:17

    回答ありがとうござます。
    具体的な記述方法まで示していただきありがとうございます。

    これは nginx の設定ファイルの記述方法ですね。
    firewall-cmd に記述す方法もあると思うんですけど、どちらがいいんでしょうか。

    ありがとうございました。

    キャンセル

  • 2020/07/08 16:21

    単純に自分が運用していた方法を提示しました。

    firewallとどちらを選択するかはやりやすい方を選択されればいいと思います。

    キャンセル

-1

web系の防御の仕方はわからないけど、init 1で相手をはじくことになるのか、(init 1をうたれる側ではないのでどこまで封じこめれるのか忘れた。)traceroute とか dig -x とかで反撃したらとかってできないんですか。それを何回かやると相手も対応して攻撃してくるので初動が大事だと思う。(IP偽装されたら意味ないけど、スクリーンショットでぱちぱちとるとか)。sysvlogで persistentして sudo jounalctl -f すれば、tail-fで映らないIPなども、映るので改ざんなどの攻撃がしずらくなります。知ってたり使えなかったらすいません。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/07/09 00:06

    ポートにsshやtelnetで侵入できるのは知っていますとだけいっておく。後はしらないことで勘違いです。

    キャンセル

  • 2020/07/09 06:28 編集

    なんとなく理解できました。何も見ずに書くとsshサーバーみたいのがミドルウェアで,設定が残るから、yum remove yum install だけで回復したようにみえたようだと。DNSを使用したら何回か壊されたので、はじめからつくりなおしたのですがそのときにyum install やyum remove で設定がのこされてるから回復したと。認証を何等かの形で侵入を許してしまったようですが、グループではいってきたのでdigがたまたま効いたんだと思います。そしてinit 3がきいてるからにげられないんじゃないかとinit 3 は仮定ですが、閉じ込められたのか、逃げなかったかどちらかです。質問者のnginxは別サーバーにおいてあるからおそらく関係ないと。

    キャンセル

  • 2020/07/17 09:39 編集

    すいません。過去のドキュメント見てたら,問題が発生したときinit 1(シングルモード、ネットワークなしでした)通常はマルチだそうです。(マルチモード ネットワークありでした)。マルチは複数で作業するです。問題とは関係ないけど。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.91%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る