サーバーが不正にアクセスされた場合でも被害を最小限に抑えるためには、サーバーを実行するユーザーに権限を与えないことです。
ここでは権限が少ない 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_netware_module>
#
# 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.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
#User daemon
#Group daemon
User httpdApache 実行ユーザー
Group httpdApache 実行グループ
</IfModule>
#
# 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.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
#User daemon
#Group daemon
User httpdApache 実行ユーザー
Group httpdApache 実行グループ
</IfModule>
コンテンツの所有者の変更
Apache を実行するユーザーを変更した場合は、公開するディレクトリやファイルの所有者を Apache を実行するユーザーに変更する必要があります。
公開するコンテンツが格納されているディレクトリが /home/httpd の場合は以下のように実行します。
# chown -R httpd:httpd /virtual/honana.com/public_html
Apache の再起動
Apache の設定ファイルを変更した後は Apache を再起動する必要があります。
# /usr/local/httpd/bin/apachectl graceful