apacheのaccess.logについて

このQ&Aのポイント
  • apacheのaccess.logに記録されるアクセスログについてまとめました。
  • アクセスログを確認したところ、さまざまな国からのアクセスがあったことが分かりました。
  • 一部のアクセスは悪意のあるものと思われますが、具体的な内容を把握するには注意が必要です。
回答を見る
  • ベストアンサー

apacheのaccess.logについて

最近自宅にてdebianでwebサーバーを公開し始めました。 サイトは昔の部活仲間や友達内だけの小さなサイトです。 当初からapacheのaccess.logのログをみて、 さまざまな国からアクセスがあったことを知って戦々恐々としています。 自分のできる対策として.htaccessで日本のIPのみアクセスを許可したり、 sshのポートを変更し、公開鍵認証のみにし、rootログインも禁止したりしました。 ポートは80番とsshのみ開けています。telnetは消しました。 cronでaptitude updateとupgradeを毎日自動でやるよう設定しました。 これでだいぶ国外からのアクセスが減ったのですが、 まだこのような良くわからないアクセスがaccess.logに残ります。 これらについて教えてください。 ----------------------------- 74.7.65.34 - - [07/Dec/2013:23:29:47 +0900] "\x80w\x01\x03\x01" 403 278 "-" "-" 74.7.65.34 - - [07/Dec/2013:23:29:47 +0900] "GET /HNAP1/ HTTP/1.1" 403 503 "http://114.188.50.107/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 (FM Scene 4.6.1)" ----------------------------- 1-163-194-59.dynamic.hinet.net - - [07/Dec/2013:23:32:59 +0900] "CONNECT mx0.mail2000.com.tw:25 HTTP/1.0" 403 490 "-" "-" 61-228-90-61.dynamic.hinet.net - - [08/Dec/2013:01:42:04 +0900] "CONNECT mx2.mail2000.com.tw:25 HTTP/1.0" 403 490 "-" "-" 61-228-23-159.dynamic.hinet.net - - [08/Dec/2013:04:15:29 +0900] "CONNECT mx0.mail2000.com.tw:25 HTTP/1.0" 403 490 "-" "-" ----------------------------- 20.254.52.119.adsl-pool.jlccptt.net.cn - - [07/Dec/2013:18:52:39 +0900] "GET /w00tw00t.at.blackhats.romanian.anti-sec:) HTTP/1.1" 403 490 "-" "ZmEu" 20.254.52.119.adsl-pool.jlccptt.net.cn - - [07/Dec/2013:18:52:39 +0900] "GET /phpMyAdmin/scripts/setup.php HTTP/1.1" 403 481 "-" "ZmEu" 20.254.52.119.adsl-pool.jlccptt.net.cn - - [07/Dec/2013:18:52:40 +0900] "GET /phpmyadmin/scripts/setup.php HTTP/1.1" 404 479 "-" "ZmEu" 20.254.52.119.adsl-pool.jlccptt.net.cn - - [07/Dec/2013:18:52:40 +0900] "GET /pma/scripts/setup.php HTTP/1.1" 403 476 "-" "ZmEu" 20.254.52.119.adsl-pool.jlccptt.net.cn - - [07/Dec/2013:18:52:40 +0900] "GET /myadmin/scripts/setup.php HTTP/1.1" 403 479 "-" "ZmEu" 20.254.52.119.adsl-pool.jlccptt.net.cn - - [07/Dec/2013:18:52:41 +0900] "GET /MyAdmin/scripts/setup.php HTTP/1.1" 403 479 "-" "ZmEu" ----------------------------- 189.25.210.226 - - [08/Nov/2013:21:47:01 +0900] "-" 408 0 "-" "-" 95.39.62.79 - - [09/Nov/2013:03:46:42 +0900] "\xb7\xda\x84" 501 294 "-" "-" 91.79.51.155 - - [11/Nov/2013:16:05:26 +0900] "\xf7\xa1\xb5K\xa4Q\xd5\x14\xd6\x886{A\xec\xd5\xd2\xbb\x93Z\x04l\xf8\x19" 501 314 "-" "-" 93.174.93.69 - - [29/Nov/2013:02:57:31 +0900] "GET /invoker/JMXInvokerServlet HTTP/1.0" 404 505 "-" "-" 221.122.80.105 - - [25/Nov/2013:09:41:08 +0900] "POST /cgi-bin/php.cgi?%2D%64+%61%6C%6C%6F%77%5F%75%72%6C%5F%69%6E%63%6C%75%64%65%3D%6F%6E+%2D%64+%73%61%66%65%5F%6D%6F%64%65%3D%6F%66%66+%2D%64+%73%75%68%6F%73%69%6E%2E%73%69%6D%75%6C%61%74%69%6F%6E%3D%6F%6E+%2D%64+%64%69%73%61%62%6C%65%5F%66%75%6E%63%74%69%6F%6E%73%3D%22%22+%2D%64+%6F%70%65%6E%5F%62%61%73%65%64%69%72%3D%6E%6F%6E%65+%2D%64+%61%75%74%6F%5F%70%72%65%70%65%6E%64%5F%66%69%6C%65%3D%70%68%70%3A%2F%2F%69%6E%70%75%74+%2D%64+%63%67%69%2E%66%6F%72%63%65%5F%72%65%64%69%72%65%63%74%3D%30+%2D%64+%63%67%69%2E%72%65%64%69%72%65%63%74%5F%73%74%61%74%75%73%5F%65%6E%76%3D%30+%2D%6E HTTP/1.1" 404 495 "-" "Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26(KHTML, like Gecko) Version/6.0 Mobile/10A5355d Safari/8536.25" ----------------------------- 相手のIPまんまですが 一つ目の「74.7.65.34」のアメリカからのアクセスの "\x80w\x01\x03\x01" 403 278 "-" "-" の「\x80w\x01\x03\x01」はいったいなんですか? 二つ目の台湾からのアクセスについてわかることを教えてください。 あと自分は初心者ではっきりとはわからないのですが、 三つ目のアメリカからのアクセスは明らかに悪意のあるような気がしますが、 わかることを教えてください。 四つ目の5つは古いログであまり対策がとられていなかったころのものですが、 「"-" 408 0 "-" "-"」「"\xb7\xda\x84"」なの意味がわからないのですが、 これらは悪意のあるアクセスですか。わかることを教えてください。

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

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

分かる範囲で回答します。 ・一つ目の「74.7.65.34」のアメリカからのアクセス  確かに変なリクエストですが、Apacheは403を返しているので心配はないと思います。403は、「リクエストが異常だからエラーにする」という意味ですので、ちゃんとエラーになっているので心配いりません。 ・二つ目の台湾からのアクセス  外部のメールサーバー(25ポート)への中継を試みていますが、これも403のエラーになっているので心配ありません。中継を試みられたがサーバーが拒否した、という意味です。 ・三つ目のアメリカからのアクセス  異常なアクセスですが、一番同様、403のエラーになっているので問題ありません。 ・四つ目の5つは古いログ  これらは、異常なログおよび、脆弱性を狙った攻撃(最後のものは今さかんに攻撃されているApache Magicaです)ですが、いずれも心配ないと思われます。  403は前述の不正なリクエストに対するエラー、404はファイルがないとしているわけですから一番心配のないもの、501は様々ですがこの場合は「対応するメソッドは実装されていない」と思われ、攻撃としては作用していません。  インターネットにサーバーを公開している限り、攻撃が来ること自体を避けることはできません。重要なことは、「攻撃が来ても問題ない状態を保つ」ことです。  そのためには、 ・ApacheやPHPを最新の状態に保つ ・サイト運営に不要なサービスは停止する ・不要なファイルを公開ディレクトリに置かない ・CGIプログラムやPHPスクリプトの脆弱性を排除する(これらがない場合は問題ありません) などが重要です。

p0pip0
質問者

補足

大変わかりやすかったです。 ありがとうございました。

関連するQ&A

  • apacheのログでこんなの出たんですけど…

    apacheのログで3日ほど前から以下の様なアクセスが いろいろなIPアドレスから来るのですが 何をやろうとしているのでしょうか? 211.196.98.124 - - [20/Sep/2001:03:32:52 +0900] "GET /scripts/root.exe?/c+dir HTTP/1.0" 403 280 211.196.98.124 - - [20/Sep/2001:03:32:53 +0900] "GET /MSADC/root.exe?/c+dir HTTP/1.0" 403 278 211.196.98.124 - - [20/Sep/2001:03:32:53 +0900] "GET /c/winnt/system32/cmd.exe?/c+dir HTTP/1.0" 403 288 211.196.98.124 - - [20/Sep/2001:03:32:53 +0900] "GET /d/winnt/system32/cmd.exe?/c+dir HTTP/1.0" 403 288 211.196.98.124 - - [20/Sep/2001:03:32:54 +0900] "GET /scripts/..%255c../winnt/system32/cmd.exe?/c+dir HTTP/1.0" 403 302 211.196.98.124 - - [20/Sep/2001:03:32:54 +0900] "GET /_vti_bin/..%255c../..%255c../..%255c../winnt/system32/cmd.exe?/c+dir HTTP/1.0" 403 319 中略 211.196.98.124 - - [20/Sep/2001:03:32:57 +0900] "GET /scripts/..%%35c../winnt/system32/cmd.exe?/c+dir HTTP/1.0" 400 281 211.196.98.124 - - [20/Sep/2001:03:32:58 +0900] "GET /scripts/..%25%35%63../winnt/system32/cmd.exe?/c+dir HTTP/1.0" 403 302 211.196.98.124 - - [20/Sep/2001:03:32:58 +0900] "GET /scripts/..%252f../winnt/system32/cmd.exe?/c+dir HTTP/1.0" 403 302 なんとなくdirコマンドでCドライブの内容を調べようとしているのはわかるのですが… 環境はWinNT4.0sp4 apache 1.3.20です。 あと、エラーコード(?)の403と404は知っているのですが 400はどういう意味なのでしょうか? また何か問題はあるのでしょうか?

  • Apacheで12月25日に怪しいログが・・・

    ***.***.***.***,[25/Dec/2003:00:00:57 +0900],"GET / HTTP/1.1" 200 96 こんな感じのが24~26の間に普段ほとんどアクセスが無いのに1万件以上のアクセスがあり25日だけで6000件以上アクセスがありました。 しかもその6000件IPアドレスが全部違うんです。 そのIPも外国だけでなく国内のも結構たくさん。 これはいったい何が起きてるのでしょうか?

  • Apacheに予期せぬアクセスが

    先日、自宅のマシン(OS:Win2k Professional)にApache 1.3.22をインストールしました。 サーバーとしてドメインを取得してる訳でもなく、IPを誰かに教えた訳でもないのですが、 Apacheを起動した状態でネットに繋ぐ(ダイアルアップする)と、外部からアクセスされているようなんです。 下記はその時のアクセスログとエラーログです。 210.**.**.** - - [04/Dec/2001:00:57:25 +0900] "GET /scripts/root.exe?/c+dir HTTP/1.0" *** *** [Tue Dec 04 00:57:25 2001] [error] [client 210.**.**.**] File does not exist: c:/program files/apache group/apache/htdocs/scripts/root.exe この他にもcmd.exeを探しているようなものなど複数のアクセスがログに残ってました。 Apacheを起動しているだけで、外部から見付けられてしまう事ってあるのでしょうか? またはウィルスによって情報が流出しているのでしょうか? なぜ外部からアクセスされたのかわかりません。よい対策がありましたら教えて下さい。宜しくお願いします。

  • apacheログのIPアドレス欄がIPv6になってしまいました

    初めまして。 自宅サーバでapacheを使っていて、アクセスログを久しぶりに見てみました。 すると、 初めのころは 66.249.66.204 - - [16/Sep/2006:13:51:27 +0900] "GET /pukiwiki-1.4.7.bak/index.php?cmd=diff&page=Fron tPage HTTP/1.1" 404 311 とIPv4で表示されていたログが、いつの間にか b874:6209:c875:6209:f074:6209:b893:fcbf - - [03/Feb/2007:12:47:07 +0900] "POST /gazou.php HTTP/1.0" 200 11655 のように、IPv6のような表示に変わってしまいました。 httpd.confを大きく変えた記憶は無いのですが。。 なにかアドバイス等、頂けないでしょうか? 以下はOSとapacheのバージョンです。 [root@DELL apache2]# uname -a Linux DELL 2.6.12-1.1381_FC3smp #1 SMP Fri Oct 21 04:03:26 EDT 2005 i686 i686 i386 GNU/Linux [root@DELL apache2]# /usr/local/apache2/bin/apachectl -v Server version: Apache/2.0.60-dev Server built: Nov 27 2006 20:49:13 よろしくお願いします。

  • アクセスログからパラメータの値を取得したい

    シェルやgawk(awk)などであるとうれしいのですが ログから値を摘出したいのでがどのようにすればよいのでしょうか? ご教授願います。 この様なログから 210.153.84.8 - - [2009-07-08 10:38:39] "GET /cmpx.php?sid=q001&uid=xZ0qyT&SSID=19a165eff72c9dd5e39a7546d89777f739d96c HTTP/1.1" 200 2011 "-" "DoCoMo/2.0 SH905i(c100;TB;W24H15)" "xxxx" "yyyy" この様な 2009-07-08 10:38:39,q001,xZ0qyT,xxxx,yyyy csv形式で値を拾いたいと考えています。 フォーマット: アクセスタイム,sidの値,uidの値,"xxxx"の値, "yyyy"の値 よろしくお願いいたします。

  • ApacheのAccess.logで質問

    回線をADSLにしてからApacheのAccess.logに不明なログが残るように なったのですが、ログ内容が意味不明でわかりません、 ログは以下の通りです。(IPは伏せておきます) xxx.xxx.xxx.xxx - - [09/Sep/2010:22:55:43 +0900] "GET /default.ida?XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%u9090%u6858%ucbd3%u7801%u9090%u6858%ucbd3%u7801%u9090%u6858%ucbd3%u7801%u9090%u9090%u8190%u00c3%u0003%u8b00%u531b%u53ff%u0078%u0000%u00=a HTTP/1.0" 401 464 何か専用ソフトでアクセスしているのでしょうか?? ステータスは401なんで 進入はされていない模様ですが。 1日に違うIPから20~50件ぐらい残ります。 ご存知の方、よろしくお願いします。

  • Apache access.log ちょっと不安

    こんにちは、 自宅サーバの勉強のため、Apache 1.3をインストールしています。 環境: OS:WindowsXP SP1 ルータ:WLAR-L11-L / WLAR-L11G-L Ver.1.30 プロバイダー:YAHOO BB ADSL 無料ダイナミックDNSを設定して、自分のURLを取得しています。 Apacheのaccess.logをみると、 219.156.179.27 - - [04/May/2003:23:43:03 +0900] "GET /default.ida?XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX やら、 219.250.73.214 - - [05/May/2003:00:15:25 +0900] "SEARCH /\x90\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1 のようなものがあり、外部から進入があったのかなと不安になります。 上記、ログが何なのかお分かりの方がいましたら教えてください。 また、ログの見方などの参考URLがお分かりの方がいましたらあわせて教えてください。 よろしくお願いします。

  • CentOS7.2 Apacheエラーログについて

    CentOS7.1を使用していましたが2日ほど前にCentOS7.2にアップデートしました。 アップデート後からApacheのエラーログが頻繁に出力されるようになりました。 CentOS7.2にアップデート後のエラーログの内容ですが、 [Fri Dec 25 13:15:11.570131 2015] [mpm_prefork:notice] [pid 1141] AH00170: caught SIGWINCH, shutting down gracefully [Fri Dec 25 14:05:21.758346 2015] [suexec:notice] [pid 5588] AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec) [Fri Dec 25 14:05:21.900927 2015] [:warn] [pid 5588] NSSSessionCacheTimeout is deprecated. Ignoring. [Fri Dec 25 14:05:24.576333 2015] [:error] [pid 5588] Misconfiguration of certificate's CN and virtual name. The certificate CN has localhost4.localdomain4. We expected localhost as virtual name. [Fri Dec 25 14:05:24.863090 2015] [auth_digest:notice] [pid 5588] AH01757: generating secret for digest authentication ... [Fri Dec 25 14:05:24.863542 2015] [lbmethod_heartbeat:notice] [pid 5588] AH02282: No slotmem from mod_heartmonitor [Fri Dec 25 14:05:24.865464 2015] [:warn] [pid 5588] NSSSessionCacheTimeout is deprecated. Ignoring. [Fri Dec 25 14:05:29.052357 2015] [mpm_prefork:notice] [pid 5588] AH00163: Apache/2.4.6 (CentOS) OpenSSL/1.0.1e-fips mod_auth_gssapi/1.3.1 mod_auth_kerb/5.4 mod_fcgid/2.3.9 mod_nss/2.4.6 NSS/3.19.1 Basic ECC PHP/5.4.16 mod_wsgi/3.4 Python/2.7.5 configured -- resuming normal operations [Fri Dec 25 14:05:29.052393 2015] [core:notice] [pid 5588] AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND' [Fri Dec 25 14:05:29.375102 2015] [:error] [pid 5949] Misconfiguration of certificate's CN and virtual name. The certificate CN has localhost4.localdomain4. We expected localhost as virtual name. [Fri Dec 25 14:05:29.383065 2015] [:error] [pid 5947] Misconfiguration of certificate's CN and virtual name. The certificate CN has localhost4.localdomain4. We expected localhost as virtual name. [Fri Dec 25 14:05:29.420995 2015] [:error] [pid 5946] Misconfiguration of certificate's CN and virtual name. The certificate CN has localhost4.localdomain4. We expected localhost as virtual name. [Fri Dec 25 14:05:29.425088 2015] [:error] [pid 5950] Misconfiguration of certificate's CN and virtual name. The certificate CN has localhost4.localdomain4. We expected localhost as virtual name. となっています。 最後の、 Misconfiguration of certificate's CN and virtual name. The certificate CN has localhost4.localdomain4. We expected localhost as virtual name. のログがHTTPにアクセスが入るたびに出ているようです。 Apacheのhttpd.confの設定はバーチャルドメインで複数サイト運営していますが アクセス自体は問題なくできています。 (サーバー証明書は入れていません) 1日調べてみましたが、原因がわからず質問させていただきました。

  • SQLiteでたまにアクセスログが取れない

    PHPが使えないサーバーにあるホームページのアクセスログを取得するため、 JavaScriptを使ってPHPが使えるレンタルサーバーに飛び、 PHP+SQLite2でアクセスログを集計していました。 最近パソコンを買い替えたのを機にPHPをVersion 5.4.8にアップデートしたところ、 ローカル環境でSQLite2が使えなくなり、この際pdo_sqliteにプログラムを書き換えました。 レンタルサーバーではSQLite2 がまだ使えるため、以前のプログラムはそのままにして SQLite2 とPDO両方でログをとってみました。 するとSQLite2では取れているのにPDOでは取れていない、 逆にPDOでは取れているのにSQLite2では取れていないログがあることに気が付きました。 (詳しくは下記の画像をご覧ください 赤丸がついているものが他方にはないログです) https://box.yahoo.co.jp/guest/viewer?sid=box-l-oolzr4jkzfiedw4zavuldosoha-1001&uniqid=12bc9230-5e96-41fb-b00e-271a1aa79397&viewtype=detail#du%3D12bc9230-5e96-41fb-b00e-271a1aa79397%26ds%3Dbox-l-oolzr4jkzfiedw4zavuldosoha-1001%26tu%3D12bc9230-5e96-41fb-b00e-271a1aa79397%26ts%3Dbox-l-oolzr4jkzfiedw4zavuldosoha-1001%26vt%3Dpublic%26lf%3Dlist%26ls%3D1%26lm%3D20%26il%3D1 何が問題なのでしょうか? プログラム? SQLite? PHP? サーバー? 閲覧者のブラウザ? また回避法をご存知でしたらご教授願います。 (log.js) ref =document.referrer; var qword=""; if(ref.indexOf("?")!=-1){ ref2=ref.split("?"); query=ref2[1].split("&"); qword="?qword="; for (i=0; i<query.length; i++){ qword+=query[i]+"*"; } ref=ref2[0]; } document.write('<script src=" http://○○○/log2.php?ref='+ ref + qword +'"></script>'); document.write('<script src=" http://○○○/log.php?ref='+ ref + qword +'"></script>'); (log.php) <?php $referer = stripslashes($_GET['ref']); $d=date_create(); $date=date_format($d,"Y/m/d"); $time=date_format($d,"H:i:s"); $day=date_format($d,"w"); $referer=sqlite_escape_string($referer); $url=sqlite_escape_string($_SERVER['HTTP_REFERER']); $accept_language=sqlite_escape_string($_SERVER['HTTP_ACCEPT_LANGUAGE']); $remote_addr=sqlite_escape_string($_SERVER['REMOTE_ADDR']); $user_agent=sqlite_escape_string($_SERVER['HTTP_USER_AGENT']); $db=sqlite_open("log.sqlite"); $sql="INSERT INTO log_table ( log_date, log_time, log_day, log_url, log_referer, log_language, log_remote_addr, log_user_agent) VALUES( '$date', '$time', $day, '$url', '$referer', '$accept_language', '$remote_addr', '$user_agent')"; sqlite_query($db,$sql); sqlite_close($db); (log2.php) <?php $referer = stripslashes($_GET['ref']); $d=date_create(); $date=date_format($d,"Y/m/d"); $time=date_format($d,"H:i:s"); $day=date_format($d,"w"); $db=new PDO("sqlite:/home/○○○/www/log.sqlite3",null,null); $referer=$db->quote($referer); $url=$db->quote($_SERVER['HTTP_REFERER']); $accept_language=$db->quote($_SERVER['HTTP_ACCEPT_LANGUAGE']); $remote_addr=$db->quote($_SERVER['REMOTE_ADDR']); $user_agent=$db->quote($_SERVER['HTTP_USER_AGENT']); $sql="INSERT INTO log_table ( log_date, log_time, log_day, log_url, log_referer, log_language, log_remote_addr, log_user_agent) VALUES( '$date', '$time', $day, $url, $referer, $accept_language, $remote_addr, $user_agent)"; $res=$db->prepare($sql); $res->execute(); $db=null; レンタルサーバーの環境 さくらインターネット PHP Version 5.2.17 Apache/1.3.42 (Unix) mod_ssl/2.8.31 OpenSSL/0.9.8e SQLite 2.8.17 pdo_sqlite 3.3.7

    • 締切済み
    • PHP
  • URLパスの//

    ウェブサーバーを公開していると、いろいろな攻撃のアクセスがあるのですが、 GET //phpmyadmin/scripts/setup.php HTTP/1.1 のように先頭の / が2つ書いてある物がたくさんあります。 / でなく // であるのはは何か意味があるのでしょうか?それとも攻撃プログラムのバグでしょうか? 結果的には同じ物にアクセスに行くようですが。