Apache HTTP サームãƒãƒ¼ã‚¸ãƒ§ãƒ³ 2.0
本文書ã®å†…å®¹ã¯æ¬¡ã®ä¸€è¨€ã«å°½ãã¾ã™ã€‚「Apache ãŒè¨å®šãƒ•ァイルをèªã¿è¾¼ã‚€ã¨ãã« DNS を使用ã™ã‚‹å¿…è¦ãŒãªã„よã†ã«ã—ã¦ä¸‹ã•ã„ã€ã€‚Apache ãŒè¨å®šãƒ•ァイルを èªã¿è¾¼ã‚€ã¨ãã« DNS を使用ã™ã‚‹å¿…è¦ãŒã‚ã‚‹å ´åˆã€ä¿¡é ¼æ€§ã®å•題 (èµ·å‹•ã—ãªã„ã‹ã‚‚ã—れã¾ã›ã‚“) やサービス拒å¦ã‚„盗用アタック (ä»–ã®ãƒ¦ãƒ¼ã‚¶ã‹ã‚‰ãƒ’ットを盗むã“ã¨ã‚’å«ã¿ã¾ã™) ã®å•題ã«ç›´é¢ã™ã‚‹ã‹ã‚‚ã—れã¾ã›ã‚“。
<VirtualHost www.abc.dom>
ServerAdmin webgirl@abc.dom
DocumentRoot /www/abc
</VirtualHost>
Apache ãŒæ£å¸¸ã«æ©Ÿèƒ½ã™ã‚‹ã«ã¯ã€ãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆæ¯Žã«å¿…ãšäºŒã¤ã®
æƒ…å ±ãŒå¿…è¦ã«ãªã‚Šã¾ã™ã€‚ãれã¯ã€
ServerName
ã¨ã€ãã®ã‚µãƒ¼ãƒãŒå¿œç”ã™ã‚‹ãŸã‚ã® IP (最低一ã¤) ã§ã™ã€‚
上記例ã§ã¯ IP アドレスをå«ã‚“ã§ã„ã¾ã›ã‚“ã®ã§ã€Apache 㯠DNS
を使用ã—㦠www.abc.dom
を見ã¤ã‘ãªã‘れã°ãªã‚Šã¾ã›ã‚“。
何らã‹ã®ç†ç”±ã§è¨å®šãƒ•ァイルをèªã¿è¾¼ã‚“ã§ã„ã‚‹ã¨ãã« DNS
ãŒåˆ©ç”¨ã§ããªã‹ã£ãŸå ´åˆã€
ãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆã¯è¨å®šã•れã¾ã›ã‚“。
ãã—ã¦ã€ãã®ãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆã«å¯¾ã™ã‚‹ãƒ’ットã«ã¯å¿œç”ãŒãªã•れã¾ã›ã‚“
(Apache 1.2 以å‰ã§ã¯èµ·å‹•ã™ã‚‰ã—ã¾ã›ã‚“)。
www.abc.dom
ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ãŒ 10.0.0.1
ã ã¨ã—ã¾ã™ã€‚ã§ã¯ã€æ¬¡ã®è¨å®šã«ã¤ã„ã¦è€ƒãˆã¦ã¿ã¾ã—ょã†ã€‚
<VirtualHost 10.0.0.1>
ServerAdmin webgirl@abc.dom
DocumentRoot /www/abc
</VirtualHost>
ç¾åœ¨ã®ãƒªãƒªãƒ¼ã‚¹ã§ã¯ Apache 㯠DNS 逆引ãを使用ã—ã¦
ã“ã®ãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆã® ServerName
を見ã¤ã‘ã¾ã™ã€‚
ãã®é€†å¼•ããŒå¤±æ•—ã—ãŸå ´åˆã¯éƒ¨åˆ†çš„ã«ãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆã‚’無効ã«ã—ã¾ã™
(Apache 1.2 よりå‰ã§ã¯èµ·å‹•ã™ã‚‰ã—ã¾ã›ã‚“)。
ãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆãŒåå‰ãƒ™ãƒ¼ã‚¹ã§ã‚れã°å®Œå…¨ã«ç„¡åйã«ãªã‚Šã¾ã™ãŒã€
IP ベースã§ã‚ã‚Œã°æ¦‚ã動作ã—ã¾ã™ã€‚ã—ã‹ã—ãªãŒã‚‰ã€ã‚µãƒ¼ãƒåã‚’
å«ã‚€å®Œå…¨ãª URL を生æˆã—ãªã‘れã°ãªã‚‰ãªã„å ´åˆã¯ã€æ£ã—ã„ URL
ã®ç”ŸæˆãŒã§ãã¾ã›ã‚“。
次ã®ä¾‹ã¯ä¸Šè¨˜ã®å•題を解決ã—ã¦ã„ã¾ã™ã€‚
<VirtualHost 10.0.0.1>
ServerName www.abc.dom
ServerAdmin webgirl@abc.dom
DocumentRoot /www/abc
</VirtualHost>
サービス拒å¦ãŒèµ·ã“ã‚‹å ´åˆã€(å°‘ãªãã¨ã‚‚) 二ã¤ã®ã‚±ãƒ¼ã‚¹ãŒã‚りã¾ã™ã€‚
Apache 1.2 よりå‰ã‚’実行ã—ã¦ã„ã‚‹å ´åˆã€ãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆã®ãŸã‚ã®
上記ã®äºŒã¤ã® DNS 検索ã®ã†ã¡ä¸€ã¤å¤±æ•—ã™ã‚Œã°èµ·å‹•ã™ã‚‰ã—ã¾ã›ã‚“。
ãã—ã¦ã“ã® DNS 検索ãŒè‡ªåˆ†ã®åˆ¶å¾¡ä¸‹ã«ã™ã‚‰ãªã„å ´åˆã‚‚ã‚りãˆã¾ã™ã€‚
例ãˆã°ã€abc.dom
ãŒé¡§å®¢ã®ã‚µãƒ¼ãƒã®ä¸€ã¤ã§ã€
DNS ã¯é¡§å®¢è‡ªèº«ã§ç®¡ç†ã—ã¦ã„ã‚‹å ´åˆã€å˜ã«
www.abc.dom
レコードを削除ã™ã‚‹ã ã‘ã§ã€
(1.2 よりå‰ã®) サーãƒã‚’èµ·å‹•ä¸èƒ½ã«ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
ã‚‚ã†ä¸€ã¤ã®ã‚±ãƒ¼ã‚¹ã¯ã€ã‚ˆã‚Šæ°—付ãã«ãã„ã‚‚ã®ã§ã™ã€‚ 次ã®è¨å®šã«ã¤ã„ã¦è€ƒãˆã¦ã¿ã¾ã—ょã†ã€‚
<VirtualHost www.abc.dom>
ServerAdmin webgirl@abc.dom
DocumentRoot /www/abc
</VirtualHost>
<VirtualHost www.def.dom>
ServerAdmin webguy@def.dom
DocumentRoot /www/def
</VirtualHost>
10.0.0.1 ã‚’ www.abc.dom
ã«ã€
10.0.0.2 ã‚’ www.def.dom
ã«å‰²ã‚Šå½“ã¦ã¦ã„ã‚‹ã¨ã—ã¾ã™ã€‚
ã¾ãŸã€def.dom
ã¯é¡§å®¢è‡ªèº«ã® DNS
ã®åˆ¶å¾¡ä¸‹ã«ã‚ã‚‹ã¨ã—ã¾ã™ã€‚ã“ã®è¨å®šã§ã€abc.dom
ã«å‘ã‘られãŸãƒˆãƒ©ãƒ•ィック全ã¦ã‚’奪ã†ã“ã¨ãŒã§ãã‚‹ä½ç½®ã«
def.dom
ã‚’è¨ç½®ã§ãã¦ã„ã¾ã™ã€‚後ã¯å˜ã«
www.def.dom
㌠10.0.0.1 ã‚’å‚ç…§ã™ã‚‹ã‚ˆã†ã«
è¨å®šã™ã‚‹ã ã‘ã§ã™ã€‚DNS ã¯é¡§å®¢å´ã® DNS ã§ã‚³ãƒ³ãƒˆãƒãƒ¼ãƒ«ã•れã¦ã„ã‚‹ã®ã§ã€
www.def.dom
レコードãŒå¥½ããªå ´æ‰€ã‚’指ã™ã‚ˆã†ã«
è¨å®šã§ãã¦ã—ã¾ã†ã®ã‚’æ¢ã‚ã•ã›ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“。
10.0.0.1 ã«å¯¾ã™ã‚‹ãƒªã‚¯ã‚¨ã‚¹ãƒˆ
(http://www.abc.dom/whatever
å½¢å¼ã® URL
を入力ã—ãŸãƒ¦ãƒ¼ã‚¶ã‹ã‚‰ã®ã‚‚ã®å…¨ã¦ã‚’å«ã¿ã¾ã™)
ã¯ã€def.dom
ãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆã§å¿œç”ã•れã¾ã™ã€‚
ã“ã®ã‚ˆã†ãªã“ã¨ãŒä½•æ•…èµ·ã“ã‚‹ã‹ã‚‚ã£ã¨è‰¯ã知るãŸã‚ã«ã¯ã€
応ç”ã®å¿…è¦ãªãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆã¸ã®ãƒªã‚¯ã‚¨ã‚¹ãƒˆã«å¯¾ã—ã¦ã€
Apache ãŒã©ã®ã‚ˆã†ã«æ•´åˆæ€§ã‚’確ä¿ã™ã‚‹ã‹ã«ã¤ã„ã¦ã€
æ·±ã„è°è«–ãŒå¿…è¦ã«ãªã‚Šã¾ã™ã€‚ãŠãŠã–ã£ã±ãªèª¬æ˜Žã¯ã“ã¡ã‚‰ã«è¨˜è¿°ã•れã¦ã„ã¾ã™ã€‚
Apache 1.1 ã§ã® åå‰ãƒ™ãƒ¼ã‚¹ã®ãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆã®ã‚µãƒãƒ¼ãƒˆ è¿½åŠ ã®éš›ã«ã€
Apache 㯠httpd ã®å®Ÿè¡Œã•れã¦ã„るホスト㮠IP
アドレスを知る必è¦ãŒå‡ºã¦ãã¾ã—ãŸã€‚ã“ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’å¾—ã‚‹ãŸã‚ã«ã€
(ã‚‚ã—ã‚れã°) ã‚°ãƒãƒ¼ãƒãƒ«ãª
ServerName
を使用ã™ã‚‹ã‹ã€
C 言語ã®é–¢æ•° gethostname
(コマンドプãƒãƒ³ãƒ—トã§
hostname
ã¨ã‚¿ã‚¤ãƒ—ã—ãŸã¨ãã¨åŒã˜ã‚‚ã®ã‚’è¿”ã—ã¾ã™)
を呼ã³å‡ºã™ã‹ã‚’ã—ã¾ã™ã€‚
ãã®å¾Œã€å¾—られãŸã‚¢ãƒ‰ãƒ¬ã‚¹ã§ DNS 検索を行ãªã„ã¾ã™ã€‚
ç¾åœ¨ã®ã¨ã“ã‚ã€ã“ã® DNS 検索を回é¿ã™ã‚‹æ–¹æ³•ã¯ã‚りã¾ã›ã‚“。
DNS サーãƒãŒãƒ€ã‚¦ãƒ³ã—ã¦ã€ã“ã®æ¤œç´¢ãŒã§ããªã„事態ãŒèµ·ã“ã‚‹ã“ã¨ã‚’
æã‚Œã¦ã„ã‚‹ã®ã§ã‚れã°ã€/etc/hosts
ã«ãƒ›ã‚¹ãƒˆåを記述ã—ã¦ãŠãã“ã¨ãŒã§ãã¾ã™
(ãƒžã‚·ãƒ³ãŒæ£å¸¸ã«èµ·å‹•ã™ã‚‹ã‚ˆã†ã«æ—¢ã«è¨å®šã•れã¦ã„ã‚‹ã‹ã‚‚ã—れã¾ã›ã‚“)。
ãã®å ´åˆã€DNS å‚ç…§ãŒå¤±æ•—ã—ãŸå ´åˆã«ãƒžã‚·ãƒ³ãŒ /etc/hosts
を使用ã™ã‚‹ã‚ˆã†ã«è¨å®šã—ã¦ã„ã‚‹ã“ã¨ã‚’確èªã—ã¦ãã ã•ã„。
ãã®æ–¹æ³•ã¯ã€ã©ã® OS を使用ã—ã¦ã„ã‚‹ã‹ã«ä¾å˜ã—ã¾ã™ãŒã€
/etc/resolv.conf
ã‹ /etc/nsswitch.conf
を編集ã™ã‚‹ã“ã¨ã§è¨å®šã§ãã¾ã™ã€‚
ã‚‚ã—ä»–ã®ç†ç”±ã§ DNS を利用ã™ã‚‹å¿…è¦ãŒãªã„å ´åˆã¯ã€
HOSTRESORDER
環境変数を「 local
ã€ã«è¨å®šã™ã‚‹ã“ã¨ã§ãã®ã‚ˆã†ã«ã§ãã¾ã™ã€‚以上ã“れらã®äº‹æŸ„ã¯ã€ã©ã‚“ãª
OS ã€ãƒ¬ã‚¾ãƒ«ãƒãƒ©ã‚¤ãƒ–ラリを使用ã—ã¦ã„ã‚‹ã‹ã«ä¾å˜ã—ã¾ã™ã€‚ã¾ãŸã€
mod_env
を使用ã—ã¦ç’°å¢ƒå¤‰æ•°ã‚’制御ã—ãªã„é™ã‚Šã€
CGI ã«ã‚‚影響を与ãˆã¾ã™ã€‚man ページや使用ã—ã¦ã„ã‚‹ OS
ã® FAQ ã§èª¿ã¹ã‚‹ã¨è‰¯ã„ã§ã—ょã†ã€‚
VirtualHost
ã§ IP アドレスを使用ã™ã‚‹ã€‚
Listen
ã§ IP アドレスを使用ã™ã‚‹ã€‚
ServerName
ã‚’æŒã¤ã‚ˆã†ã«ã™ã‚‹ã€‚
<VirtualHost _default_:*>
サーãƒã‚’作る。DNS ã«é–¢ã—ã¦ã€ç¾çжã¯å…¨ã宜ã—ãã‚りã¾ã›ã‚“。Apache 1.2 ã§ã€ DNS ã®ã‚¤ãƒ™ãƒ³ãƒˆãŒå¤±æ•—ã—ã¦ã‚‚å°‘ãªãã¨ã‚‚起動プãƒã‚»ã‚¹ãŒç¶šãよã†ã«ã—ã¾ã—ãŸãŒã€ ã“ã‚ŒãŒæœ€é«˜ã®è§£æ±ºæ–¹æ³•ã§ã¯ãªã„ã§ã—ょã†ã€‚アドレスã®å†å‰²ã‚Šå½“ã¦ãŒå¿…è¦ä¸å¯é¿ ã¨ãªã£ã¦ã„る今日ã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒãƒƒãƒˆã«ãŠã„ã¦ã¯ã€ è¨å®šãƒ•ァイルã®ä¸ã§æ˜Žç¤ºçš„㪠IP ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’è¦æ±‚ã™ã‚‹ä»•様ã¯ã€ å…¨ã宜ã—ãã‚りã¾ã›ã‚“。
盗用ã®ã‚µãƒ¼ãƒ“スアタックã«é–¢ã—ã¦è¡Œãªã†ã¹ã事ã¯ã€ DNS é †å¼•ãを行ãªã£ã¦å¾—られãŸã‚¢ãƒ‰ãƒ¬ã‚¹ã«å¯¾ã™ã‚‹ DNS 逆引ãを行ãªã£ã¦ã€äºŒã¤ã®åå‰ã‚’比較ã™ã‚‹ã“ã¨ã§ã™ã€‚ ã“ã®äºŒã¤ãŒä¸€è‡´ã—ãªã‘れã°ãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆã¯ç„¡åйã«ãªã‚‹ã‚ˆã†ã«ã—ã¾ã™ã€‚ ã“ã†ã™ã‚‹ãŸã‚ã«ã¯é€†å¼•ã DNS ãŒé©åˆ‡ã«è¨å®šã•れã¦ã„ã‚‹å¿…è¦ãŒã‚りã¾ã™ (FTP サーãƒã‚„ TCP ラッパーã®ãŠã‹ã’ã§ã€ŒäºŒé‡é€†å¼•ãã€DNS ã¯ä¸€èˆ¬çš„ã« ãªã£ã¦ã„ã¾ã™ã®ã§ã€ç®¡ç†è€…ã«ã¯ãŠé¦´æŸ“ã¿ã‚‚ã®ã§ã—ょã†)。
IP アドレスãŒä½¿ç”¨ã•れã¦ã„ãªã㦠DNS ãŒå¤±æ•—ã—ãŸå ´åˆã¯ã€ ã©ã†ã—ã¦ã‚‚ãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆã‚¦ã‚§ãƒ–サーãƒã‚’ä¿¡é ¼æ€§ã‚’ç¢ºä¿ã—㦠起動ã•ã›ã‚‹ã“ã¨ã¯ä¸å¯èƒ½ã®ã‚ˆã†ã§ã™ã€‚ è¨å®šã®ä¸€éƒ¨ã‚’無効ã«ã™ã‚‹ã¨ã„ã†ã‚ˆã†ãªéƒ¨åˆ†çš„ãªè§£æ±ºã§ã¯ã€ サーãƒãŒä½•ã‚’ã™ã‚‹ã‚ˆã†ã«ã™ã‚‹ã‹ã«ã‚‚よりã¾ã™ãŒã€ ãã®ã‚µãƒ¼ãƒãŒèµ·å‹•ã—ãªã„ã‚ˆã‚Šç¢ºå®Ÿã«æ‚ªã„状æ³ã«ãªã‚‹ã§ã—ょã†ã€‚
HTTP/1.1 ãŒé–‹ç™ºã•れã€ãƒ–ラウザやプãƒã‚シ㌠Host
ヘッダを発行ã™ã‚‹ã‚ˆã†ã«ãªã£ãŸã®ã§ã€IP ベースã®ãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆã‚’
å…¨ã使用ã—ãªãã¦ã‚‚済むよã†ã«ãªã‚‹ã‹ã‚‚ã—れã¾ã›ã‚“。
ã“ã®å ´åˆã€ã‚¦ã‚§ãƒ–サーãƒã¯è¨å®šä¸ã« DNS å‚ç…§ã‚’ã—ãªãã¦ã‚‚済ã¿ã¾ã™ã€‚
ã—ã‹ã— 1997 å¹´ 3 月時点ã®çжæ³ã§ã¯ã€
商用レベルã®ã‚¦ã‚§ãƒ–サーãƒã§ä½¿ç”¨ã§ãã‚‹ã»ã©ã«ã¯ã€
ã“ã‚Œã‚‰ã®æ©Ÿèƒ½ã¯åºƒã開発ãŒé€²ã‚“ã§ã„ã¾ã›ã‚“。