Web

Install ModSecurity with Apache2 on Ubuntu 20.04

2021年05月1日

Overview

ModSecurty のインストールと動作の確認をする。

Reference

Environment

OS

$ cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.2 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.2 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
$ uname -a
Linux svr-web10 5.4.0-72-generic #80-Ubuntu SMP Mon Apr 12 17:35:00 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
$ 

Apache

$ apache2 -v
Server version: Apache/2.4.46 (Ubuntu)
Server built:   2020-08-10T12:32:13
$ 

Prerequisites

hosts の 127.0.1.1 に書かれいる Hostname は FQDN ( hostname.domain )の形式で記載されいている。

$ cat /etc/hosts
127.0.1.1 svr-web10.travelersmedia.jp
$ 

000-default.conf の ServerName には hosts ファイルの 127.0.1.1 と同じFQDN が書かれている。

$ cat /etc/apache2/sites-available/000-default.conf
ServerName svr-web10.travelersmedia.jp
$ 

上記のミスマッチが存在すると下記のエラーを出力する。

$ sudo apachectl -M | grep security
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
 security2_module (shared)
$

Installation

$ sudo apt-get install libapache2-mod-security2
$ sudo systemctl restart apache2

Check module

hyamazak@svr-web10:~$ sudo apachectl -M | grep security
 security2_module (shared)
hyamazak@svr-web10:~$ 

Configuration

$ sudo cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
$ sudo vim /etc/modsecurity/modsecurity.conf
SecRuleEngine = on
$ sudo systemctl restart apache2

Download and Modify csr

$ sudo mv /usr/share/modsecurity-crs /usr/share/modsecurity-crs.bk
$ sudo git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git /usr/share/modsecurity-crs
$ sudo cp /usr/share/modsecurity-crs/crs-setup.conf.example /usr/share/modsecurity-crs/crs-setup.conf
$ sudo vim /etc/apache2/mods-enabled/security2.conf
IncludeOptional /usr/share/modsecurity-crs/*.conf <---- Add
IncludeOptional "/usr/share/modsecurity-crs/rules/*.conf <---- Add
$

Check ModSecurity

Browse to Sites

Browse https://rlab.cavtime.net/index.html?exec=/bin/bash

Check Log File