WEBサーバーとしてよく利用されるApache(アパッチ)のインストール方法とhttpd.confの初期設定についてまとめました。
インストールするApacheのバージョンは、Apache2.4です。
また、OS(ディストリビューション)はCentOS7.6です。
コンテンツ
Apacheをインストール
パッケージを最新にしていない場合は、
Apacheをインストールする前に、まずパッケージのアップデートしておいて下さい。
↓
パッケージのアップデートが完了したら、次はサクッとApacheをインストールしてしまいます。
インストールは数十秒で終わります。
↓
インストールが正常に完了していれば、以下のようにバージョンが表示されるはずです。
Server version: Apache/2.4.6 (CentOS)
Server built: Jul 29 2019 17:18:49
これで問題ないですね。
次は、Apacheを起動して、ついでに、自動起動設定も行っておきます。
↓
これで完了といきたいところですが、もう一つ、大事な作業あります。
ファイアウォールのポート番号を開放しておく必要があります。
CentOS7では、デフォルトでfirewalldが起動していることが多いですが、
もし起動していない場合には、セキュリティを高めるために、必ず起動させておいて下さい。
■firewalldの起動
# systemctl start firewalld.service
■firewalldの自動起動設定
# systemctl enable firewalld.service
↓
「dhcpv6-client ssh」と表示された場合は、まだ許可されていません。
なので、さっそく、HTTP(80)とHTTPS(443)を開放します。
# firewall-cmd --permanent --zone=public --add-service=https
これで完了です。
以下のように表示されていると思います。
dhcpv6-client ssh http https
因みに、
firewalldではなくiptablesが使用されている場合があります。
その場合は、以下の順で設定を行っていきます。
■HTTPポート(80)を許可
# iptables -A INPUT -p tcp --dport 80 -j ACCEPT
■HTTPS(443)を許可
# iptables -A INPUT -p tcp --dport 443 -j ACCEPT
■設定を保存
# service iptables save
■iptablesを再起動
# systemctl restart iptables.service
↓
それでは、実際にブラウザ上からアクセスしてみます。
まだ、ドメインの紐づけを行っていな場合には、ブラウザのアドレスバーでIPアドレスを叩いてください。
以下のような画面が表示されればOKです。
Apacheの設定ファイル「httpd.conf」の編集とセキュリティ強化
Apacheのインストールまで完了したら、
次は、Apacheの設定ファイルであるhttpd.confの編集を行います。
↓
以下のように変更します。
↓
Options Indexes FollowSymLinks
を
Options -Indexes FollowSymLinks
に変更
# ディレクトリ内にindex.htmlが無い場合に、ファイル一覧が見えてしまうのを防いでくれます。
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
を
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
に変更
※URLが「/」で終わる場合に、index.htmlが無ければ、index.phpをトップページとして認識してくれます。
↓
次に、セキュリティに関する設定もいくつか行っておきます。
httpd.confに直接記述してもいいのですが、管理が煩雑になるので、
今回は、「/etc/httpd/conf.d/」にsecureon.confを作成して、そちらに追記してきます。
#HTTPレスポンスヘッダーにApacheのバージョンが出力されないようにする
ServerTokens Prod
#HTTPレスポンスヘッダーにPHPバージョンが出力されないようにする
Header unset X-Powered-By
#エラー画面(404ページなど)のフッターに情報が表示されないようにする
ServerSignature Off
#XSS(クロスサイトスクリプティング)対策
Header set X-XSS-Protection "1; mode=block"
Header set X-Content-Type-Options nosniff
#クリックジャッキング対策
Header append X-Frame-Options SAMEORIGIN
※外部サイトからのiframeでページの埋め込みを禁止します
#TRACEメソッドをOffにする
TraceEnable off
#ETagを出力しない
FileETag None
PHP、MariaDB、FTPサーバーのインストール方法も公開しています。
興味のある方は、以下のページも確認をお願いします。
この記事へのコメントはありません。