Linux LPIC303対策 Tech Webサーバー インフラ

【導入編】RockyLinux8にてApache を使ってhttps通信できる環境を作る

TL;DR

2020年12月9日、CentOS Projectは「CentOS Linux8」を2021年12月31日でサポートを終了することを発表。

CentOS7は予定通り2024年6月30日までサポートするとしているものの、CentOS9はリリースしないとされています。

そんなわけでCentOSユーザーはDebian, Ubuntuなど他ディストリビューションへ移るか、CentOSの代替となるディストリビューションへの移行を余儀なくするわけですが、すでにCentOSで稼働しているシステムに関しては、できればCentOSの代替ディストリビューションへ移行させたいところ。

という背景があり、自分が選んだCentOSの代替ディストリビューションはRocky Linux8です。

今回から、Rocky Linux8にApacheをインストールしてhttps通信ができるようになるまでを記事にしたいと思います。

今回は導入編ということで、Apacheのインストールから動作確認までをやっていきます。

検証環境

  • Rocky Linux8
  • GCEを立てて検証します

SELinuxを無効にする

vi /etc/selinux/config
SELINUX=enforcing

Apacheをインストール

yum -y intalls httpd

今回はyumで放り込みます。

ソースインストールの場合は、ARPがいてくれるおかげでディストリビューションの違いを受けないですしね。

ポイント

パッケージインストールのメリットはアップデートをyum update一撃で出来ること。

デメリットはゼロデイ攻撃。

脆弱性が発見された場合、パッチがリリースされるまで待たないといけない。

デフォルトページを変更する

vi /var/www/html/index.html
<html>
 <body>
  <h1>It works!</h1>
 </body>
</html>

Apache起動

systemctl start httpd

アクセスする

http://GCEの外部インスタンス/

4で修正したページが表示されることを確認する

設定を変更していきたいので、Apacheを一旦止める

systemctl stop httpd

設定変更する前に、オリジナルの設定ファイルはバックアップ取っておく

cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.org

バックアップで取れたら、viで編集していく。

vi /etc/httpd/conf/httpd.conf 

設定変更項目

Server管理者のメールアドレスを変更

ServerAdmin root@localhost → hogehoge@localhost

ServerのOSバージョン情報がHTTPヘッダに表示されないようにする

デフォルトでは、以下のようにHTTPヘッダに情報が出ている。

ApacheのバージョンもLinuxのディストリビューションも見えちゃってるので、攻撃者に余計な情報を与えてしまいます。

これを隠すための設定をします。

/etc/httpd/conf/httpd.confに以下のディレクティブを追加します。

ServerTokens prod

追加後、再度サーバーへリクエストしたときのHTTPヘッダ情報はこうなります。

ServerがApacheだということしか分からなくなりましたね。

設定ファイルを変更してるのでテストしておく

やる人とやらない人に分かれると思うのですが、自分は設定ファイルを変更した後には設定ファイルの構文をチェックします。

apachectl configtest

これでエラーが出なければOK。

ついでにですが、Apacheのテストコマンドはもう一つあります。

httpd -t

ですね。

この2つ何が違うのか?と思って調べてみました。

まず、whichコマンドを使ってapachectlの実態が何かを調べます。

which apachectl

結果、/usr/sbin/apachectlとなるので、このファイルの中を見ていきます。

すると↓の関数が実行されていることが分かる。

function testconfig() {
 # httpd is denied terminal access in SELinux, so run in the
 # current context to get stdout from $HTTPD -t.
 if test -x /usr/sbin/selinuxenabled && /usr/sbin/selinuxenabled; then
   runcon -- `id -Z` /usr/sbin/httpd $OPTIONS -t
 else
   /usr/sbin/httpd $OPTIONS -t
 fi
 ERROR=$?
}

apachectlを叩いた時に実行されている実態はtestconfigという関数でその関数の実行の実態は「/usr/sbin/httpd」だとわかる。

多分httpdコマンドの実態なんだろうなと思われるが、ウラを取る。

whitch httpd

この結果はやはり「 /usr/sbin/httpd 」となるので、apachectlの実態はhttpdと同じだということが分かる。

サーバーを起動したときに、Apacheが起動してくれるように設定する

systemctl enable httpd

最後に

とりあえず導入はさらっとこんな感じ。

基本的にApacheを入れたら絶対やるようなことは問題なくできた。

次回はOpenSSLを入れたうえで、このApacheを使ってhttps通信をしていきます。

お疲れ様でした。

直近の推し5選!

1

みなさんこんばんは。 こんにちは、Kanon です。今回は… しめさば先生の『君は僕の後悔』の感想記事です。 しめさば先生はこれまでにも『ひげを剃る。そして女子高生を拾う』や『きみは本当に僕の天使なの ...

2

リンク あらすじ 人生オール80点。 そんな俺が託されたのは、元トップアイドル・香澄ミルの世話だった。 ファン対応がしみつきなかなかクラスに馴染めないミル。 そんな彼女に頼られるうち、俺たちは図らずも ...

3

リンク 二丸先生の他の作品はこちら あらすじ 記憶喪失の湖西廻の前に現れたのは、清純で素朴な美少女、丹沢白雪。 「──私、廻くんと恋人だったの」  白雪はそう言って顔を赤らめ、廻の頬にキスをする。   ...

4

リンク あらすじ その夜、僕の青春は〈炎〉とともに産声をあげた――  スマホを忘れて夜の学校に忍び込んだ在原有葉(ありはらあるは)は、屋上を照らす奇妙な光に気づく。そこで出会ったのは、闇夜の中で燃え上 ...

5

こんにちは、Kanon です。今回は… しめさば先生の『きみは本当に僕の天使なのか』の感想記事です。 表紙とタイトルを見るに幻想的な恋の話のように思えるのですが、実はタイトルはそんな幻のようなものでは ...

-Linux, LPIC303対策, Tech, Webサーバー, インフラ
-, , , ,