サーバーが不正にアクセスされた場合でも被害を最小限に抑えるためには、サーバーを実行するユーザーに権限を与えないことです。
ここでは権限が少ない Apache 専用ユーザーを作成してそのユーザーがサーバーのリクエストに応答するように設定します。
実行ユーザーの作成
Apache 実行ユーザーである httpd グループとユーザーを作成します。
# groupadd httpd
# useradd -g httpd -d /var/empty/httpd -s /sbin/nologin httpd
# useradd -g httpd -d /var/empty/httpd -s /sbin/nologin httpd
Apache の設定
Apache の設定ファイル httpd.conf を編集して Apache の実行ユーザーに関する設定を行います。
Apache の実行ユーザーは User ディレクティブ、Group ディレクティブを使って行います。
デフォルトで設定されている User ディレクティブと Group ディレクティブの設定を以下のように変更します。
# vi /usr/local/httpd/conf/httpd.conf
/usr/local/httpd/conf/httpd.conf
<IfModule !mpm_winnt.c>
<IfModule !mpm_netware.c>
#
# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.
#
# User/Group: The name (or #number) of the user/group to run httpd as.
# . On SCO (ODT 3) use “User nouser” and “Group nogroup”.
# . On HPUX you may not be able to use shared memory as nobody, and the
# suggested workaround is to create a user www and use that user.
# NOTE that some kernels refuse to setgid(Group) or semctl(IPC_SET)
# when the value of (unsigned)Group is above 60000;
# don’t use Group #-1 on these systems!
#
#User nobody
#Group #-1
User httpdApache 実行ユーザー
Group httpdApache 実行グループ
</IfModule>
</IfModule>
<IfModule !mpm_netware.c>
#
# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.
#
# User/Group: The name (or #number) of the user/group to run httpd as.
# . On SCO (ODT 3) use “User nouser” and “Group nogroup”.
# . On HPUX you may not be able to use shared memory as nobody, and the
# suggested workaround is to create a user www and use that user.
# NOTE that some kernels refuse to setgid(Group) or semctl(IPC_SET)
# when the value of (unsigned)Group is above 60000;
# don’t use Group #-1 on these systems!
#
#User nobody
#Group #-1
User httpdApache 実行ユーザー
Group httpdApache 実行グループ
</IfModule>
</IfModule>
コンテンツの所有者の変更
Apache を実行するユーザーを変更した場合は、公開するディレクトリやファイルの所有者を Apache を実行するユーザーに変更する必要があります。
公開するコンテンツが格納されているディレクトリが /home/httpd の場合は以下のように実行します。
# chown -R httpd:httpd /virtual/honana.com/public_html
Apache の再起動
Apache の設定ファイルを変更した後は Apache を再起動する必要があります。
# /usr/local/httpd/bin/apachectl graceful