Microsoft Office Protocol Discovery

表題なるアクセスがあるらしい。

■ 環境

Apache http 2.4.27

■ access.log

ふと気がついた下記のようなアクセスがある。

XXX.XXX.XXX.XXX - - [02/Apr/2018:19:02:36 +0900] "OPTIONS /example/ HTTP/1.1" 404 222 "-" "Microsoft Office Protocol Discovery"

UserAgentに入っている”Microsoft Office Protocol Discovery“って何だ?と調べてみると、IEでExcel等のOffice製品にブラウザ上から画面を貼り付けると、Excel等のOffice製品が勝手にスタイル等をアクセスしにくるらしい。数秒間に何度も。なんとも迷惑なアクセスである…。

まぁ気にしないことにする。

以上。

カレントディレクトリをDocumentRootにして確認

表題をhttpd@Dockerで行う。

■ 環境

  • httpd 2.4.29
  • Docker for Mac
  • Mac OSX El Capitan

■ httpd@Docker

最新版のDockerコンテナイメージを取得する。

$ docker pull httpd

自身の場合は、下記のオプションを指定して実行することが多い。

  • -ti
  • –rm
  • -p 8080:80
  • -v `pwd`:/usr/local/apache2/htdocs/

実行する時は下記のようになる。

docker run -ti --rm -p 8080:80 -v `pwd`:/usr/local/apache2/htdocs/ httpd

デーモンでの起動はせずに、ログをターミナルで見ながら確認する。ちょっとした時に確認するのに楽だ。

以上。

■ 関連

httpd@Dockerの起動方法

AmazonLinuxにmod_sslをインストール

表題の通り。

■ 環境

  • Apache httpd 2.4.27
  • Amazon Linux

■ mod_ssl

SSLのモジュールを入れたかったのだが、パッケージ名がわからず四苦八苦。

$ sudo yum install mod_ssl
Resolving Dependencies
  :
Error: httpd24-tools conflicts with httpd-tools-2.2.32-1.9.amzn1.x86_64
Error: httpd24 conflicts with httpd-2.2.32-1.9.amzn1.x86_64
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest
$

確かにインストールしたい環境は”httpd24“を入れている。

$ sudo yum search mod_ssl
Loaded plugins: priorities, update-motd, upgrade-helper
================ N/S matched: mod_ssl ================
mod_ssl.x86_64 : SSL/TLS module for the Apache HTTP Server

  Name and summary matches only, use "search all" for everything.
$

さてパッケージ名はなんであろうかと考える。

$ sudo yum search ssl
================ N/S matched: mod_ssl ================
  :
mod24_ssl.x86_64 : SSL/TLS module for the Apache HTTP Server
mod_ssl.x86_64 : SSL/TLS module for the Apache HTTP Server
  :
$

どうやらこれが正解のようである。

$ sudo yum install mod24_ssl

これでインストールができた。満足である。

以上。

proxy.confをオフ

Apache httpdにおいて表題の通り。

■ 環境

  • Apache httpd 2.4.27
  • Amazon Linux

■ error_log

再起動時等に、error_logに下記のメッセージが表示されているのが気になった。

[lbmethod_heartbeat:notice] [pid 3164] AH02282: No slotmem from mod_heartmonitor

これはなんだろう?と思いつつ調べていくと、下記の設定ファイルで読み込まれているモジュールのようである。

$ cat /etc/httpd/conf.modules.d/00-proxy.conf
# This file configures all the proxy modules:
LoadModule proxy_module modules/mod_proxy.so
LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so
LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so
LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_express_module modules/mod_proxy_express.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
LoadModule proxy_fdpass_module modules/mod_proxy_fdpass.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_hcheck_module modules/mod_proxy_hcheck.so
LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
$

そもそもproxyとしては利用していないので、これらのモジュールは不要である。よって設定ファイル名を”.conf“から変更し、”Include“されないようにした。これで再起動等をしても前述のメッセージは表示されないようになった。

以上。

使用可能なディレクティブ一覧

Apache httpdにおいて表題の件。知らなかったのでメモしておく。

■ 環境

  • Apache httpd 2.4.27
  • Amazon Linux

■ -L

ヘルプを見ていて気がついた下記のオプション。

$ httpd -h
  :
  -L                 : list available configuration directives
  :
$

試しにやってみた。

$ httpd -L
<Directory (core.c)
    Container for directives affecting resources located in the specified directories
    Allowed in *.conf only outside <Directory>, <Files>, <Location>, or <If>
  :
SecHashParam (mod_security2.c)
    Set Hash parameter
    Allowed in *.conf anywhere
$

ズラズラと大量にディレクティブが表示されたが、どのモジュールで使用可能になっているのかも一緒に表示してくれている。

この環境はModSecurityもインストールしているので、”mod_security2.c“も含まれた形になっていた。

以上。