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“も含まれた形になっていた。

以上。

ModSecurity requires mod_unique_id to be installed.

ModSecurityを入れた環境で、表題のエラーが出ていた。

■ 環境

  • ModSecurity 2.9.2
  • Apache httpd 2.4.27
  • Amazon Linux

■ error_log

下記のようなメッセージが表示されている。

[Mon Aug 08 19:17:11.386399 2017] [:error] [pid 4449] ModSecurity: ModSecurity requires mod_unique_id to be installed.

mod_unique_id“がインストールされていないようだ。

ファイルの存在確認。

$ ls -l /etc/httpd/modules/mod_unique_id.so
-rwxr-xr-x 1 root root 10224 Aug  3 03:03 /etc/httpd/modules/mod_unique_id.so
$

インストールはされている様子。設定ファイルを確認する。

下記ファイルに記載されていた。

/etc/httpd/conf.modules.d/00-base.conf

ただしコメントアウトされていた。

# LoadModule unique_id_module modules/mod_unique_id.so

今回は特に問題がない気がするので、この行をコメントインして終了とする。

`httpd`を再起動して前述のエラーメッセージは出力されなくなった。

以上。

特定のpathにIP制限をかける

httpdにおいて表題の通り。

■ 環境

  • Apache httpd 2.4.25
  • AmazonLinux

■ IP制限

アクセス元のIPを下記のように制限することができる。

<Directory /var/www/html/www.example.com/path1>
  Order Deny,Allow
  Allow from XXX.XXX.XXX.XX1
  Allow from XXX.XXX.XXX.XX2
  Allow from XXX.XXX.XXX.XX3
  Deny from all
</Directory>

上記設定では、3つのIP以外からのアクセスは”403“のステータスが返される。

ちょっとしたものを置いておくけど、関係ない人には見せたくない時に便利である。

以上。