ubuntu 20.04にApache2をインストール

ubuntu 20.04 Serverでメールサーバーを立て直そうとした時に、iRedMailのhttpdサーバーがnginxになってしまったため、httpdサーバーとして使い慣れているapacheを使用したかったので、iRedMailの使用を諦めて、apache2・php7.4・mySql(mariadb)・postfix・Dovecotのインストールを行います。

ドメイン名(FQDN)ホスト名を設定する

$ hostname -f
ubuntu

ホスト名はetc/hostname と /etc/hostsに設定されているのでこの2つのファイルを修正します。

$ sudo nano /etc/hostname

ubuntu → XXXに変更する

$ sudo nano /etc/hosts
127.0.1.1 xxx → XXX.domainName.com XXX localhost localhost.localdomain

再起動してFQDNホスト名を確認します。

$ sudo reboot
$ hostname -f
XXX.domainname.com

apache2のインストール

Ubuntuのパッケージからインストールします。

$ sudo apt install apache2

セキュリティの設定

ApacheとOSのバージョン情報を隠蔽する
Apacheと、OSのバージョン情報が外部からは見えないようにします。

$ sudo nano /etc/apache2/conf-enabled/security.conf

ServerSignature Off
ServerTokens Prod

IndexesとFollowSymLinksオプションを無効に

インストール直後は有効になっている、Indexes と FollowSymlinks の2つのオプションを無効にします。

Indexes オプションは、有効なページがなかった場合に、そのディレクトリのファイルやディレクトリの一覧を表示するので、全体でOffにし、FollowSymLinks は、個別のロケーションで有効にします。

$ sudo nano /etc/apache2/apache2.conf
  <directory var=" www=">
    Options -Indexes -FollowSymLinks
    AllowOverride None
    Require all granted
  </directory> 

クリックジャッキング対策

mod_headers を有効にする。

$ sudo a2enmod headers
$ sudo nano /etc/apache2/conf-available/security.conf

  Header set X-Frame-Options: "sameorigin"

SSLを有効にする

httpの通信をSSL/TLSで暗号化された経路でのみ受け付けるようにします。

モジュールを有効にする

mod_rewirte を有効にする

$ sudo a2enmod rewirte

mod_sslを有効にする

$ sudo a2enmod ssl

httpへのリクエストをhttpsにリダイレクトする

80番ポートへのhttpリクエストをすべて、443番にリダイレクトします。
000-default.confを次に様に変更する

$ sudo nano /etc/apache2/sites-available/000-default.conf

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html

    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

サイトを有効化

default-ssl.conf を有効にする。

$ sudo a2ensite default-ssl.conf

apacheを再起動します。

$ sudo systemctl restart apache2

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です