システム開発用のアイキャッチ

【CentOS7】Apache2.4のインストール方法とhttpd.confの設定

WEBサーバーとしてよく利用されるApache(アパッチ)のインストール方法とhttpd.confの初期設定についてまとめました。
インストールするApacheのバージョンは、Apache2.4です。

また、OS(ディストリビューション)はCentOS7.6です。

Apacheをインストール

パッケージを最新にしていない場合は、
Apacheをインストールする前に、まずパッケージのアップデートしておいて下さい。

数分掛かりますが、以下を実行するだけです。
# yum -y update

パッケージのアップデートが完了したら、次はサクッとApacheをインストールしてしまいます。

以下を実行するだけです。
# yum -y install httpd

インストールは数十秒で終わります。

インストールが完了したら、念の為にApacheのバージョンを確認してみましょう。
httpd -v

インストールが正常に完了していれば、以下のようにバージョンが表示されるはずです。

Server version: Apache/2.4.6 (CentOS)
Server built: Jul 29 2019 17:18:49

これで問題ないですね。

次は、Apacheを起動して、ついでに、自動起動設定も行っておきます。

Apacheを起動
# systemctl start httpd.service

Apacheの自動起動設定
# systemctl enable httpd.service

これで完了といきたいところですが、もう一つ、大事な作業あります。
ファイアウォールのポート番号を開放しておく必要があります。

CentOS7では、デフォルトでfirewalldが起動していることが多いですが、
もし起動していない場合には、セキュリティを高めるために、必ず起動させておいて下さい。

■firewalldの起動
# systemctl start firewalld.service
■firewalldの自動起動設定
# systemctl enable firewalld.service

まずは、firewalldでポートが許可されているかを確認します。
# firewall-cmd --list-services --zone=public --permanent

「dhcpv6-client ssh」と表示された場合は、まだ許可されていません。
なので、さっそく、HTTP(80)とHTTPS(443)を開放します。

ポートを開放。
# firewall-cmd --permanent --zone=public --add-service=http
# firewall-cmd --permanent --zone=public --add-service=https

ファイアウォールの設定を反映。
# firewall-cmd --reload

これで完了です。

再度、firewalldで許可されたかを確認します。
# firewall-cmd --list-services --zone=public --permanent

以下のように表示されていると思います。

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の初期画面

 

Apacheの設定ファイル「httpd.conf」の編集とセキュリティ強化

Apacheのインストールまで完了したら、
次は、Apacheの設定ファイルであるhttpd.confの編集を行います。

まずは、httpd.confのバックアップを取ります。
# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bk2019.09.19

バックアップを取ったら、httpd.confの編集を行います。
# vi /etc/httpd/conf/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を作成して、そちらに追記してきます。

secureon.confを作成して、以下の内容を追記していきます。
# vi /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

最後に、Apacheを再起動して編集した内容を反映させます。
# systemctl start httpd.service

 

PHP、MariaDB、FTPサーバーのインストール方法も公開しています。
興味のある方は、以下のページも確認をお願いします。

この記事を書いている人
株式会社ディープ
名前足立拓也

メールアドレスadachi@deep-deep.jp

関連記事

最近の記事

  1. ドメインについて
  2. WP:WordPress(ワードプレス)
  3. URL設計(URLデザイン)
  4. URL「ディレクトリ名」と文字アンダースコア(_)とハイフン(-)
  5. SEO対策(外部ファイルの読み込み)
  6. URL リダイレクト
  7. インデックスされない
  8. 内部対策は必要?
  9. CMS(シーエムエス)
  10. SEO業者は必要?

Twitter

アーカイブ

PAGE TOP