FreeBSD5.3設定メモ Apache2

この記事は2005年頃に執筆した文書がもとになっている。

使用した OS は FreeBSD5.3-RELEASE。Apache のバージョンは 2.0.53_1。

インストール

ports からインストールする。今回は suEXEC を有効にする。suEXEC を有効にしていると CGI や SSI を、ユーザディレクトリでは各ユーザ・グループ、ルートディレクトリでは Apache のユーザ・グループで動かす事になる(インストール時のオプションで変更可能)。

# cd /usr/ports/www/apache2/
# make WITH_SUEXEC=yes SUEXEC_DOCROOT=/home SUEXEC_LOGFILE=/var/log/www/httpd_suexec.log install clean

httpd.conf の設定

# vi /usr/local/etc/apache2/httpd.conf

各種設定。最低限、サーバのドメインと listen するポートを設定する。以下、設定例。

Listen 80
ServerAdmin webmaster@example.com
ServerName www.example.com:80

DocumentRoot "/home"
Options MultiViews Indexes FollowSymLinks ExecCGI IncludesNoExec

<Directory "/home">

DocumentRoot は インストール時に指定した suEXEC の SUEXEC_DOCROOT と合わせること。もし、DocumentRootSUEXEC_DOCROOT をユーザのディレクトリに指定する(例えば、DocumentRoot "/home/user/public_html" など)場合、SuexecUserGroup user group などと書いておいたり、Apache のユーザ・グループを合わせてやったりすれば動作させる事が出来るが推奨しない。

#<Directory /home/*/public_html>
#    AllowOverride FileInfo AuthConfig Limit Indexes
#    Options MultiViews Indexes SymLinksIfOwnerMatch ExecCGI IncludesNoExec
#    <LimitExcept GET POST OPTIONS PROPFIND>
#        Order deny,allow
#        Deny from all
#    </LimitExcept>
#</Directory>

他のユーザに使用させないならば、上のようにコメントアウト。

DirectoryIndex index.html index.htm index.shtml index.cgi index.html.var

HostnameLookups On

SSI 等を利用する予定があれば追加しておく。HostnameLookupsOn にしとおくと、ホスト名を逆引きしてくるのでログが見やすくなる。ただし、システムにかかる負荷も増大する。

ErrorLog /var/log/www/httpd_error.log

SetEnvIf Remote_Addr 192.168.1. homelog nolog
SetEnvIf Request_URI "cmd\.exe" attack nolog
SetEnvIf Request_URI "default\.ida" attack nolog
SetEnvIf Request_URI "root\.exe" attack nolog
SetEnvIf Request_URI "Admin\.dll" attack nolog
CustomLog /var/log/www/home.log combined env=homelog
CustomLog /var/log/www/attack.log combined env=attack
CustomLog /var/log/www/httpd_access.log combined env=!nolog

各種ログ。www ディレクトリに Apache 関連のログをまとめて入れておく。ローカルネットワークは 192.168.1.0/24 と仮定し、別のログファイルにローカルからのアクセスを記録。他はワーム対策。

ServerTokens Prod
ServerSignature Off

必要以上にサーバ情報を返さない。
前者は応答ヘッダの制御。2.0.44以降なら ServerSignature にも適応される。後者はエラーメッセージ等のドキュメントのフッタに付加されるサーバ情報。

#AliasMatch ^/manual(?:/(?:de|en|fr|ja|ko|ru))?(/.*)?$ "/usr/local/share/doc/apache2$1"

#ScriptAlias /cgi-bin/ "/usr/local/www/cgi-bin/"

ドキュメントは非表示。cgi-bin 以外のディレクトリでも CGI の動作を許可しているので、こちらもコメントアウト。

AddLanguage ja .ja
AddLanguage ca .ca
AddLanguage cs .cz .cs
AddLanguage da .dk
AddLanguage de .de
AddLanguage el .el
AddLanguage en .en
AddLanguage eo .eo
AddLanguage es .es
AddLanguage et .et
AddLanguage fr .fr
AddLanguage he .he
AddLanguage hr .hr
AddLanguage it .it
#AddLanguage ja .ja
AddLanguage ko .ko
AddLanguage ltz .ltz
AddLanguage nl .nl
AddLanguage nn .nn
AddLanguage no .no
AddLanguage pl .po
AddLanguage pt .pt
AddLanguage pt-BR .pt-br
AddLanguage ru .ru
AddLanguage sv .sv
AddLanguage zh-CN .zh-cn
AddLanguage zh-TW .zh-tw

LanguagePriority ja en ca cs da de el eo es et fr he hr it ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW

文字化け対策。ja を一番上にしておく。

AddHandler cgi-script .cgi

AddType text/html .shtml
AddOutputFilter INCLUDES .shtml

CGI と SSI。
なお、server-info と server-status はデフォルトでオフになっているようだ。
設定が終わったら、ログファイルを保存するディレクトリを作っておく。ディレクトリが存在すれば各種ログは自動で生成されるが、suEXEC のログファイルは自動生成されないので、こちらも用意しておく。

# mkdir /var/log/www/
# touch /var/log/www/httpd_suexec.log

Apache の起動

Apache の起動は。

# apachectl start

Apache の停止は、

# apachectl stop

再起動は、

# apachectl restart

httpd.conf の文法チェックは、

# apachectl configtest

自動起動

# vi /etc/rc.conf
apache2_enable="YES"
Pocket

コメントを残す

メールアドレスが公開されることはありません。