4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

apache Basic認証を検証してみた

Last updated at Posted at 2023-05-20

はじめに

実務でapache Basic認証が出てきたため、イメージが付かないため検証してみることにしました。

Basic認証とは基本認証と呼ばれていてパスワードが暗号化されない認証です。

以下の記事を参考にしました。
https://atmarkit.itmedia.co.jp/flinux/rensai/linuxtips/698apachebasic.html

LPICレベル2 小豆本を参考にしました。
「Linux教科書 LPICレベル2 Version 4.5対応」
https://amzn.asia/d/iz08jei

構築手順

VPCを作成する

サービス >> VPC >> 左ペインのお使いのVPCを選択して、「VPCを作成」をクリックする

基本的にはデフォルトVPCがありますが誤って削除した場合は再度作成されることはありません。
以下の手順で新規にVPCを作成しました。

image.png

VPC作成完了
image.png

EC2を作成する

サービス >> EC2 >> 左ペインのインスタンスを選択する
t2.microで作成しました。
image.png

セキュリティグループを作成する

インバウンドは自分のホストからしかアクセスしないため、MyIPでapacheのため80ポートとSSH接続を許可しました。
※今回443ポートは使用しません。
image.png

EC2のサブネットのルートテーブルにインターネットゲートウェイのルートが入っていない場合は
SSH接続できません。注意してください

apacheのインストール

rootに昇格する

$ sudo su -

apacheのインストールを行う

# yum install httpd

apacheのインストール後、以下が出力されたらOKです。

Installed:
  httpd.x86_64 0:2.4.57-1.amzn2

Dependency Installed:
  apr.x86_64 0:1.7.2-1.amzn2                      apr-util.x86_64 0:1.6.3-1.amzn2.0.1        apr-util-bdb.x86_64 0:1.6.3-1.amzn2.0.1        generic-logos-httpd.noarch 0:18.0.0-4.amzn2
  httpd-filesystem.noarch 0:2.4.57-1.amzn2        httpd-tools.x86_64 0:2.4.57-1.amzn2        mailcap.noarch 0:2.1.41-2.amzn2                mod_http2.x86_64 0:1.15.19-1.amzn2.0.1

Complete!

apacheサービスを起動しました

# systemctl start httpd

apacheサービスを自動起動設定しました

# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.

apacheサービスを状態を確認しました

# systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2023-05-19 23:50:44 UTC; 2min 39s ago
     Docs: man:httpd.service(8)
 Main PID: 3588 (httpd)
   Status: "Total requests: 2; Idle/Busy workers 100/0;Requests/sec: 0.0126; Bytes served/sec:  10 B/sec"
   CGroup: /system.slice/httpd.service
           tq3588 /usr/sbin/httpd -DFOREGROUND
           tq3589 /usr/sbin/httpd -DFOREGROUND
           tq3590 /usr/sbin/httpd -DFOREGROUND
           tq3591 /usr/sbin/httpd -DFOREGROUND
           tq3592 /usr/sbin/httpd -DFOREGROUND
           tq3593 /usr/sbin/httpd -DFOREGROUND
           mq3656 /usr/sbin/httpd -DFOREGROUND

May 19 23:50:44 ip-10-0-149-64.ap-northeast-1.compute.internal systemd[1]: Starting The Apache HTTP Server...
May 19 23:50:44 ip-10-0-149-64.ap-northeast-1.compute.internal systemd[1]: Started The Apache HTTP Server.
[root@ip-10-0-149-64 ~]#

index.htmlを作成する

Basic認証用のフォルダとそのフォルダ配下にindex.htmlを作成しました。

# cd /var/www/html

Basic認証のフォルダ作成

# mkdir test
# ls -tlr
total 4
-rw-r--r-- 1 root root 183 May 19 23:48 index.html
drwxr-xr-x 2 root root  24 May 20 00:09 test

Basic認証のフォルダ配下にindex.htmlを作成する

Hello wordの作成方法は以下のサイトから引用
https://b3s.be-s.co.jp/nocategory/3359/

# cd test
[root@ip-10-0-149-64 test]# ls -tlr
total 4
-rw-r--r-- 1 root root 183 May 19 23:48 index.html
[root@ip-10-0-149-64 test]#
[root@ip-10-0-149-64 test]#
[root@ip-10-0-149-64 test]# cat index.html
<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="utf-8">
      <title>テスト</title>
  </head>
  <body>
    <h1>Hello World!!</h1>
  </body>
</html>>
  </body>
</html>

apache 設定ファイルにBasic認証を入れる

apacheの設定ファイルのバックアップを取得する

# cd /etc/httpd/conf/
# cp -p httpd.conf httpd.confbk

apache 設定ファイルにBasic認証を追記しました。

# vi httpd.conf

161行目~168行目に追加
161 <Directory "/var/www/html/test">
162
163    AuthType Basic
164    AuthName "Please Enter Your ID and Password"
165    AuthUserFile /etc/httpd/conf/htpasswd
166    Require valid-user
167
168 </Directory>

左側が設定ファイル 右側が変更前の設定ファイルです。

# sdiff -s httpd.conf httpd.confbk

                                                              <
                                                              <
                                                              <
<Directory "/var/www/html/test">                              <
                                                              <
   AuthType Basic                                             <
   AuthName "Please Enter Your ID and Password"               <
   AuthUserFile /etc/httpd/conf/htpasswd                      <
   Require valid-user                                         <
                                                              <
</Directory>                                                  <                                                              

ユーザーアカウント登録

以下のコマンドでBasic認証のユーザーを作成されます。
/etc/httpd/conf/htpasswdファイルも新規に作成されます。

「/etc/httpd/conf/htpasswd」が既に現行サーバーに存在する場合は
ユーザー追加前に念のため、バックアップを取っておいた方が良さそうです。

# htpasswd -c /etc/httpd/conf/htpasswd test
New password:
Re-type new password:
Adding password for user test

アカウントが作成されました。パスワードは暗号化されています。

# cat /etc/httpd/conf/htpasswd
test:$apr1$0ZfL72is$0meCXhfZKBKzEiKX18M580

-cを付けるとhtpasswdが新規に作成され過去設定したユーザーが消えてしまいます。注意してください
既存のユーザーの場合はパスワードが変更できます。

以下は既存のhtpasswdファイルに対してtest2ユーザーを新規に登録した場合です。
※パスワード変更する際も以下のコマンドを使用します。

# htpasswd  /etc/httpd/conf/htpasswd test2
New password:
Re-type new password:
Adding password for user test2

test2ユーザーが追加されました。

# cat /etc/httpd/conf/htpasswd
test:$apr1$0ZfL72is$0meCXhfZKBKzEiKX18M580
test2:$apr1$6zTl2wXa$wmng9A66R9e6YxWXWYAfS/

htpasswdの権限変更

# cd /etc/httpd/conf
# chown apache:apache htpasswd

ブラウザにアクセス

image.png

image.png

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?