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