Linuxエラーログの意味と対策方法

このQ&Aのポイント
  • Linuxのエラーログを見ると、機械的な攻撃の形跡が見つかりました。エラーログの内容や対策方法について知りたいです。
  • エラーログの1つ目の内容は、攻撃者が公開ディレクトリ外のファイルを狙っている可能性があります。
  • エラーログの2つ目の内容は、一般的に使用されるソフトウェアのログイン画面を狙っている可能性があります。問題が起きている場合にはIPアドレスで制限をかける考えです。海外からの攻撃のようです。
回答を見る
  • ベストアンサー

Linuxのエラーログ内容の意味について

Linuxのエラーログを見たところ、機械的にアタックされているような形跡が見つかりました。ログの意味・対策方法等を教えて頂ければと思います。 [環境] CentOS5.3 / PHP5.3 / Apache2.2.3 http://www.example.comでテストサイトを運用。 サイト全体には.htaccessでベーシック認証をかけており、ID/PASSを知らないと内容は見えない。 サイトの中はCakePHPで掲示板・画像登録などの機能を作ってある。 [エラーログの内容] 1個目 [Sat Jan 18 17:54:25 2014] [error] [IPアドレス] script not found or unable to stat: /var/www/cgi-bin/php5 こちらは、http://www.example.com/var/www/cgi-bin/php5というURLをブラウザに入力されたと同じだと考えてよいのでしょうか?それとも、ベーシック認証が破られて入力されたのでしょうか? エラーのパスが「/var/www/cgi-bin/php5」と、公開ディレクトリ以外を狙ってきているので不気味です。 「/var/www/cgi-bin/php5」という攻撃で何を狙っているのかが知りたいです。 2個目 [Sat Jan 18 13:24:05 2014] [error] [IPアドレス] user manager not found: /manager/html [Wed Jan 15 06:14:16 2014] [error] [IPアドレス] user tomcat not found: /manager/html この2つはphpMyAdminなどのよく使われているようなソフトのログイン画面ページを狙ってきているという理解でよろしいでしょうか? 最後に、これらでエラーが出ている分には問題は無いのでしょうか?あまり多くなってきたらIPアドレスで制限をかけようとは思っています。 アタックしてきているIPアドレスを見てみると、海外からのアタックのようです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

>こちらは、http://www.example.com/var/www/cgi-bin/php5というURLをブラウザに入力されたと同じだと考えてよいのでしょうか? No. おそらくhttpd.confに ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" という記載があると思いますが、もしそうならリクエストされたのは http://www.example.com/cgi-bin/php5 です。 それ以外は認識されている通りです。 まぁ、よくあるアタックということで。

hpmt28
質問者

お礼

lowrider_2005さん。 ご回答ありがとうございます。 エラーログについて少しずつ勉強しつつありますが、どのようなアクションがあった時に、どのようなエラーが記述されるかが掴めていないので、その辺の知識をつけていきたいと思います。 httpd.confのScriptAlias /cgi-bin/ "/var/www/cgi-bin/"は httpd.confを開いて実際に確認致しました。 このような細かいところは調べていてもなかなか情報に辿り着けないので助かります。 ありがとうございました!

関連するQ&A

  • エラーログの出力方法

    PHPでは vi php.ini ------------------------------ error_log = /var/log/php_error.log ------------------------------ により、PHPエラーログを出力できますが、 Javaではエラーログを確認するのにどのような方法がありますでしょうか? ご存知の方、宜しくお願いします。

  • httpdのエラーログをwebでリアルタイムでみたい

    php5、fedora4、apache2.0です。 httpdのエラーログ(/var/log/httpd/error_log)をリアルタイムに見たいのですが、何かPHPを使ってよい方法はないでしょうか? 今のところ、あるページにアクセスしたらSystem関数でシェルを実行し、ログをコピーしてきて表示するようにしていますが、上手くいきません。 $last_line = system('sh httpd_error.sh',$return_val); httpd_error.sh ---------------------------------- #!/bin/sh cp -v /var/log/httpd/error_log /var/www/html/log/ ----------------------------------- 「/var/log/httpd/error_log」へのアクセス権がないというエラーが出てしまいます。 PHPのsystem関数でシェルを実行した時って、誰が実行していることになるのでしょうか? また、これ以外にhttpdのエラーをリアルタイムにwebから見れる方法がありましたらご教授ください。 ヨロシクお願いします。

    • ベストアンサー
    • PHP
  • cgi-binでしかcgiを実行できない環境で…

    現在稼働しているコンテンツを 独自ドメインにしようと思い、 WebARENAを借りたのですが、 今時(?)cgi-binでしかcgiを実行できない設定でした。 現在のコンテンツは、 (ドメイン名)/example.php?id=123 のように、idをgetで渡す、 レンタル型のコンテンツなのですが、 これを (ドメイン名)/cgi-bin/example.cgi?id=123 のように、長いアドレスにしたくありません。 そもそもアドレスを短く、分かりやすくするために 独自ドメインを取ったものですから…。 Redirectでcgi-binに飛ばしてみたりしたのですが、 その場合引数はカットされるようです。 なんとかして、cgi-binを入れないアドレスが 使えるようにできないでしょうか?

  • 500エラーorダウンロードになる。suEXEC

    【環境】 fedora7(さくら専用サーバー Apache(2.2.8) vsftpd(2.0.5-16.fc7) suEXEC cgiを700で動かしたいのですが、 全く動いてくれません。。。 500 Internal Server Error エラーログを一部抜粋しました。 error.log [Sat May 24 17:08:07 2008] [error] [client 121.1.216.98] attempt to invoke directory as script: /home/test1/cgi-bin/test/ [Sat May 24 17:08:07 2008] [error] [client 121.1.216.98] File does not exist: /home/test1/httpdocs/favicon.ico [Sat May 24 17:08:11 2008] [error] [client 121.1.216.98] Directory index forbidden by Options directive: /home/test1/httpdocs/file/00/, referer: http://ドメイン/ [Sat May 24 17:08:11 2008] [error] [client 121.1.216.98] mod_mime_magic: can't read `/home/test1/cgi-bin/test/log_note.cgi', referer: http://ドメイン/ [Sat May 24 17:08:11 2008] [error] [client 121.1.216.98] (13)Permission denied: exec of '/home/test1/cgi-bin/test/log_note.cgi' failed, referer: http://ドメイン/ [Sat May 24 17:08:11 2008] [error] [client 121.1.216.98] Premature end of script headers: log_note.cgi, referer: http://ドメイン/ [Sat May 24 17:08:11 2008] [error] [client 121.1.216.98] File does not exist: /home/test1/httpdocs/favicon.ico [Sat May 24 17:08:13 2008] [error] [client 121.1.216.98] mod_mime_magic: can't read `/home/test1/cgi-bin/test/test.cgi', referer: http://ドメイン/ [Sat May 24 17:08:13 2008] [error] [client 121.1.216.98] (13)Permission denied: exec of '/home/test1/cgi-bin/test/test.cgi' failed, referer: http://ドメイン/ [Sat May 24 17:08:13 2008] [error] [client 121.1.216.98] Premature end of script headers: test.cgi, referer: http://ドメイン/ [Sat May 24 17:08:13 2008] [error] [client 121.1.216.98] File does not exist: /home/test1/httpdocs/favicon.ico suexec.log [2008-05-24 16:58:20]: too few arguments suexec -V の結果 -D AP_DOC_ROOT="/var/www" -D AP_GID_MIN=100 -D AP_HTTPD_USER="apache" -D AP_LOG_EXEC="/var/log/httpd/suexec.log" -D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin" -D AP_UID_MIN=500 -D AP_USERDIR_SUFFIX="public_html" DOC_ROOTの変更方法も分からず、ずっとhomeでやってたので、 ミスだったのかな?と思い。 /var/以下にcgiを置いてchmodでtest.cgiの権限700にしてしてみましたが、500のエラーでした。 なぜかFFFTPのクライアントからは操作ファイル操作が出来ませんでした。 ユーザー名はapacheグループに属してるだけです。 バーチャルで運営の予定です。 perlのパスは usr/bin/perl test.cgiの先頭は #!/usr/bin/perl です。 suEXECは・・・ chmod 4711 /usr/sbin/suexec でapache再起動後のログに、 [Sat May 24 17:31:04 2008] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec) が出ます。 /usr/sbin/httpd -l でチェックすると。 core.c prefork.c http_core.c mod_so.c の4点しかありません。 suexec: disabled; invalid wrapper /usr/sbin/suexec は出ません。 宜しくお願い致します。

    • ベストアンサー
    • CGI
  • Not Foundが表示されます。

    RedHatLinux8.0、php4.2.2を使用しています。phpは以前は普通にブラウザで表示されていたのですが、http://www.kent-web.com/bbs/aska.html から掲示版のCGIプログラムをダウンロードしてから、なぜかphpが表示されなくなってしまいました。 掲示版CGIの格納場所は /var/www/cgi-bin/bbs phpファイル格納場所は /usr/local/apache/htdocs/01/01-01.php ブラウザの実行 http://localhost/01/01-01.php *表示結果* Not Found The requested URL /01/01-01.php was not found on this server. Apache/2.0.40 Server at _default_ Port 80 セキュリティレベル WWW(HTTP)をチェックしても結果同じでした。 アドバイスよろしくお願いします。

    • 締切済み
    • PHP
  • /var/log/httpd/error_logに大量のエラーログ

    お世話になります。 サーバを運用しているんですが、/var/log/httpd/error_logに大量のエラーログが出ます。 環境 CENTOS4 PHP5.1.6 mysql5 apache2.0 /etc/httpd/conf/httpd.confのerror_log部分はコメントアウトして再起動しました。 エラーログをはいているなにがしかのconf設定部分があるとおもい、ずっと探しているのですが、まったくわかりません。エラーログを吐かないようにしたいのですが、どうにか良い方法ございませんでしょうか。 エラーログの中身ですが、すぐいっぱいになるため、中身を見ようと思っても容量が大きすぎてコマンドラインから開くこともままなりません。大体一時間で50G程度のエラーログが出ています。 お忙しいところ大変申し訳ございませんがどうぞよろしくお願いします。

  • 意味不明のメール

    知り合いに聞かれたのですが、私も解りません。 どなたか教えてください。 質問された内容は下記の通りです。 どなたかよろしくお願いします。 「最近わけのわからないメールが山のようにきますが、その中でメールを開けると必ず入 ってくるのがあります。(昨日より) 差出人、あて先のアドレスがなく、件名は「Tasty Materials」です。 本文は以下のとおりです。 Not Found The requested URL /cgi-bin/blosxom.cgi/index.rss was not found on this server . -------------------------------------------------------------------------------- Apache/1.3.33 Server at toitoitoi.cube-web.net Port 80 いったいどこからなにが原因で来るのでしょう。 止めるにはどうしたらいいのでしょうか。 お分かりでしたら、教えてください。」

  • cgi-binでPHP動作しない

    過去に何度か出ている質問ですが、 VineLinux3.1 + Apache1.3 + PHP4の環境でhttpサーバを構築したいのですが、 /home/httpd/cgi-bin/test.php  (中には <?php phpinfo(); ?> を記述) のスクリプトがブラウザより動作しません。 同ファイルを /home/httpd/html/test.php にコピー しアクセスすると正常に動作します。 どこか設定がおかしいのでしょうか? ■errot-log [Sun Jan 8 13:44:57 2006] [error] (8)Exec format error: exec of /home/httpd/cgi-bin/test.php failed [Sun Jan 8 13:44:57 2006] [error] [client 192.168.0.5] Premature end of script headers: /home/httpd/cgi-bin/test.php ■httpd.conf抜粋 <IfDefine HAVE_PHP4> LoadModule php4_module modules/libphp4.so </IfDefine> ScriptAlias /cgi-bin/ /home/httpd/cgi-bin/ AddDefaultCharset off <IfModule mod_php4.c> AddType application/x-httpd-php .php4 .php3 .phtml .php AddType application/x-httpd-php-source .phps </IfModule>

  • Apache2.4.18 エラーについて

    Apache2.4.18で以下のエラーがでるのですが どのように直せば以下のエラーがでなくなりますでしょうか? [Sat Jan 02 03:54:16.698225 2016] [mpm_winnt:notice] [pid 4456:tid 364] AH00428: Parent: child process 5632 exited with status 255 -- Restarting. [Sat Jan 02 03:54:16.979025 2016] [mpm_winnt:notice] [pid 4456:tid 364] AH00455: Apache/2.4.18 (Win64) PHP/5.6.16 configured -- resuming normal operations [Sat Jan 02 03:54:16.979025 2016] [mpm_winnt:notice] [pid 4456:tid 364] AH00456: Apache Lounge VC14 Server built: Dec 9 2015 11:13:29 [Sat Jan 02 03:54:16.979025 2016] [core:notice] [pid 4456:tid 364] AH00094: Command line: 'C:\\Apache24\\bin\\httpd.exe -d C:/Apache24' [Sat Jan 02 03:54:16.979025 2016] [mpm_winnt:notice] [pid 4456:tid 364] AH00418: Parent: Created child process 4792 [Sat Jan 02 03:54:17.930627 2016] [mpm_winnt:notice] [pid 4792:tid 256] AH00354: Child: Starting 150 worker threads.

  • mod_rewriteの挙動が不可思議。ログをみると、余計に不可思議・・・お助けを・・・

    CentOS4、Apache2を使っています。 ============================================ http://example.com/hogehoge というリクエストに対して、 mod_rewriteで http://example.com/index.php?QS=hogehoge の結果を返すようにしたいと思っています。 (http://example.com/ に対しては、http://example.com/index.php?QS= の結果を返せばOK) ============================================ そこで、 「.htaccess」に <IfModule mod_rewrite.c> RewriteEngine on RewriteRule ^/(.*)$ /index.php?QS=$1 [L] </IfModule> と書いたのですが、 http://example.com/hogehoge にアクセスしたら、not foundになってしまいました。 Apacheのエラーログをみると、 File does not exist: /var/www/example.com/htdocs/hogehoge でした。 で、mod_rewriteのログをみると下記のようでした。 ========================== ***.**.***.*** - - [11/Feb/2008:22:37:25 +0900] [example.com/sid#b80e7dd8][rid#b81db290/initial] (3) [per-dir /var/www/example.com/htdocs/] strip per-dir prefix: /var/www/example.com/htdocs/hogehoge -> hogehoge ***.**.***.*** - - [11/Feb/2008:22:37:25 +0900] [example.com/sid#b80e7dd8][rid#b81db290/initial] (3) [per-dir /var/www/example.com/htdocs/] applying pattern '^/(.*)$' to uri 'hogehoge' ***.**.***.*** - - [11/Feb/2008:22:37:25 +0900] [example.com/sid#b80e7dd8][rid#b81db290/initial] (1) [per-dir /var/www/example.com/htdocs/] pass through /var/www/example.com/htdocs/hogehoge ========================== (1)「/var/www/example.com/htdocs/hogehoge -> hogehoge」 と (2)「applying pattern '^/(.*)$' to uri 'hogehoge'」 というのが、不思議です。 どこのサイトを見ても、 RewriteEngine on RewriteRule ^/abc/(.*)$ /new/$1 [R=301,L] のようにやっているので、 ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ (2)は 「applying pattern '^/(.*)$' to uri '/hogehoge'」のはずだと思うのですが・・・。 ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ かといって <IfModule mod_rewrite.c> RewriteEngine on RewriteRule ^(.*)$ /index.php?QS=$1 [L] </IfModule> としてみると、今度はhttp://example.com/ にアクセスされたときに500エラーとなってしまいまして。。。 上の☆で囲んだ部分の疑問が強いので、問題の切り分けができていないかもと重い、 このエラーの原因は深くまだつっこんでいません。 どうして、このようになってしまうのでしょうか? (1)の挙動は、なんかしらの設定によるのでしょうか? そして、どうすれば、一番上に書いた、希望している動作となるのでしょうか? 以上、どなたかお教えいただければ、幸いです。