アーカイブ

‘apache’ カテゴリーのアーカイブ

httpd.confによるアクセスログの設定

2015 年 7 月 22 日 Comments off
apacheの設定ファイルであるhttpd.confによるアクセスログ(access_log)を見やすくするために試行錯誤して設定したので備忘録的に記述しときます。
特にアクセスログ(access_log)を使用して加工していない人(例えばawstatsなど)は、問題ないのかもしれませんがなんとなくその辺をきちんとしたい人向けに設定をします。
まず、アクセスログに自分のIPアドレスがあるとそれもアクセス解析ツールでは、引っ張ってきてしまいますので自分のIPを別ファイルとします。サーバ自体からのアクセスなども必要ないのでアクセスログに含ませないようにします。

また、ワームアクセスの除去、アクセスログに記述されたリファラー情報を別のファイル(リファーラーログ)としてどこのサイト(アクセス元)から来たのかなどを詳しく調査できるログを作成。

http.confに下記を追記

 

LogFormat “%h %l %u %t \”%!414r\” %>s %b \”%{Referer}i\” \”%{User-Agent}i\”” combined
SetEnvIf Remote_Addr 192.168.1 no_log
SetEnvIf Remote_Addr 127.0.0.1 no_log
SetEnvIf Remote_Addr ::1 no_log
SetEnvIf Remote_Addr 自宅のIP(xx.xx.xx.xx) no_log my_access
SetEnvIf Remote_Addr サーバのIP(xx.xx.xx.xx) no_log my_access
# no_log に該当するものを access_log に記録しない
CustomLog logs/access_log combined env=!no_log
# my_access_log に該当するものを my_access に記録する
CustomLog logs/my_access_log combined env=my_access
1行目・・・・・アクセスログのフォーマットの設定
(細部については、apache公式サイトのログを参照されたい。)

2行目・・・・・内部からのアクセスをログに記録しない
3行目・・・・・自ホストからのアクセスをログに記録しない
4行目・・・・・access_logで何件も表示されていて調べたところapache自身が子プロセスを生成するログ
5行目・・・・・自宅からのipアドレスは、ログに記録しない。my_accessに記述する
7行目・・・・・CustomLog行でnologと記述されている場合は、access_logに記述しない設定
9行目・・・・・my_accessと記述している行(4行目と5行目)は、my_access_logに別に記述する設定
#Worm に関するログは別ファイルに記録します
SetEnvIf Request_URI “^/_mem_bin/” worm no_log
SetEnvIf Request_URI “^/_vti_bin/” worm no_log
SetEnvIf Request_URI “^/c/” worm no_log
SetEnvIf Request_URI “^/d/” worm no_log
SetEnvIf Request_URI “^/msadc/” worm no_log
SetEnvIf Request_URI “^/MSADC/” worm no_log
SetEnvIf Request_URI “^/scripts/” worm no_log
SetEnvIf Request_URI “^/default\.ida” worm no_log
SetEnvIf Request_URI “root\.exe” worm no_log
SetEnvIf Request_URI “cmd\.exe” worm no_log
SetEnvIf Request_URI “NULL\.IDA” worm no_log
SetEnvIf Request_URI “Admin\.dll” worm no_log
# worm に該当するものを worm_log に記録
CustomLog logs/worm_log combined env=worm
上記については、さまざまなワームの痕跡を別ファイル(worm_log)に書き出しています。
LogFormat “%a %t %{Referer}i -> %U” referer
CustomLog logs/referer_log referer env=!no_log
1行目・・・・refererログの出力形式を設定
2行目・・・・・今まで記述した上記のnologを含めずにそれ以外のrefererログをreferer_logとして別ファイルに書き出す。
 
あとは、設定変更したらhttpdの再起動をすれば新たにログが生成されているので/var/log配下を参照
下記のようになります。
[root@www16071ue httpd]# ls -la *_log
-rw-r–r– 1 root root 5941151  7月 12 01:33 2015 access_log
-rw-r–r– 1 root root 7986     7月 11 22:13 2015 error_log
-rw-r–r– 1 root root 3310402 7月 12 01:33 2015 my_access_log
-rw-r–r– 1 root root 3193443  7月 12 01:33 2015 referer_log
-rw-r–r– 1 root root 0       7月 19 02:33 2015 worm_log
これで正規のアクセスログとなっているでしょう。
あとは、不正アクセスの痕跡をエラーログ(error_log)から調べて個別にdenyもしくは、対策を考えれば良いと思います。

*****************************************************************************
応援をお願いします。

ブログランキング・にほんブログ村へ

にほんブログ村

PVアクセスランキング にほんブログ村

カテゴリー: apache, Linux タグ: , ,