Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > e74e806c1a2640e922856d7eb69d1420 > files > 120

howto-text-ja-2006-5mdv2010.0.noarch.rpm

  Virtual Services Howto
  Brian Ackerman, brian@nycrc.net
  v1.2, 4 November 1997
  ˆÉ²Ž¡ “N, isaji@mxu.meshnet.or.jp
  23 Dec 1997

  ‚±‚̃hƒLƒ…ƒƒ“ƒg‚̓T[ƒrƒX‚̉¼‘z‰»‚Ì•û–@‚ɂ‚¢‚Ä‚Ü‚·‚Ü‚·‘‚¦‚Ä‚«‚½—v‹
  ‚ɉž‚¶‚ď‘‚©‚ê‚Ü‚µ‚½B (–óŽÒF–󕶂Ɋւ·‚鎿–â‚Í•K‚¸ˆÉ²Ž¡‚Ü‚Å‚¨Šè‚¢‚¢
  ‚½‚µ‚Ü‚·B‚Ü‚½‚±‚ÌHOWTO–{‘Ì(‰pŒê)‚̍ŐV”Å‚Í ftp://sun-
  site.unc.edu/pub/Linux/docs/HOWTO/ ‚©‚ç“üŽè‚Å‚«‚Ü‚·)B
  ______________________________________________________________________

  –ÚŽŸ

  1. ƒCƒ“ƒgƒƒ_ƒNƒVƒ‡ƒ“
     1.1 •K—v‚È’mŽ¯
     1.2 –Ú“I
     1.3 ƒtƒB[ƒhƒoƒbƒN
     1.4 ‰ü’ù—š—ð
     1.5 ’˜ìŒ A”z•zðŒ(Copyright/Distribution)

  2. IPƒGƒCƒŠƒAƒX
  3. ƒo[ƒ`ƒƒƒ‹ƒf[ƒ‚ƒ“(virtuald)
     3.1 ‚ǂ̂悤‚È“®ì‚ð‚·‚é‚©
     3.2 inetd
     3.3 virtual.conf
     3.4 virtuald‚̃\[ƒX

  4. ‰¼‘zƒXƒNƒŠƒvƒg(Virt scripts)
     4.1 virtfs
     4.2 virtexec
     4.3 virtfs‚Ævirtexec‚ÉŠÖ‚·‚钍ˆÓ

  5. DNS
  6. Syslog
     6.1 –â‘è“_
     6.2 ‰ðŒˆ•û–@

  7. ‰¼‘zFTP
  8. ‰¼‘zWeb
  9. ‰¼‘z“I‚ÈMail/Pop
     9.1 Qmail ‚Ì’ˆÓ“_
     9.2 –â‘è
     9.3 ˆ«‚¢‰ðŒˆ•û–@
     9.4 —Ç‚¢‰ðŒˆ•û–@

  10. ‚»‚Ì‘¼‰¼‘z“I‚É‚Å‚«‚邱‚Æ
  11. ‚Ü‚Æ‚ß
  12. FAQ
  13. ì‹Æƒƒ‚
     13.1 virtfs‚ɂ‚¢‚Ä
     13.2 ‚»‚Ì‘¼‚̃Gƒ‰[
        13.2.1 /var/log/syslog:
        13.2.2 FTP
        13.2.3 Mail
        13.2.4 Web

  ______________________________________________________________________

  1.  ƒCƒ“ƒgƒƒ_ƒNƒVƒ‡ƒ“

  1.1.  •K—v‚È’mŽ¯

  ‰¼‘zƒT[ƒrƒX‚̐ݒè‚Í‚»‚ñ‚Ȃɓ‚¢‚à‚Ì‚Å‚Í‚ ‚è‚Ü‚¹‚ñB‚µ‚©‚µŠî‘b“I‚ÈŽ–
  •¿‚ɉÁ‚¦‚Ä‚»‚êˆÈã‚Ì’mŽ¯‚à•K—v‚Æ‚³‚ê‚Ü‚·B‚±‚̃hƒLƒ…ƒƒ“ƒg‚Å‚ÍLinuxƒ}
  ƒVƒ“‚̐ݒè‚ÌŽd•û‚ɂ‚¢‚Ä‚ÍŽæ‚舵‚¢‚Ü‚¹‚ñB

  ‚±‚̃hƒLƒ…ƒƒ“ƒg‚ð—‰ð‚·‚é‚ɂ͈ȉºq‚ׂéƒhƒLƒ…ƒƒ“ƒg‚Ì“à—e‚É‚¿‚á‚ñ‚ÆŠµ
  ‚êe‚µ‚ñ‚Å‚¢‚é‚à‚̂Ɖ¼’肵‚Ü‚·B

  o  LinuxƒJ[ƒlƒ‹‚̃Rƒ“ƒpƒCƒ‹‚ÆIP aliasingƒTƒ|[ƒg‚̒ljÁ IP alias mini-
     HOWTO

  o  ƒlƒbƒgƒ[ƒNƒfƒoƒCƒX‚̃ZƒbƒgƒAƒbƒv‚Ɛݒè NET-3 HOWTO

  o  inetd‚̐ݒè NET-3 HOWTO

  o  ƒlƒbƒgƒ[ƒNƒpƒbƒP[ƒW‚̃Rƒ“ƒpƒCƒ‹‚ƃCƒ“ƒXƒg[ƒ‹ Sendmail Site
     Apache Site Wu-Ftpd FAQ

  o  DNS‚̐ݒè DNS HOWTO

     ‚à‚µã‚ɏq‚ׂ½Ž–•¿‚ɂ‚¢‚Ä‚Ü‚¾—‰ð‚µ‚Ä‚¢‚È‚¯‚ê‚΁A‚±‚ê‚ç‚̃pƒbƒP[
     ƒW‚ÉŠµ‚ê‚é‚悤‚ɏã‚ÉŽwŽ¦‚³‚ꂽƒŠƒ“ƒN‚ðŽg‚¢‚»‚̃hƒLƒ…ƒƒ“ƒg“™‚ð“Ç‚Ü
     ‚ê‚邱‚Æ‚ð‹­‚­‚¨§‚ß‚Ü‚·B‚±‚ê‚ç‚̃hƒLƒ…ƒƒ“ƒg“à—e‚ɂ‚¢‚ぁ[ƒ‹‚ð
     ‘—‚Á‚Ä‚¢‚½‚¾‚¢‚Ä‚à•ÔŽ–‚͏o‚µ‚Ü‚¹‚ñBHOWTO‚ÌŠY“–‚·‚é’˜ŽÒ‚É’¼Ú•·‚¢‚Ä
     ‰º‚³‚¢B

  1.2.  –Ú“I

  ‰¼‘zƒT[ƒrƒX‚Ì–Ú“I‚Í•¡”‚̃lƒbƒgƒ[ƒNƒJ[ƒh‚ðŽg‚í‚È‚¢‚Å•¡”‚ÌIPƒAƒhƒŒ
  ƒX‚ð’P‘̃}ƒVƒ“‚É”FŽ¯‚³‚¹‚é‚Æ‚¢‚¤‚à‚Ì‚Å‚·BIPƒGƒCƒŠƒAƒX‚̓J[ƒlƒ‹ƒIƒv
  ƒVƒ‡ƒ“‚ŁA‚±‚̃IƒvƒVƒ‡ƒ“‚ÍŠeƒlƒbƒgƒ[ƒNƒfƒoƒCƒX‚Ɉꂈȏã‚ÌIPƒAƒhƒŒƒX
  ‚ðŠ„‚è“–‚Ä‚é‚悤‚É‚·‚邽‚ß‚Ì‚Å‚·BƒJ[ƒlƒ‹‚̓oƒbƒNƒOƒ‰ƒ“ƒh‚ÅŠeIPƒAƒhƒŒ
  ƒX‚ð‚‘¬‚ɃXƒƒbƒv‚·‚邱‚Æ‚É‚æ‚葽d‘—M (multiplexes)‚ðs‚¢‚Ü‚·Bƒ†[
  ƒU[‚É‚Æ‚Á‚Ă͂ЂƂˆȏã‚̃lƒbƒgƒ[ƒNƒJ[ƒh‚ª‚ ‚é‚©‚̂悤‚ÉŒ©‚¦‚é‚킯
  ‚Å‚·B

  ‚±‚Ì‘½d‘—M(multiplexing)‚É‚æ‚Á‚Äwww.domain1.com, www.domain2.com‚È‚Ç
  ‚Æ‚¢‚Á‚½•¡”‚̃hƒƒCƒ“‚ð‚ЂƂ‚̃hƒƒCƒ“’ö“x‚̃RƒXƒg‚ʼn^‰c‚Å‚«‚Ü‚·BŽc
  ”O‚È‚±‚Æ‚É‘½‚­‚̃T[ƒrƒX(ftp, web, mail)‚Í‚»‚Ì‚Ü‚Ü‚Å‚Í‚±‚Ì•¡”‚̃hƒƒC
  ƒ“‚ÅŽg‚¦‚Ü‚¹‚ñB‚»‚ê‚ç‚ð“KØ‚É“®ì‚³‚¹‚邽‚߂ɂ́AÝ’èƒtƒ@ƒCƒ‹‚ƃ\[ƒX
  ƒR[ƒh‚ðC³‚µ‚È‚­‚Ä‚Í‚È‚è‚Ü‚¹‚ñB‚±‚̃hƒLƒ…ƒƒ“ƒg‚͉¼‘zƒ}ƒVƒ“‚̃Zƒb
  ƒeƒBƒ“ƒO‚É‚¨‚¢‚Ä‚»‚̏C³‚ð‚ǂ̂悤‚ɍs‚¤‚©‰ðà‚µ‚Ä‚¢‚Ü‚·B

  ƒf[ƒ‚ƒ“‚à“¯—l‚ɉ¼‘zƒT[ƒrƒX‚Ì‹@”\‚ð’ñ‹Ÿ‚·‚邽‚ß‚É•K—v‚Å‚·B¡‰ñŽg‚¤ƒf
  [ƒ‚ƒ“(virtuald)‚̃\[ƒX‚́A‚±‚ÌŒãƒhƒLƒ…ƒƒ“ƒg’†‚ɏo‚Ä‚«‚Ü‚·B

  1.3.  ƒtƒB[ƒhƒoƒbƒN

  ƒpƒbƒP[ƒW‚ªƒAƒbƒvƒf[ƒg‚³‚ꂽ‚èÝ’è‚̕ύX‚ª‚ ‚Á‚½Žž‚ɁA‚±‚̃hƒLƒ…ƒƒ“
  ƒg‚ðŠg’£‚µ‚Ü‚·B‚±‚̃hƒLƒ…ƒƒ“ƒg‚ŁA‚Í‚Á‚«‚肵‚È‚¢‚È‚Ç‚Ì•s‹ï‡‚ª‚ ‚è‚Ü
  ‚µ‚½‚ç‚»‚Ì’ñˆÄ‚⎿–â‚È‚Ç‚ðƒ[ƒ‹‚ɏ‘‚¢‚Ä‘—‚Á‚ĉº‚³‚¢B‚Ü‚½ƒRƒƒ“ƒg‚Í‚Å
  ‚«‚邾‚¯‚Í‚Á‚«‚è‚ƁA‚Ç‚±‚̏͂ª‚í‚©‚è‚É‚­‚¢‚©‚𖾋L‚µ‚ĉº‚³‚¢B‚»‚ÌŒ‹‰Ê
  ’˜ŽÒ‚ªHOWTO‘S•¶‚É–Ú‚ð’Ê‚³‚¸‚É‚·‚Ý‚Ü‚·BƒTƒuƒWƒFƒNƒg‚É‚ÍVIRTSERVICES
  HOWTO‚Ə‘‚¢‚Ä‘—‚Á‚Ä‚¢‚½‚¾‚­‚±‚Æ‚à‘åØ‚Å‚·B‚»‚Ì‘¼‚̃[ƒ‹‚͌l—p‚Æ‚È
  ‚è‚Ü‚·BŒÂl—pƒ[ƒ‹‚ð“Ç‚Ü‚¸‚¹‚Á‚©‚­‘—‚Á‚½ƒ[ƒ‹‚àˆ•ª‚µ‚Ä‚µ‚Ü‚¤‚©‚à‚µ
  ‚ê‚È‚¢‚̂ŏ\•ª’ˆÓ‚µ‚ĉº‚³‚¢B

  ‚±‚̃hƒLƒ…ƒƒ“ƒg‚Å’˜ŽÒ‚ª’ñŽ¦‚µ‚½—á‚Í‚Ù‚ñ‚̈ê—á‚É‚·‚¬‚È‚¢‚̂ŁA‚»‚Ì‚Ü‚Ü
  ƒRƒs[‚µ‚ÄŽg‚í‚È‚¢‚ʼnº‚³‚¢B“ÇŽÒŠeŽ©‚ªŽ©•ª‚̊‹«‚É‚ ‚¤‚悤‚ɏ‘‚«Š·‚¦‚Ä
  ‚¨‚¢‚ĉº‚³‚¢B‚à‚µ‰½‚©–â‘肪‚ ‚è‚Ü‚µ‚½‚ç’˜ŽÒ‚܂с[ƒ‹‚ð‘—‚Á‚ĉº‚³‚¢B
  ‚»‚̍ۃ[ƒ‹‚É‚Í‚¿‚á‚ñ‚Ɛݒèƒtƒ@ƒCƒ‹AƒGƒ‰[ƒƒbƒZ[ƒW‚ð‘‚¢‚Ä‚­‚¾‚³‚ê
  ‚΁A‚¿‚á‚ñ‚Æ–Ú‚ð’Ê‚µ‚Ä‚»‚Ì‰ðŒˆ‚È‚Ç‚Ì’ñˆÄ‚ðƒ[ƒ‹‚Å•ÔŽ–‚µ‚Ü‚·B
  1.4.  ‰ü’ù—š—ð

  V1.0 ‰Šúƒo[ƒWƒ‡ƒ“

  V1.1 Virtual Web Section‚̃Gƒ‰[XV

  V1.2 “ú•t‚̍XV

  1.5.  ’˜ìŒ A”z•zðŒ(Copyright/Distribution)

  This document is Copyright (c) 1997 by The Computer Resource Center
  Inc.

  A verbatim copy may be reproduced or distributed in any medium
  physical or electronic without permission of the author.  Translations
  are similiarly permitted without express permission if it includes a
  notice on who translated it.  Commercial redistribution is allowed and
  encouraged; however please notify Computer Resource Center of any such
  distributions.

  Excerpts from the document may be used without prior consent provided
  that the derivative work contains the verbatim copy or a pointer to a
  verbatim copy.

  Permission is granted to make and distribute verbatim copies of this
  document provided the copyright notice and this permission notice are
  preserved on all copies.

  In short, we wish to promote dissemination of this information through
  as many channels as possible. However, I do wish to retain copyright
  on this HOWTO document, and would like to be notified of any plans to
  redistribute this HOWTO.

  (˜a–󕶂ð•t‚¯‚Ä‚¨‚«‚Ü‚·‚ªA³Ž®‚È’˜ìŒ ‚͉pŒê‚ÌŒ´•¶‚ɏ]‚¢‚Ü‚·)

  ’˜ŽÒ‚̏³”F‚ð‚Ƃ炸‚ÉŒ´•¶‚̃Rƒs[‚ð‚µ‚Ä•¨—“I/“dŽq“I”}‘̂ʼnü•Ï/”z•z‚µ‚Ä
  ‚à‚©‚Ü‚¢‚Ü‚¹‚ñB–|–ó‚à“¯—l‚É“Á•Ê‚È‹–‰Â‚Í‚¢‚è‚Ü‚¹‚ñ‚ªA‚»‚̏ꍇ‚Í’N‚ª–|
  –󂵂½‚Ì‚©•K‚¸–¾‹L‚µ‚ĉº‚³‚¢B¤—p“I‚ȍĔz•z‚Í”F‚ß‚Ü‚·B‚Ü‚½„§‚µ‚Ü
  ‚·B‚µ‚©‚µ‚»‚̂悤‚È”z•z‚ð‚·‚éŽž‚à Computer Resource Center‚É‚Ü‚Å“Í‚¯
  o‚ĉº‚³‚¢B

  –{•¶‚©‚ç‚̈ø—p‚ÍŽ–‘O‚Ì“¯ˆÓ(Œ´•¶ˆø—p‚⌴•¶‚ւ̃|ƒCƒ“ƒ^‚ðŠÜ‚ñ‚¾“à—e‚ð’ñ
  ‹Ÿ‚·‚éÛ‚Ì“¯ˆÓ)‚È‚µ‚ÅŽg‚Á‚Ä‚¢‚½‚¾‚¢‚Ä‚©‚Ü‚¢‚Ü‚¹‚ñB

  ƒhƒLƒ…ƒƒ“ƒg‚ÌŒ´•¶ƒRƒs[‚ð‰ü•Ï/”z•z‚·‚éÛ‚́A’˜ìŒ ‚Ì•\Ž¦‚₱‚Ì‹–‰Âð
  €‚ª•¶‘‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚éŒÀ‚è‰Â”\‚Å‚·B

  ‚Å‚«‚邾‚¯‘½‚­‚Ì•ª–ì‚Å‚±‚̏î•ñ‚ª•‹y‚·‚邱‚ÆŠó–]‚µ‚Ü‚·B‚µ‚©‚µƒhƒLƒ…ƒ
  ƒ“ƒg‚Ì’˜ìŒ ‚͕ی삳‚ê‚Ü‚·‚µÄ”z•z‚·‚éê‡‚Í“Í‚¯o‚ĉº‚³‚¢B

  2.  IPƒGƒCƒŠƒAƒX

  IPƒGƒCƒŠƒAƒX(IP aliasing)‚͉¼‘zƒzƒXƒgƒ}ƒVƒ“‚ð‰Ò“­‚·‚邽‚߂ɐݒ肷‚éƒJ
  [ƒlƒ‹ƒIƒvƒVƒ‡ƒ“‚Ì‚±‚Æ‚Å‚·Bmini-HOWTO‚ª‚·‚Å‚É‚ ‚é‚Ì‚Å‚±‚¿‚ç‚ðŽQÆ‚µ‚Ä
  ‚­‚¾‚³‚¢ (IP aliasing)BÝ’è•û–@‚ÌŽ¿–â‚È‚Ç‚ªˆµ‚í‚ê‚Ä‚¢‚Ü‚·B (–󒍁F‹ï
  ‘Ì“I‚ȃGƒCƒŠƒAƒX‚̐ݒèBƒJ[ƒlƒ‹ƒIƒvƒVƒ‡ƒ“‚ŃGƒCƒŠƒAƒXƒIƒvƒVƒ‡ƒ“‚ð‘I‘ð
  ‚µ‚ăJ[ƒlƒ‹‚̍č\’z‚ð‚µ‚Ü‚·B‚»‚ÌŒãroot‚Å

    ifconfig eth0:0 (’ljÁ‚·‚éIP)
    route add -host (’ljÁ‚·‚éIP) dev eth0:0

  ‚Æ‚µ‚Ü‚·BÚ‚µ‚­‚́uNET-2/3-HOWTOv‚Ì13.11.2.1‚ðŽQÆ‚µ‚ĉº‚³‚¢)B

  3.  ƒo[ƒ`ƒƒƒ‹ƒf[ƒ‚ƒ“(virtuald)

  3.1.  ‚ǂ̂悤‚È“®ì‚ð‚·‚é‚©

  ƒlƒbƒgƒ[ƒNÚ‘±‚Í"IPƒAƒhƒŒƒX"‚Æ"ƒ|[ƒg”ԍ†"‚̃yƒA‚©‚ç‚È‚Á‚Ä‚¢‚Ü‚·B
  ƒlƒbƒgƒ[ƒNƒvƒƒOƒ‰ƒ~ƒ“ƒO‚ÌAPI(Applications Program
  Interface)‚Ísockets api‚ƌĂ΂ê‚Ü‚·Bƒ\ƒPƒbƒg‚ÍŠJ‚¢‚½ƒtƒ@ƒCƒ‹‚̂悤‚É
  U•‘‚¢A‚±‚ê‚ɑ΂·‚é“ǂݏ‘‚«‚ð‚·‚é‚±‚ƂŃlƒbƒgƒ[ƒNŒo—R‚Ńf[ƒ^‚ð‚â‚è
  ‚Ƃ肪‚Å‚«‚Ü‚·B

  ƒ[ƒJƒ‹ƒ\ƒPƒbƒg‚ÌIPƒAƒhƒŒƒX‚ð•Ô‚·ƒtƒ@ƒ“ƒNƒVƒ‡ƒ“ƒR[ƒ‹getsockname ‚ª‚ 
  ‚è‚Ü‚·B

  virtuald‚Ígetsockname(–󒍁F/lib/libc.so)‚ðA‚ǂ̃[ƒJƒ‹ƒ}ƒVƒ“‚ÌIP‚ª
  ƒAƒNƒZƒX‚³‚ê‚Ä‚¢‚é‚©‚ðŒˆ‚ß‚é‚Ì‚É—p‚¢‚Ü‚·B Virtuald‚͐ݒèƒtƒ@ƒCƒ‹‚ð“Ç
  ‚ݍž‚݁A‚»‚ÌIP‚ɑΉž‚·‚éƒfƒBƒŒƒNƒgƒŠ‚ðŽæ“¾‚µ‚Ü‚·B‚»‚̃fƒBƒŒƒNƒgƒŠ‚É
  chroot‚µ‚½ŒãAŽÀÛ‚ɍs‚í‚ê‚éƒT[ƒrƒX‚ɐڑ±‚ðˆø‚«“n‚µ‚Ü‚·B

   chroot  ‚̓‹[ƒgƒfƒBƒŒƒNƒgƒŠ'/' ‚ð•Ê‚̃fƒBƒŒƒNƒgƒŠ‚ɃZƒbƒg‚µ’¼‚µA‚»
  ‚̃fƒBƒŒƒNƒgƒŠ(V‚µ‚¢ƒ‹[ƒgƒfƒBƒŒƒNƒgƒŠ)‚æ‚è‚àã‚É‚ ‚é‘S‚Ä‚Ì‚à‚Ì‚ÍŽÀs
  ‚³‚ê‚Ä‚¢‚éƒvƒƒOƒ‰ƒ€‚©‚ç‚ÍŒ©‚¦‚Ü‚¹‚ñ(Ø‚è—£‚³‚ê‚Ü‚·)B‚±‚¤‚µ‚ÄŠeIPƒAƒh
  ƒŒƒX‚Í‚»‚ꂼ‚ê‚̉¼‘zƒtƒ@ƒCƒ‹ƒVƒXƒeƒ€‚ðŽæ“¾‚µ‚Ü‚·B‚±‚ê‚̓lƒbƒgƒ[ƒNƒv
  ƒƒOƒ‰ƒ€‚©‚ç‚Í“§‰ß“I‚È‚Ì‚Å(ã‚ɏ‘‚¢‚½‚悤‚È‘€ì‚͉B‚µ‚Ä‚ ‚é‚Ì‚Å)Aƒvƒ
  ƒOƒ‰ƒ€‚͉½Ž–‚à‚È‚©‚Á‚½‚©‚̂悤‚É“®ì‚µ‚Ü‚·B

  ‚±‚̂悤‚É‚µ‚āAinetd‚Æ‚¢‚Á‚½ƒvƒƒOƒ‰ƒ€‚ƘAŒ‹‚³‚ꂽVirtuald ‚Í‚¢‚ë‚¢‚ë
  ‚ȃT[ƒrƒX‚ð‰¼‘z‰»‚µ‚ÄŽg‚¤‚±‚Æ‚ª‚Å‚«‚é‚Ì‚Å‚·B

  3.2.  inetd

  Inetd‚Í•¡”‚̃|[ƒg‚ðŠÄŽ‹‚µAÚ‘±‚ª‚ ‚Á‚½ê‡‚É(—Ⴆ‚Îpop—v‹‚ª‚ ‚Á‚½
  ‚Æ‚«‚È‚Ç‚É)ƒlƒbƒgƒ[ƒNƒlƒSƒVƒG[ƒVƒ‡ƒ“s‚Á‚ÄŽw’肳‚ꂽƒvƒƒOƒ‰ƒ€‚ɐÚ
  ‘±‚ðˆø‚«“n‚·ƒX[ƒp[ƒT[ƒo‚Å‚·B‚±‚ê‚É‚æ‚èA•K—v‚ª‚È‚­‚ĉ½‚à‚µ‚Ä‚¢‚È‚¢
  ƒT[ƒo‚ª‚È‚¢‚悤‚É‚µ‚Ü‚·B

  •W€“I‚È /etc/inetd.confƒtƒ@ƒCƒ‹‚Í

  ftp stream tcp nowait root /usr/sbin/tcpd wu.ftpd -l -a
  pop-3 stream tcp nowait root /usr/sbin/tcpd in.qpop -s

  ‚Æ‚È‚è‚Ü‚·B(–󒍁Fpop-3‚Ípop3‚̏ꍇ‚Ípop3‚É‚µ‚ĉº‚³‚¢)B

  ‚Ü‚½‰¼‘z“I‚È/etc/inetd.confƒtƒ@ƒCƒ‹‚Í

  ftp stream tcp nowait root /usr/bin/virtuald virtuald /virtual/conf.ftp wu.ftpd -l -a
  pop-3 stream tcp nowait root /usr/bin/virtuald virtuald /virtual/conf.pop in.qpop -s

  ‚Æ‚È‚è‚Ü‚·B

  3.3.  virtual.conf

  ‚»‚ꂼ‚ê‚̃T[ƒrƒX‚ɑΉž‚·‚éIP‚ƃfƒBƒŒƒNƒgƒŠ‚ðƒRƒ“ƒgƒ[ƒ‹‚·‚é
  confƒtƒ@ƒCƒ‹‚ðŽæ“¾‚µ‚Ü‚·Bˆê‚‚̃}ƒXƒ^[confƒtƒ@ƒCƒ‹‚ª‚ ‚èA‚Ü‚½ƒhƒƒC
  ƒ“‚̈قȂ郊ƒXƒg‚̃T[ƒrƒX‚ª•K—v‚È‚Æ‚«‚Í‚»‚ê‚ɉž‚¶‚½confƒtƒ@ƒCƒ‹‚ð—pˆÓ
  ‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·Bvirtual.conf‚͈ȉº‚̂悤‚È“à—e‚Å‚·B

  # This is a comment and so are blank lines

  # Format IP <SPACE> dir <NOSPACES>
  10.10.10.129 /virtual/foo.bar.com
  10.10.10.130 /virtual/bar.foo.com
  10.10.10.157 /virtual/boo.la.com

  (–󒍁FŽÀÛ‚Ì’†g‚ÍŠeÝ’èŠÂ‹«‚ɍ‡‚킹‚ď‘‚«Š·‚¦‚ĉº‚³‚¢B‚»‚µ‚Ä‚±‚Ì
  ƒtƒ@ƒCƒ‹‚Í(ã‚Ìinitd.conf‚̐ݒè‚ɍ‡‚킹‚½)ŠY“–ƒfƒBƒŒƒNƒgƒŠ‚¨‚æ‚уtƒ@ƒC
  ƒ‹–¼‚ɃRƒs[‚µ‚Ü‚·)B

  3.4.  virtuald‚̃\[ƒX

  (–󒍁F‚±‚ÌVirtuald‚̃\[ƒX‚Í gcc -o viturald virtuald.c‚Æ‚µ‚ăRƒ“ƒpƒC
  ƒ‹‚Å‚«‚Ü‚·B‚Ü‚½Œã‚Ì•¶Í‚ƍ‡‚킹‚邽‚ß‚É/usr/bin‚ɃRƒs[‚µ‚Ü‚·)

  ______________________________________________________________________
  #include <netinet/in.h>
  #include <sys/socket.h>
  #include <arpa/inet.h>
  #include <stdarg.h>
  #include <string.h>
  #include <syslog.h>
  #include <stdio.h>

  #define BUFSIZE 8192

  main(int argc,char **argv)
  {
          char buffer[BUFSIZE];
          char *ipaddr,*dir;

          logit("Virtuald Starting: $Revision: 1.2 $");
          if (!argv[1])
          {
                  logit("invalid arguments: no conf file");
                  quitting_virtuald(0);
          }
          if (!argv[2])
          {
                  logit("invalid arguments: no program to run");
                  quitting_virtuald(0);
          }
          if (getipaddr(&ipaddr))
          {
                  logit("getipaddr failed");
                  quitting_virtuald(0);
          }
          sprintf(buffer,"Incoming ip: %s",ipaddr);
          logit(buffer);
          if (iptodir(&dir,ipaddr,argv[1]))
          {
                  logit("iptodir failed");
                  quitting_virtuald(0);
          }
          if (chroot(dir)<0)
          {
                  logit("chroot failed: %m");
                  quitting_virtuald(0);
          }
          sprintf(buffer,"Chroot dir: %s",dir);
          logit(buffer);
          if (chdir("/")<0)
          {
                  logit("chdir failed: %m");
                  quitting_virtuald(0);
          }
          if (execvp(argv[2],argv+2)<0)
          {
                  logit("execvp failed: %m");
                  quitting_virtuald(0);
          }
  }

  int logit(char *buf)
  {
          openlog("virtuald",LOG_PID,LOG_DAEMON);
          syslog(LOG_ERR,buf);
          closelog();
          return 0;
  }

  int quitting_virtuald(int retval)
  {
          exit(retval);
          return 0;
  }

  int getipaddr(char **ipaddr)
  {
          struct sockaddr_in virtual_addr;
          static char ipaddrbuf[BUFSIZE];
          int virtual_len;
          char *ipptr;

          virtual_len=sizeof(virtual_addr);
          if (getsockname(0,(struct sockaddr *)&virtual_addr,&virtual_len)<0)
          {
                  logit("getipaddr: getsockname failed: %m");
                  return -1;
          }
          if (!(ipptr=inet_ntoa(virtual_addr.sin_addr)))
          {
                  logit("getipaddr: inet_ntoa failed: %m");
                  return -1;
          }
          strncpy(ipaddrbuf,ipptr,sizeof(ipaddrbuf)-1);
          *ipaddr=ipaddrbuf;
          return 0;
  }

  int iptodir(char **dir,char *ipaddr,char *filename)
  {
          char buffer[BUFSIZE],*bufptr;
          static char dirbuf[BUFSIZE];
          FILE *fp;

          if (!(fp=fopen(filename,"r")))
          {
                  logit("iptodir: fopen failed: %m");
                  return -1;
          }
          *dir=NULL;
          while(fgets(buffer,BUFSIZE,fp))
          {
                  buffer[strlen(buffer)-1]=0;
                  if (*buffer=='#' || *buffer==0)
                          continue;
                  if (!(bufptr=strchr(buffer,' ')))
                  {
                          logit("iptodir: strchr failed");
                          return -1;
                  }
                  *bufptr++=0;
                  if (!strcmp(buffer,ipaddr))
                  {
                          strncpy(dirbuf,bufptr,sizeof(dirbuf)-1);
                          *dir=dirbuf;
                          break;
                  }
          }
          if (fclose(fp)==EOF)
          {
                  logit("iptodir: fclose failed: %m");
                  return -1;
          }
          if (!*dir)
          {
                  logit("iptodir: ip not found in conf file");
                  return -1;
          }
          return 0;
  }
  ______________________________________________________________________

  4.  ‰¼‘zƒXƒNƒŠƒvƒg(Virt scripts)

  4.1.  virtfs

  ŠeƒhƒƒCƒ“‚Í‚»‚ꂼ‚ê‚̃fƒBƒŒƒNƒgƒŠ\‘¢‚ðŽ‚Á‚Ä‚¢‚Ü‚·B chroot ‚ðŽg‚Á‚Ä
  ‚¢‚é‚̂ŃVƒFƒAƒ‰ƒCƒuƒ‰ƒŠ(shared libraries), ƒoƒCƒiƒŠ, conf ƒtƒ@ƒCƒ‹“™
  ‚Ì d•¡‚µ‚½ƒRƒs[‚ª•K—v‚É‚È‚è‚Ü‚·B’˜ŽÒ‚ÍŠeƒhƒƒCƒ“—p‚Ì
  /virtual/domain.com‚ðì‚èA‚»‚ꂼ‚ê‚ɃRƒs[‚µ‚ÄŽg‚Á‚Ä‚¢‚Ü‚·B‚»‚Ì‚½‚ß
  ‘½‚­‚̃fƒBƒXƒNƒXƒy[ƒX‚ðŽg‚¢‚Ü‚·‚ªV‚µ‚¢ƒ}ƒVƒ“‚âƒlƒbƒgƒ[ƒNƒJ[ƒh‚ðw
  “ü‚·‚é‚æ‚è‚͈À‰¿‚Å‚µ‚傤B‚à‚µƒfƒBƒXƒNƒXƒy[ƒX‚ðß–ñ‚µ‚½‚¢‚Ì‚È‚ç‚»‚ꂼ
  ‚ê‚̃tƒ@ƒCƒ‹‚ðƒŠƒ“ƒN‚·‚ê‚ΊԂɍ‡‚¢‚Ü‚· (–󒍁F‚±‚̃Šƒ“ƒN‚̓Vƒ“ƒ{ƒŠƒbƒN
  ƒŠƒ“ƒN‚Å‚Í‚ ‚è‚Ü‚¹‚ñ)B

  ‚±‚±‚ÅvirtfsƒXƒNƒŠƒvƒg‚Ì—á‚ð‚ ‚°‚Ü‚·B

  ______________________________________________________________________
  #!/bin/bash

  echo '$Revision: 1.2 $'

  echo -n "Enter the domain name: "
  read domain

  if [ "$domain" = "" ]
  then
          echo Nothing entered: aborting
          exit 0
  fi

  leadingdir=/virtual

  echo -n "Enter leading dir: (Enter for default: $leadingdir): "
  read ans

  if [ "$ans" != "" ]
  then
          leadingdir=$ans
  fi

  newdir=$leadingdir/$domain

  if [ -d "$newdir" ]
  then
          echo New directory: $newdir: ALREADY exists
          exit 0
  else
          echo New directory: $newdir
  fi

  echo Create $newdir
  mkdir -p $newdir

  echo Create bin
  cp -pdR /bin $newdir

  echo Create dev
  cp -pdR /dev $newdir

  echo Create dev/log
  ln -f /virtual/log $newdir/dev/log

  echo Create etc
  mkdir -p $newdir/etc
  for i in /etc/*
  do
          if [ -d "$i" ]
          then
                  continue
          fi
          cp -pd $i $newdir/etc
  done

  echo Create etc/skel
  mkdir -p $newdir/etc/skel

  echo Create home
  for i in a b c d e f g h i j k l m n o p q r s t u v w x y z
  #   (–󒍁F‚±‚±‚Ì[a-z]‚Í‚»‚ꂼ‚êÝ’è‚·‚郆[ƒU[–¼‚ɕύX‚µ‚Ü‚·)
  do
          mkdir -p $newdir/home/$i
  done
  echo Create home/c/crc
  mkdir -p $newdir/home/c/crc
  chown crc.users $newdir/home/c/crc
  #  (–󒍁F‚±‚±‚àÝ’肵‚½ƒ†[ƒU[‚ɍ‡‚킹‚ĕύX‚µ‚ĉº‚³‚¢)

  echo Create lib
  mkdir -p $newdir/lib
  for i in /lib/*
  do
          if [ -d "$i" ]
          then
                  continue
          fi
          cp -pd $i $newdir/lib
  done

  echo Create proc
  mkdir -p $newdir/proc

  echo Create sbin
  cp -pdR /sbin $newdir

  echo Create tmp
  mkdir -p -m 0777 $newdir/tmp
  chmod +t $newdir/tmp

  echo Create usr
  mkdir -p $newdir/usr

  echo Create usr/bin
  cp -pdR /usr/bin $newdir/usr

  echo Create usr/lib
  mkdir -p $newdir/usr/lib

  echo Create usr/lib/locale
  cp -pdR /usr/lib/locale $newdir/usr/lib
  #       (–󒍁F‚±‚±‚̃fƒBƒŒƒNƒgƒŠ“K“–‚ɕύX‚µ‚Ü‚·)

  echo Create usr/lib/terminfo
  cp -pdR /usr/lib/terminfo $newdir/usr/lib

  echo Create usr/lib/zoneinfo
  cp -pdR /usr/lib/zoneinfo $newdir/usr/lib

  echo Create usr/lib/\*.so\*
  cp -pdR /usr/lib/*.so* $newdir/usr/lib

  echo Create usr/sbin
  cp -pdR /usr/sbin $newdir/usr

  echo Linking usr/tmp
  ln -s /tmp $newdir/usr/tmp

  echo Create var
  mkdir -p $newdir/var

  echo Create var/lock
  cp -pdR /var/lock $newdir/var

  echo Create var/log
  mkdir -p $newdir/var/log

  echo Create var/log/wtmp
  cp /dev/null $newdir/var/log/wtmp

  echo Create var/run
  cp -pdR /var/run $newdir/var

  echo Create var/run/utmp
  cp /dev/null $newdir/var/run/utmp

  echo Create var/spool
  cp -pdR /var/spool $newdir/var

  echo Linking var/tmp
  ln -s /tmp $newdir/var/tmp

  echo Create var/www/html
  mkdir -p $newdir/var/www/html
  chown webmast.www $newdir/var/www/html
  #  (–󒍁F‚±‚±‚Ìchown‚à“K“–‚ɕύX‚µ‚Ä‚¨‚¢‚ĉº‚³‚¢BˆÈ‰º“¯—l)
  chmod g+s $newdir/var/www/html

  echo Create var/www/master
  mkdir -p $newdir/var/www/master
  chown webmast.www $newdir/var/www/master

  echo Create var/www/server
  mkdir -p $newdir/var/www/server
  chown webmast.www $newdir/var/www/server

  exit 0
  ______________________________________________________________________

  4.2.  virtexec

  ‰¼‘zŠÂ‹«‚ŃRƒ}ƒ“ƒh‚ðŽÀs‚·‚é‚É‚Í‚»‚̃fƒBƒŒƒNƒgƒŠ‚Ö chroot ‚µ‚Ä‚©‚çŽÀs
  ‚µ‚Ü‚·B‚±‚±‚ŃRƒ}ƒ“ƒh‚𑀍삷‚évirtexec‚ðŒÄ‚яo‚·ƒVƒFƒ‹ƒXƒNƒŠƒvƒg‚ð‘
  ‚«‚Ü‚µ‚½B (–󒍁FˆÈ‰º‚̃R[ƒh‚ðØ‚èŽæ‚Á‚Ä/usr/binƒfƒBƒŒƒNƒgƒŠ‚ɃRƒs[
  ‚µ‚Ü‚·B‘®«‚̕ύX(chmod +x)‚ð‚µ‚Ä‚¨‚¢‚ĉº‚³‚¢)B

  ______________________________________________________________________
  #!/bin/sh

  echo '$Revision: 1.2 $'

  BNAME=`basename $0`
  FIRST4CHAR=`echo $BNAME | cut -c1-4`
  REALBNAME=`echo $BNAME | cut -c5-`

  if [ "$BNAME" = "virtexec" ]
  then
          echo Cannot run virtexec directly: NEED a symlink
          exit 0
  fi

  if [ "$FIRST4CHAR" != "virt" ]
  then
          echo Symlink not a virt function
          exit 0
  fi

  list=""
  num=1
  for i in /virtual/*
  do
          if [ ! -d "$i" ]
          then
                  continue
          fi
          if [ "$i" = "/virtual/lost+found" ]
          then
                  continue
          fi
          list="$list $i $num"
          num=`expr $num + 1`
  done

  if [ "$list" = "" ]
  then
          echo No virtual environments exist
          exit 0
  fi

  dialog --clear --title 'Virtexec' --menu Pick 20 70 12 $list 2> /tmp/menu.$$
  if [ "$?" = "0" ]
  then
          newdir=`cat /tmp/menu.$$`
  else
          newdir=""
  fi
  tput clear
  rm -f /tmp/menu.$$

  echo '$Revision: 1.2 $'

  if [ ! -d "$newdir" ]
  then
          echo New directory: $newdir: NOT EXIST
          exit 0
  else
          echo New directory: $newdir
  fi

  echo bname: $BNAME

  echo realbname: $REALBNAME
  if [ "$*" = "" ]
  then
          echo args: none
  else
          echo args: $*
  fi

  echo Changing to $newdir
  cd $newdir

  echo Running program $REALBNAME

  chroot $newdir $REALBNAME $*

  exit 0
  ______________________________________________________________________

  ‚±‚ê‚ðŽÀs‚·‚é‚É‚ÍŠeŽ©‚̃VƒXƒeƒ€‚É dialog ƒvƒƒOƒ‰ƒ€‚ªƒCƒ“ƒXƒg[ƒ‹‚³‚ê
  ‚Ä‚¢‚é•K—v‚ª‚ ‚è‚Ü‚·B’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢B (–󒍁Fdialog = ƒVƒFƒ‹ƒXƒNƒŠ
  ƒvƒg‚©‚çƒ_ƒCƒAƒƒOƒ{ƒbƒNƒX‚ðŠJ‚­ƒRƒ}ƒ“ƒh‚Å‚·B‚Ù‚Æ‚ñ‚ǂ̃VƒXƒeƒ€‚ł̓C
  ƒ“ƒXƒg[ƒ‹‚³‚ê‚Ä‚¢‚Ü‚·)B virtexec‚ðŽg‚¤‚½‚߂ɃVƒ“ƒ{ƒŠƒbƒNƒŠƒ“ƒN‚ð‚Í‚è
  ‚Ü‚·B—Ⴆ‚΁A

  ln -s /usr/bin/virtexec /usr/bin/virtpasswd
  ln -s /usr/bin/virtexec /usr/bin/virtvi
  ln -s /usr/bin/virtexec /usr/bin/virtpico
  ln -s /usr/bin/virtexec /usr/bin/virtemacs
  ln -s /usr/bin/virtexec /usr/bin/virtmailq

  ‚±‚±‚ÅvirtviAvirtpasswdAvirtmailq“™‚Æ“ü—Í‚·‚ê‚΂»‚ꂼ‚êvi‚ª‹N“®‚µ‚½
  ‚èAƒ†[ƒU[‚̃pƒXƒ[ƒh‚ª•ÏX‚Å‚«‚½‚èA‰¼‘zƒVƒXƒeƒ€ã‚̃[ƒ‹ƒLƒ…[‚ð
  ƒ`ƒFƒbƒN‚Å‚«‚½‚肵‚Ü‚·B•K—v‚ɉž‚¶‚Ä‚à‚Á‚Æ‘½‚­ƒŠƒ“ƒN‚ð‚͂邱‚Æ‚à‚Å‚«‚Ü
  ‚·B‚µ‚©‚µƒvƒƒOƒ‰ƒ€‚ªƒVƒFƒAƒ‰ƒCƒuƒ‰ƒŠ(shared library)‚ð•K—v‚Æ‚·‚é‚Æ‚«
  ‚͉¼‘zƒtƒ@ƒCƒ‹ƒVƒXƒeƒ€ã‚É‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñBƒoƒCƒiƒŠƒtƒ@ƒCƒ‹‚à“¯—l‚É
  ‰¼‘zƒtƒ@ƒCƒ‹ƒVƒXƒeƒ€ã‚É‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñB

  4.3.  virtfs‚Ævirtexec‚ÉŠÖ‚·‚钍ˆÓ

  ’˜ŽÒ‚Í‘S‚ẴXƒNƒŠƒvƒg‚ð/usr/bin‚ɃCƒ“ƒXƒg[ƒ‹‚µ‚Ä‚¢‚Ü‚·B‰¼‘zƒtƒ@ƒCƒ‹
  ƒVƒXƒeƒ€ã‚É’u‚«‚½‚­‚È‚¢‚à‚Ì‚Í/usr/local‚É’u‚¢‚Ä‚¢‚Ü‚·BƒXƒNƒŠƒvƒg‚̓R
  ƒs[‚ÉŠÖ‚µ‚Ä‚È‚É‚àƒ^ƒbƒ`‚µ‚È‚¢‚悤‚É‚µ‚Ü‚·B‰¼‘zƒtƒ@ƒCƒ‹ƒVƒXƒeƒ€ŠÔ‚Å‚Ü
  ‚½‚ª‚ç‚È‚¢‚±‚Æ‚ªd—v‚È‘S‚Ẵtƒ@ƒCƒ‹‚͍폜‚µ‚È‚­‚Ä‚Í‚¢‚¯‚Ü‚¹‚ñB—Ⴆ
  ‚΁A’˜ŽÒ‚̃VƒXƒeƒ€‚É‚Íssh‚ªƒCƒ“ƒXƒg[ƒ‹‚³‚ê‚Ä‚¢‚Ü‚·‚ªAƒvƒ‰ƒCƒx[ƒgƒL
  [ (private key)‚͂ǂ̉¼‘zƒtƒ@ƒCƒ‹ƒVƒXƒeƒ€‚©‚ç‚àŒ©‚¦‚é‚悤‚É‚Í‚µ‚½‚­‚ 
  ‚è‚Ü‚¹‚ñB‚»‚±‚Åvirtfs‚ðŽÀs‚µ‚½Œã‚É‚»‚ꂼ‚ê‚̉¼‘zƒtƒ@ƒCƒ‹ƒVƒXƒeƒ€‚©‚ç
  ƒvƒ‰ƒCƒx[ƒgƒL[‚ðíœ‚µ‚Ä‚¢‚Ü‚·B (–󒍁Fssh‚ÍSecure Shell‚Ì‚±‚Æ‚Å
  ‚·Bsecure authentication, encryption, encrypted X11 connections,
  encrypted TCP/IP forwarding ‚ð‚à‚Á‚½ƒŠƒ‚[ƒgƒƒOƒCƒ“ƒvƒƒOƒ‰ƒ€‚Å,“K“–
  ‚ȃA[ƒJƒCƒuƒT[ƒo‚Ì archives/net/ssh/ƒfƒBƒŒƒNƒgƒŠ‚È‚Ç‚©‚ç“üŽè‚Å‚«‚Ü
  ‚·)

  ‚Ü‚½resolv.conf(–󒍁F DNSî•ñ‚È‚Ç /etc/resolv.conf) ‚à•ÏX‚µ‘¼‚̃hƒ
  ƒCƒ“–¼‚ª‚ ‚éƒtƒ@ƒCƒ‹‚Í‘S‚Ĉړ®‚µ‚Ä‚¢‚Ü‚·B—Ⴆ‚Î /etc/hosts ‚â
  /etc/HOSTNAME‚È‚Ç‚Å‚·B

  virtexec‚ɃVƒ“ƒ{ƒŠƒbƒNƒŠƒ“ƒN‚ð‚Í‚Á‚Ä‚¢‚éƒvƒƒOƒ‰ƒ€‚Í

  o  virtpasswd -- ƒpƒXƒ[ƒh•ÏX

  o  virtadduser -- ƒ†[ƒU[’ljÁ

  o  virtdeluser -- ƒ†[ƒU[íœ

  o  virtsmbstatus -- samba status

  o  virtvi -- ƒtƒ@ƒCƒ‹‚̕ҏW

  o  virtmailq -- mailq‚̃`ƒFƒbƒN

  o  virtnewaliases -- ƒGƒCƒŠƒAƒXƒe[ƒuƒ‹Ä\’z

     ‚Å‚·B

  5.  DNS

  DNS‚Í•’ʂɐݒè‚Å‚«‚Ü‚·B‚±‚̃VƒXƒeƒ€‚Ì—Ç‚¢“_‚́A‘S‚ẴT[ƒrƒX‚É‚¨‚¢
  ‚ă}ƒVƒ“‚ª(ŽÀ‚͈ê‘ä‚É‚à‚©‚©‚í‚炸)‚í‚©‚ê‚Ä‚¢‚é‚©‚̂悤‚ɐU•‘‚¤‚Æ‚¢‚¤‚±
  ‚Æ‚Å‚·B DNS‚ÉŠÖ‚·‚éHOWTO‚Í DNS ‚ðŽQÆ‚µ‚Ä‚­‚¾‚³‚¢B

  6.  Syslog

  6.1.  –â‘è“_

  syslog‚ÍUNIXƒVƒXƒeƒ€‚Å‹¤’Ê‚µ‚ÄŽg‚í‚ê‚éƒVƒXƒeƒ€ƒƒOƒ†[ƒeƒBƒŠƒeƒB‚Å‚·B
  (–󒍁Fsyslog=ƒJ[ƒlƒ‹(kernel)‚̃ƒbƒZ[ƒWEƒŠƒ“ƒOEƒoƒbƒtƒ@[‚ð“Ç‚ñ‚¾
  ‚èÁ‹Ž(clear)‚µ‚½‚è‚·‚é)B syslog‚ÍFIFO(First In First Out)‚ƌĂ΂ê‚é
  ƒXƒyƒVƒƒƒ‹ƒtƒ@ƒCƒ‹‚ðŠJ‚­ƒf[ƒ‚ƒ“‚Å‚·BFIFO‚̓pƒCƒv(pipe)‚ÉŽ—‚½ƒXƒyƒVƒƒ
  ƒ‹ƒtƒ@ƒCƒ‹‚Å‚·B syslogƒf[ƒ‚ƒ“‚̓Š[ƒhƒTƒCƒh‚©‚ç‚̃f[ƒ^‚ð‘Ò‚¿Aƒ‰ƒC
  ƒgƒTƒCƒh‚ɏ‘‚«ž‚Þ‚½‚ß‚Ì CŠÖ”‚ª‚ ‚è‚Ü‚·B‚à‚µ‚±‚ê‚ç‚ÌCŠÖ”‚ŃvƒƒOƒ‰
  ƒ€‚ð‘‚¯‚Ώo—Í‚Ísyslog‚É“ü‚è‚Ü‚·B

   chroot ŠÂ‹«‚ðŽg‚Á‚Ä‚¢‚āAFIFO /dev/log‚͉¼‘zŠÂ‹«‚É‚Í‘¶Ý‚µ‚È‚¢‚±‚Æ‚É
  ’ˆÓ‚µ‚ĉº‚³‚¢B‚±‚ê‚Í‘S‚Ẳ¼‘zŠÂ‹«‚ªsyslog‚Ö‚Ì‹L˜^‚ª‚Å‚«‚È‚¢‚Æ‚¢‚¤‚±
  ‚Æ‚ðˆÓ–¡‚µ‚Ä‚¢‚Ü‚·BƒvƒƒOƒ‰ƒ€‚͐V‚µ‚­ì‚Á‚½‚à‚Ì‚Ì‘ã‚í‚è‚Æ‚µ‚Ä/dev/log
  ‚ðŽg‚¦‚È‚¢‚̂ŁAƒtƒ@ƒCƒ‹‚ð’P‚ɃRƒs[‚·‚邱‚Æ‚à‚Å‚«‚Ü‚¹‚ñB

  syslog‚Ì“Á’è‚̃o[ƒWƒ‡ƒ“‚É‚Íudpƒ\ƒPƒbƒg‚ðFIFO‚Ì‘ã‚í‚è‚ÉŽg‚Á‚Ä‚¢‚é‚à‚Ì
  ‚à‚ ‚è‚Ü‚·‚ªA‚±‚ê‚͈ê”Ê“I‚È‚±‚Æ‚Å‚Í‚ ‚è‚Ü‚¹‚ñB

  6.2.  ‰ðŒˆ•û–@

  syslog‚́AƒRƒ}ƒ“ƒhƒ‰ƒCƒ“‚ÅŽw’è‚·‚ê‚΁AˆÙ‚È‚éFIFO‚ð’T‚µ‚Ü‚·B—Ⴆ‚Έȉº
  ‚̂悤‚É‚µ‚Ü‚·B

  syslog -p /virtual/log

  ‚»‚µ‚Ä/dev/log‚ð/virtual/log‚ɃŠƒ“ƒN‚ð‚Í‚è‚Ü‚·(ƒVƒ“ƒ{ƒŠƒbƒNƒŠƒ“ƒN)B

  ln -sf /virtual/log /dev/log

  ‚‚¬‚Ɉȉº‚̂悤‚É‚µ‚Ä‚±‚̃tƒ@ƒCƒ‹‚É‘S‚Ä‚Ì/dev/log‚ðƒŠƒ“ƒN‚µ‚Ü‚· (‚±‚ê
  ‚̓n[ƒhƒŠƒ“ƒN‚ŃVƒ“ƒ{ƒŠƒbƒNƒŠƒ“ƒN‚Å‚Í‚È‚¢‚±‚Æ‚É’ˆÓ)B

  ln /virtual/log /virtual/domain.com/dev/log

  ã‹L‚ÌvirtfsƒXƒNƒŠƒvƒg‚Å‚Í‚·‚Å‚É‚±‚ê‚ðs‚Á‚Ä‚¢‚Ü‚·B/virtual‚͈ê‚‚̘A
  ‘±‚µ‚½ƒfƒBƒXƒN‚É‚ ‚èA/dev/log‚̓Šƒ“ƒN‚³‚ê‚Ä‚¢‚é‚Ì‚Å“¯‚¶inode ”ԍ†‚©‚Â
  “¯‚¶ƒf[ƒ^‚ðŽw‚·‚±‚Æ‚É‚È‚è‚Ü‚·Bchroot‚Í‚±‚ê‚ðƒXƒgƒbƒv‚Å‚«‚È‚¢‚Ì‚Å‘S‚Ä
  ‚̉¼‘z/dev/log‚Í‹@”\‚µ‚Ü‚·B‘SŠÂ‹«‚©‚ç‚̃ƒbƒZ[ƒW‚͈ê‚‚̏ꏊ‚É‹L˜^‚³
  ‚ê‚Ü‚·B‚µ‚©‚µ‚à‚µƒvƒƒOƒ‰ƒ€‚ð‘‚«‚½‚­‚È‚­A‚»‚ꂼ‚êlog ƒtƒ@ƒCƒ‹‚𕪂¯
  ‚½‚¢‚Æ‚¢‚¤ê‡‚͈ȉº‚̂悤‚É‚µ‚ĕʁX‚Ésyslog‚ðŽg‚¤‚±‚Æ‚à‚Å‚«‚Ü‚·B

  syslog -p /virtual/domain1.com/dev/log
  syslog -p /virtual/domain2.com/dev/log

  ‚à‚Á‚Æ‚à‚±‚¤‚·‚邱‚Ƃ̓vƒƒZƒXID‚̘Q”ï‚È‚Ì‚Å‚¨§‚ß‚µ‚Ü‚¹‚ñB‚±‚̃o[
  ƒWƒ‡ƒ“‚Ìsyslog.init‚́A•s“KØ‚Ȑݒ肪‚³‚ê‚Ä‚¢‚éê‡‚É‚Í‹N“®‚·‚é“x‚É–ˆ
  ‰ñ /dev/log ‚ɍăŠƒ“ƒN‚µ‚Ä‚µ‚Ü‚¢‚Ü‚·BˆÈ‰ºAC³‚µ‚½syslog.initƒtƒ@ƒC
  ƒ‹‚ð‹“‚°‚Ä‚¨‚«‚Ü‚·B

  ______________________________________________________________________
  #!/bin/sh

  # Source function library.
  . /etc/rc.d/init.d/functions

  case "$1" in
    start)
          echo -n "Starting dev log: "
          ln -sf /virtual/log /dev/log
          echo done
          echo -n "Starting system loggers: "
          daemon syslogd -p /virtual/log
          daemon klogd
          echo
          echo -n "Starting virtual dev log: "
          for i in /virtual/*
          do
                  if [ ! -d "$i" ]
                  then
                          continue
                  fi
                  if [ "$i" = "/virtual/lost+found" ]
                  then
                          continue
                  fi
                  ln -f /virtual/log $i/dev/log
                  echo -n "."
          done
          echo " done"
          touch /var/lock/subsys/syslog
          ;;
    stop)
          echo -n "Shutting down system loggers: "
          killproc syslogd
          killproc klogd
          echo
          rm -f /var/lock/subsys/syslog
          ;;
    *)
          echo "Usage: syslog {start|stop}"
          exit 1
  esac

  exit 0
  ______________________________________________________________________

  ˆê‘ä‚̃fƒBƒXƒN‚É‘S‚Ẳ¼‘zƒtƒ@ƒCƒ‹ƒVƒXƒeƒ€‚ð’u‚©‚È‚­‚Ä‚à‚æ‚¢‚±‚Æ‚É’ˆÓ
  ‚µ‚ĉº‚³‚¢B‚à‚Á‚Æ‚àƒfƒBƒXƒNã‚ɉ¼‘zƒtƒ@ƒCƒ‹ƒVƒXƒeƒ€‚ðŽ‚ÂŠeƒp[ƒeƒB
  ƒVƒ‡ƒ“—p‚Ìsyslog‚ðŽÀs‚µ‚È‚¯‚ê‚΂Ȃç‚È‚¢‚Å‚µ‚傤B

  7.  ‰¼‘zFTP

  Wu-ftpd‚à‰¼‘z‰»‚µ‚ÄŽg‚¤‚悤‚ɐݒè‚Å‚«‚Ü‚·(–󒍁FuVirtual-wu-ftpdv
  (‹g•õ K˜Y‚³‚ñ–ó)‚ào‚Ä‚¢‚é‚Ì‚Å‚»‚¿‚ç‚àŽQÆ‚µ‚ĉº‚³‚¢)B‚µ‚©‚µŠeƒhƒƒC
  ƒ“‚ŃpƒXƒ[ƒhƒtƒ@ƒCƒ‹‚ð‚킯‚½ó‘Ô‚É‚Í‚Å‚«‚Ü‚¹‚ñB—Ⴆ‚Î‚à‚µ
   bob@domain1.com ‚Æ bob@domain2.com ‚Ì—¼•û‚ªƒAƒJƒEƒ“ƒg‚ð•K—v‚Æ‚µ‚½ê
  ‡A‚Ç‚¿‚ç‚©ˆê•û‚ðbob2‚Æ‚µ‚½‚肵‚Ü‚·B‚‚܂èˆá‚¤–¼‘O‚É‚·‚é•K—v‚ª‚ ‚è‚Ü
  ‚·BŠeƒhƒƒCƒ“‚̉¼‘zƒtƒ@ƒCƒ‹ƒVƒXƒeƒ€‚ª‚ ‚éó‘ԂȂ̂ŃpƒXƒ[ƒhƒtƒ@ƒCƒ‹
  ‚ð‚킯‚Ä‚µ‚Ü‚¦‚΂±‚Ì–â‘è‚͉ðÁ‚µ‚Ü‚·BvirtnewuserƒXƒNƒŠƒvƒg‚Æ
  virtpasswdƒXƒNƒŠƒvƒg‚ðã‚ɏ‘‚¢‚½‚悤‚È•û–@‚ōì‚Á‚Đݒ肵‚Ä‚­‚¾‚³‚¢B‰¼
  ‘zƒtƒ@ƒCƒ‹ƒVƒXƒeƒ€‚É‚æ‚Á‚ÄŠe‰¼‘zŠÂ‹«ã‚ʼne‹¿‚ðŽó‚¯‚邱‚Æ‚È‚­anonymous
  ftp ‚ðs‚¤‚±‚Æ‚ª‚Å‚«‚Ü‚·B

  inetd.conf‚Éwu-ftp‚ðƒGƒ“ƒgƒŠ‚µ‚Ü‚·B

  ftp stream tcp nowait root /usr/bin/virtuald virtuald /virtual/conf.ftp wu.ftpd -l -a

  8.  ‰¼‘zWeb

  Apache‚Í‚»‚ꎩg‚ʼn¼‘zƒhƒƒCƒ“‚ðƒTƒ|[ƒg‚µ‚Ä‚¢‚Ü‚·B“à•”‰¼‘zƒhƒƒCƒ“ƒ
  ƒJƒjƒYƒ€‚ðŽg‚¤‚±‚Ƃ𒘎҂ª„§‚µ‚Ä‚¢‚éƒvƒƒOƒ‰ƒ€‚Å‚·Binetd‚ð’Ê‚µ‚ĉ½
  ‚©ŽÀs‚·‚鎞‚̓RƒXƒg‚ª‚©‚©‚è‚Ü‚·B‚±‚̏ꍇAƒvƒƒOƒ‰ƒ€‚ÍŽÀs‚·‚é–ˆ‚ɃX
  ƒ^[ƒg‚¹‚˂΂Ȃè‚Ü‚¹‚ñB‚‚܂èwebƒT[ƒrƒX‚É‚Í•sŒü‚«‚È’x‚¢‰ž“š‚Å‚ ‚é‚Æ
  ‚¢‚¤‚±‚Æ‚ðˆÓ–¡‚µ‚Ä‚¢‚Ü‚·B Apache‚Í‘½‚­‚̃AƒNƒZƒX‚ª¶‚¶‚½Žž‚̐ڑ±‚ðŽ~
  ‚߂郁ƒJƒjƒYƒ€‚àŽ‚Á‚Ä‚¢‚Ü‚·B

  ‚à‚µinetd‚ð’Ê‚³‚¸Apache‚ðŽg‚¢ê‡‚Íinetd.confƒtƒ@ƒCƒ‹‚Ɉȉº‚̍s‚ð’ljÁ
  ‚µ‚Ä‚­‚¾‚³‚¢B

  www stream tcp nowait www /usr/bin/virtuald \
          virtuald /virtual/conf.www httpd -f /var/www/conf/httpd.conf

  ‚»‚µ‚Ä /var/www/conf/httpd.confƒtƒ@ƒCƒ‹(–󒍁FŠÂ‹«‚É‚æ‚Á‚Ä
  httpd.conf‚ª‚ ‚éêŠ‚͈Ⴂ‚Ü‚·)‚Ɉȉº‚̂悤‚É–¾‹L‚µ‚Ü‚·B

  ServerType inetd

  ƒfƒtƒHƒ‹ƒg‚Å‚Í"standalone"‚ðÝ’肵‚Ä‚¢‚Ü‚·B‚ ‚Ƃ̓Vƒ“ƒOƒ‹ƒhƒƒCƒ“‚Å
  Žg‚Á‚Ä‚¢‚½Žž‚Æ“¯‚¶‚悤‚ÉApacheƒT[ƒo‚̐ݒè‚ð‚µ‚Ü‚·B

  ‚±‚ê‚ð‘‚¢‚Ä‚¢‚鎞“_‚ł͉¼‘zweb HOWTO‚Í‚ ‚è‚Ü‚¹‚ñ (–󒍁F
  uVirtual-Web-HOWTOv‚ªŒ»Ý‚͏o‚Ä‚¢‚Ü‚·)B‚µ‚©‚µ‚±‚ꂪo‚Ä‚­‚邾‚낤‚Æ
  Žv‚¢‚Ü‚·B‚₪‚Ä‚Í‚»‚ÌHOWTO‚ðŽQÆ‚µ‚Ä‚±‚±‚ɏ‘‚±‚¤‚ÆŽv‚¢‚Ü‚·B‚à‚µ‚Ü‚¾
  o‚Ä‚±‚¸A—v‹‚ªo‚Ä—ˆ‚½‚çApache‰¼‘zƒzƒXƒg‚̐ݒè•û–@‚ɂ‚¢‚Ä‚ÌÍ‚ð‘‚­
  ‚‚à‚è‚Å‚·B

  9.  ‰¼‘z“I‚ÈMail/Pop

  9.1.  Qmail ‚Ì’ˆÓ“_

  ‚±‚̏͂Ísendmail‚Ì‚Ý‚ÉŠÖ‚·‚é“à—e‚Å‚·Bqmail‚̏͂ÍHOWTO‚ÌŽŸ‚̃o[ƒWƒ‡ƒ“
  ‚ŒljÁ‚µ‚Ü‚·(–󒍁FQmail‚ÉŠÖ‚·‚éƒ}ƒjƒ…ƒAƒ‹‚́uQmail+MHv‚È‚Ç‚ªo‚Ä‚¢‚Ü
  ‚·)B

  9.2.  –â‘è

  Œ»ÝA‰¼‘zƒ[ƒ‹‚̃Tƒ|[ƒg‚ÉŠÖ‚·‚é—v‹‚Í‚Ü‚·‚Ü‚·‘‚¦‚Ä‚¢‚Ü
  ‚·BSendmail‚͉¼‘zƒ[ƒ‹‚ðƒTƒ|[ƒg‚·‚é‚ÆŒ¾‚Á‚Ä‚¢‚Ü‚·‚ªA‚»‚Ì“à—e‚͈قÈ
  ‚éƒhƒƒCƒ“‚©‚ç‚̃[ƒ‹Žæ‚荞‚Ý‚Ì‚±‚Ƃ̂悤‚Å‚·Bƒ[ƒ‹‚ð‚Ç‚±‚©‚ɃtƒHƒ
  [ƒh‚³‚¹‚é‚Æ‚¢‚¤‚±‚Æ‚ª‚Å‚«‚Ü‚·B‚µ‚©‚µ‚à‚µƒ[ƒJƒ‹ƒ}ƒVƒ“‚ɃtƒHƒ[ƒh‚µ
  ‚½‚èbob@domain1.comAbob@domain2.com‚Ƀ[ƒ‹‚ª—ˆ‚éê‡‚È‚Ç‚Å‚Í“¯‚¶ƒ[
  ƒ‹ƒtƒHƒ‹ƒ_‚É‚½‚Ü‚Á‚Ä‚µ‚Ü‚¤‚Å‚µ‚傤B‚±‚ê‚Í bobˆ¶‚̃[ƒ‹‚ªŽÀÛ‚͈Ⴄl
  ˆ¶‚Å’†g‚àˆá‚¤‚Ì‚¾‚©‚ç–â‘è‚Å‚·B

  9.3.  ˆ«‚¢‰ðŒˆ•û–@

  ƒ†[ƒU[–¼‚ɔԍ†‚ð’ljÁ(—Ⴆ‚Îbob1, bob2‚È‚Ç)‚µ‚½‚èA“ª‚É•¶Žš‚ð“ü‚ê‚Ä
  dom1bob, dom2bob‚É‚µ‚½‚è‚·‚邱‚Æ‚É‚æ‚Á‚ㆁ[ƒU[‚̈êˆÓ«(unique)‚ð•ÛØ
  ‚·‚邱‚Æ‚Í‚Å‚«‚Ü‚·B‚±‚ê‚ð— ‚Å•ÏŠ·‚·‚é‚悤‚É mail‚âpop ‚ðƒnƒbƒN(hack)
  ‚·‚邱‚Æ‚à‚Å‚«‚Ü‚·‚ª‰˜‚¢(messy)•û–@‚Å‚·Bo‚Ä‚¢‚­•û‚̃[ƒ‹‚à‚Ü‚½ƒo[
  ƒi[(ƒwƒbƒ_)‚Émaindomain.com‚ª‚‚¢‚Ä‚¢‚ÄŠeƒTƒuƒhƒƒCƒ“‚̃[ƒ‹ƒo[ƒi[
  ‚àˆá‚Á‚½‚à‚Ì‚É‚µ‚½‚¢‚Ì‚Å‚·B

  9.4.  —Ç‚¢‰ðŒˆ•û–@

  Še‰¼‘zƒtƒ@ƒCƒ‹ƒVƒXƒeƒ€‚ÉŠeƒhƒƒCƒ“—p‚Ì/etc/passwd‚ð—pˆÓ‚µ‚Ä‚¢‚Ü‚·B‚±
  ‚ê‚Íbob@domain1.com‚Æbob@domain2.com‚ªA•ÊX‚Ì /etc/passwdã‚̈Ⴄƒ†[
  ƒU[‚Å‚ ‚èAƒ[ƒ‹‚̃gƒ‰ƒuƒ‹‚Í‚È‚¢‚Æ‚¢‚¤‚±‚Æ‚É‚È‚è‚Ü‚·B‚±‚̃†[ƒU[’B
  ‚É‚ÍŽ©•ª—p‚ÌspoolƒfƒBƒŒƒNƒgƒŠ‚ª—pˆÓ‚³‚ê‚Ä‚¢‚āAŠe‰¼‘zƒtƒ@ƒCƒ‹ƒVƒXƒeƒ€
  ã‚̃[ƒ‹ƒtƒHƒ‹ƒ_‚݂͌¢‚ɈႤ‚à‚Ì‚Å‚ ‚邱‚Æ‚É‚È‚è‚Ü‚·B

  ‚µ‚©‚µAsendmail‚Í‚¿‚å‚Á‚Æ‚µ‚½ƒ\[ƒXƒR[ƒh‚̏C³‚ª•K—v‚Å‚·B
  sendmail‚Í/etc/sendmail.cw‚ƌĂ΂ê‚éƒtƒ@ƒCƒ‹‚ðŽ‚Á‚Ä‚¢‚Ü‚·B‚±‚ê
  ‚Ísendmail‚ª‘¼‚̃zƒXƒg‚É“]‘—‚µ‚È‚¢‚э[ƒJƒ‹‚É”z‘—‚·‚é‘S‚ẴzƒXƒg–¼‚ð
  ŠÜ‚ñ‚Å‚¢‚éƒtƒ@ƒCƒ‹‚Å‚·B

  sendmail‚̓}ƒVƒ“ã‚Ì‘SƒfƒoƒCƒX‚Ì“à•”ƒ`ƒFƒbƒN‚ðAƒ[ƒJƒ‹IP‚Å‚±‚̃ŠƒXƒg
  ‚ð‰Šú‰»‚·‚邽‚߂ɍs‚¢‚Ü‚·B‚à‚µ“¯‚¶ƒ}ƒVƒ“ã‚̉¼‘zƒhƒƒCƒ“ŠÔ‚с[ƒ‹‚ð
  ‘—‚éê‡A–â‘肪o‚Ä‚«‚Ä‚µ‚Ü‚¢‚Ü‚·Bsendmail‚É‚Í‘¼‚̉¼‘zƒhƒƒCƒ“‚ªƒ[
  ƒJƒ‹ƒAƒhƒŒƒX‚Å‚ ‚èAƒ[ƒ‹‚àƒ[ƒJƒ‹‚ɃXƒv[ƒ‹‚·‚é‚Æ‚¢‚¤l‚¦‚Í‚È‚¢‚Ì‚Å
  ‚·B

  —Ⴆ‚Îbob@domain1.com‚³‚ñ‚ªfred@domain2.com‚Ƀ[ƒ‹‚ð‘—‚Á‚½‚Æ‚µ‚Ü
  ‚·Bdomain1.com‚Ìsendmail‚Ídomain2.com‚ªƒ[ƒJƒ‹‚Å‚ ‚é‚Æ”»’f‚·‚é‚Ì
  ‚Ådomain1.com‚Ƀ[ƒ‹‚ðƒXƒv[ƒ‹‚µ‚Ä‚µ‚Ü‚¢AŒ‹‰Ê‚Æ‚µ‚Ä domain2.com‚Ƀ
  [ƒ‹‚ª“Í‚­‚±‚Æ‚Í‚ ‚è‚Ü‚¹‚ñB‚»‚±‚Åsendmail‚ðC³‚µ‚Ä‚â‚è‚Ü‚·(’˜ŽÒ
  ‚Ív8.8.5‚Ìsendmail‚Å‚±‚ê‚ðs‚¢A“Á‚É–â‘è‚Í‚ ‚è‚Ü‚¹
  ‚ñ)Bsrc/main.c‚Ì494s•Ó‚è‚ð•ÒW‚µ‚Ü‚·B sendmail‚̃\[ƒX‚Í“K“–‚ȃTƒC
  ƒg‚âƒfƒBƒXƒgƒŠƒrƒ…[ƒVƒ‡ƒ“CDROM‚©‚ç“üŽè‚Å‚«‚Ü‚·B

  vi v8.8.5/src/main.c # Approximately Line 493

  ‚Æ‚µ‚āA

  load_if_names();

  ‚Æ‚¢‚¤‰ÓŠ‚ð

  /* load_if_names(); Commented out since hurts virtual */

  ‚ƃRƒƒ“ƒgƒAƒEƒg‚µ‚Ä‚µ‚Ü‚¢‚Ü‚·(–󒍁F‚±‚̊֐”‚̓Cƒ“ƒ^[ƒtƒF[ƒX‚Ì‘–¸
  ‚ƒljÁ–¼‚̏ꏊ‚ð‚µ‚ß‚·ŠÖ”‚Åconf.c line 4399‚É‚±‚̊֐”Ž©‘Ì‚ª‚ ‚è‚Ü
  ‚·BIPƒŠƒXƒg‚̃XƒLƒƒƒ“‚È‚Ç‚ðs‚Á‚Ä‚¢‚Ü‚·)B‚à‚µ‰¼‘zƒhƒƒCƒ“ŠÔ‚̃[ƒ‹
  ‘—M‚ª•K—v‚Ȃ炱‚ê‚ðs‚¤‚¾‚¯‚Å‚æ‚¢‚±‚Æ‚É’ˆÓ‚µ‚ĉº‚³‚¢B

  –â‘è‚Í‰ðŒˆ‚³‚ꂽ‚Ì‚Å‚·‚ªAƒƒCƒ“‚̃C[ƒTƒlƒbƒgƒfƒoƒCƒXeth0‚͍폜‚³‚ê‚Ä
  ‚¢‚Ü‚¹‚ñB‚»‚±‚ŁA‚à‚µ“¯ˆêƒ}ƒVƒ“‚̉¼‘zIP‚©‚çeth0ã‚ÌIP‚Ƀ[ƒ‹‚ð‘—‚éê
  ‡‚̓[ƒJƒ‹‚É‘—‚ç‚ê‚Ü‚·B’˜ŽÒ‚̓_ƒ~[IPvirtual1.domain.com
  (10.10.10.157)‚Æ‚µ‚ÄŽg‚Á‚Ä‚¢‚Ü‚·B‚±‚̃zƒXƒg‚ɂ̓[ƒ‹‚ð‘—‚ç‚È‚¢‚Ì‚Å‚Ç
  ‚̉¼‘zƒhƒƒCƒ“‚à‚¢‚è‚Ü‚¹‚ñB‚±‚ê‚̓VƒXƒeƒ€‚ª‘åä•v‚©‚Ç‚¤‚©ƒ`ƒFƒbƒN‚·‚é
  ‚½‚ß‚É ssh‚эƒOƒCƒ“‚·‚鎞‚ÉŽg‚¤IP‚Å‚à‚ ‚è‚Ü‚·B

  /etc/sendmail.cw‚̕ҏW

  vi /etc/sendmail.cw
  mail.domain1.com
  domain1.com
  domain1
  localhost

  m4‚ðŽg‚Á‚Ä/etc/sendmail.cf‚ðD‚«‚Ȃ悤‚ɍì‚è‚Ü‚·B’˜ŽÒ‚͈ȉº‚̂悤‚È‚à
  ‚Ì‚ðŽg‚¢‚Ü‚µ‚½B

  divert(0)dnl
  VERSIONID(`@(#)tcpproto.mc      8.5 (Berkeley) 3/23/96')
  OSTYPE(linux)
  FEATURE(redirect)
  FEATURE(always_add_domain)
  FEATURE(use_cw_file)
  FEATURE(local_procmail)
  MAILER(local)
  MAILER(smtp)

  (–󒍁Fm4‚ÍUNIXƒ}ƒNƒƒvƒƒZƒbƒT‚ŁA‚½‚¢‚Ä‚¢‚̃VƒXƒeƒ€‚É“ü‚Á‚Ä‚¢‚Ü‚·B
  ÅVƒo[ƒWƒ‡ƒ“‚Íftp://prep.ai.mit.edu/pub/gnu/‚©‚ç“üŽè‚Å‚«‚Ü‚·Bm4
  linux.mc > /etc/sendmail.cf‚È‚Ç‚Æ‚µ‚ÄŽg‚¢‚Ü‚·B m4‚Ì—á
  ‚ª/usr/lib/m4-example‚É‚ ‚è‚Ü‚·BƒIƒvƒVƒ‡ƒ“‚Ím4 --help ‚Å’²‚ׂĉº‚³‚¢)

  /etc/sendmail.cf‚ð‰¼‘zƒhƒƒCƒ“‰ž“š‚·‚é‚悤‚ɕҏWB

  vi /etc/sendmail.cf # 86s•Ó‚è‚ð•ÒW

  #  my official SMTP hostname (defined automatically)
  #Dj$w.Foo.COM
  ‚Æ‚¢‚¤‰ÓŠ‚ª‚ ‚é‚̂ŁA‚±‚ê‚ð

  #  my official SMTP hostname (defined automatically)
  Djdomain1.com
  ‚Æ‚µ‚Ä‚¨‚«‚Ü‚·B

  sendmail‚Í‚»‚ꎩg‚Å‚Í‚»‚̃T[ƒrƒX‚ðŽn‚߂邱‚Æ‚ª‚Å‚«‚¸Ainetd‚ð’Ê‚µ‚Ä
  ‹N“®‚·‚é•K—v‚ª‚ ‚è‚Ü‚·B‚±‚ê‚Í–ð‚É—§‚‚±‚Æ‚Å‚à‚È‚­‹N“®ŽžŠÔ‚ð’x‚­‚µ‚Ä‚¢
  ‚邾‚¯‚Å‚µ‚傤B“ÇŽÒ‚ª‚‘¬‚ȃTƒCƒg‚ðŠÇ—‚µ‚Ä‚¢‚é‚Ȃ牼‘zƒ}ƒVƒ“ã‚É‘¼‚Ì
  ƒhƒƒCƒ“‚ðè—L‚³‚¹‚é‚ׂ«‚Å‚Í‚È‚¢‚©‚à‚µ‚ê‚Ü‚¹‚ñB

   -bd ƒtƒ‰ƒO‚ð•t‚¯‚Ä‹N“®‚·‚邱‚Æ‚ÍŒˆ‚µ‚Ä‚µ‚È‚¢‚ʼnº‚³‚¢B (–󒍁F‚±‚̃t
  ƒ‰ƒO‚Ísendmail‚ðƒf[ƒ‚ƒ“‚Æ‚µ‚Ä‹N“®‚·‚éƒIƒvƒVƒ‡ƒ“‚Å‚·B‚­‚킵‚¢‚±‚Æ
  ‚Íman sendmail‚µ‚ĉº‚³‚¢)B‚Ü‚½ŠeƒhƒƒCƒ“‚Å”z‘—‚µ‚Ä‚¢‚È‚¢ƒ[ƒ‹‚ð‘—‚è
  o‚·(queue up)‚·‚邽‚ß‚É sendmail -q‚ÆŽÀs‚·‚é•K—v‚ª‚ ‚邱‚Æ‚É’ˆÓ‚µ‚Ä
  ‚­‚¾‚³‚¢B

  #!/bin/sh

  # Source function library.
  . /etc/rc.d/init.d/functions

  case "$1" in
    start)
          echo -n "Starting sendmail: "
          daemon sendmail -q1h
          echo
          echo -n "Starting virtual sendmail: "
          for i in /virtual/*
          do
                  if [ ! -d "$i" ]
                  then
                          continue
                  fi
                  if [ "$i" = "/virtual/lost+found" ]
                  then
                          continue
                  fi
                  chroot $i sendmail -q1h
                  echo -n "."
          done
          echo " done"
          touch /var/lock/subsys/sendmail
          ;;
    stop)
          echo -n "Stopping sendmail: "
          killproc sendmail
          echo
          rm -f /var/lock/subsys/sendmail
          ;;
    *)
          echo "Usage: sendmail {start|stop}"
          exit 1
  esac

  exit 0

  pop‚Í“Á‚ɉ½‚à‚¹‚¸‚ɃCƒ“ƒXƒg[ƒ‹‚µ‚Ä‚µ‚Ü‚¢‚Ü‚·Bvirtuald‚̃p[ƒg‚ð’ljÁ
  ‚µ‚½ã‚Å inetd‚̃Gƒ“ƒgƒŠ[‚ð‚·‚é‚±‚Æ‚ª•K—v‚Å‚·Bsendmail‚Æpop‚ÉŠÖ‚·
  ‚éinetd.conf‚̃Gƒ“ƒgƒŠ‚́A

  pop-3 stream tcp nowait root /usr/bin/virtuald virtuald /virtual/conf.pop in.qpop -s
  smtp stream tcp nowait root /usr/bin/virtuald virtuald /virtual/conf.mail sendmail -bs

  ‚Æ‚È‚è‚Ü‚·B

  10.  ‚»‚Ì‘¼‰¼‘z“I‚É‚Å‚«‚邱‚Æ

  ‘¼‚̃T[ƒrƒX‚à“¯‚¶‚悤‚Ȏ菇‚Å‚·B

  o  ‰¼‘zƒtƒ@ƒCƒ‹ƒVƒXƒeƒ€‚ɃoƒCƒiƒŠAƒ‰ƒCƒuƒ‰ƒŠƒtƒ@ƒCƒ‹‚ð’ljÁ

  o  /etc/inetd.conf‚̒ljÁ

  o  /virtual/conf.service‚ðì‚é

  o  •K—v‚ɉž‚¶‚ĉ¼‘zƒXƒNƒŠƒvƒg‚ð•ÒW‚·‚é

     sambaƒpƒbƒP[ƒW‚ÆEudora‚ðŽg‚Á‚Ẳ¼‘zpoppassd‚ðŽŽ‚µ‚Ä‚Ý‚Ü‚µ‚½B‚Ç‚¿
     ‚ç‚à–â‘è‚È‚­“®ì‚µ‚Ä‚¢‚Ü‚·B‚à‚µ‚à‚Á‚Æ‹»–¡‚ª‚ ‚ê‚Ή¼‘zsamba‚̃Cƒ“ƒX
     ƒg[ƒ‹•û–@‚ɂ‚¢‚Ă̏͂àÝ‚¯‚½‚¢‚ƍl‚¦‚Ä‚¢‚Ü‚·B

  11.  ‚Ü‚Æ‚ß

  ˆÈã‚ª•K—v‚ȍì‹Æ‚Å‚·B‚±‚Ì•¶‘‚É‚æ‚Á‚Đl‚Ñ‚Æ‚Ì‘OŒü‚«‚È”½‰ž‚ɏo‰ï‚¦‚邱
  ‚Æ‚ðŠú‘Ò‚µ‚Ä‚¢‚Ü‚·B˜A—‚Í Computer Resource Center ‚Ü‚Å‚¨Šè‚¢‚¢‚½‚µ‚Ü
  ‚·B‚à‚µ‹^–â‚È“_‚âƒhƒLƒ…ƒƒ“ƒg‚̃Aƒbƒvƒf[ƒg‚È‚Ç‚ ‚è‚Ü‚µ‚½‚狳‚¦‚ĉº‚³
  ‚¢B¡Œã‚ÌHOWTO‚ɒljÁ‚µ‚½‚¢‚ÆŽv‚¢‚Ü‚·B

  12.  FAQ

  Q1.    ‚Ç‚¤‚µ‚Ä‚±‚ÌFAQ‚ɂ‚¢‚ÄŽ¿–₪‚È‚¢‚Ì‚Å‚·‚©H

  A1.    ‚Ü‚¾‚¾‚ê‚àŽ¿–₵‚Ä‚È‚¢‚©‚ç‚Å‚·B

  (–󒍁FˆÈã‚±‚±‚Ü‚Å‚ªŒ´•¶)

  13.  ì‹Æƒƒ‚

  13.1.  virtfs‚ɂ‚¢‚Ä

  ŽÀs‚·‚é‚Æ

  Enter the domain name: domain.com
  Enter leading dir: (Enter for default: /virtual):

  ‚Æ•·‚©‚ê‚Ü‚·B‚»‚ꂼ‚ê“ü—Í‚µ‚ĉº‚³‚¢Bã‚Ì—á‚ł͈ȉº‚̂悤‚ȃfƒBƒŒƒNƒg
  ƒŠ‚ªì‚ç‚êA“K“–‚ȃtƒ@ƒCƒ‹‚ª‚»‚ꂼ‚ê‚̃fƒBƒŒƒNƒgƒŠ‚ɃRƒs[‚³‚ê‚Ü‚·B

  /virtual/domain.com/
              |- bin
              |- dev
              |- etc
              |- home
              |- lib
              |- proc
              |- sbin
              |- tmp
              |- usr
              |- var
              \-log

  13.2.  ‚»‚Ì‘¼‚̃Gƒ‰[

  13.2.1.  /var/log/syslog:

  Dec 22 23:28:46 kaien virtuald[298]: Virtuald Starting: $Revision: 1.2 $
  Dec 22 23:28:46 kaien virtuald[298]: getipaddr: getsockname failed:
                                       Socket opera
  Dec 22 23:28:46 kaien virtuald[298]: getipaddr failed

  ======> ip-alias‚ªÝ’肳‚ê‚Ä‚¢‚Ü‚¹‚ñB

  Dec 23 00:30:26 kaien virtuald[1132]: Virtuald Starting: $Revision: 1.2 $
  Dec 23 00:30:26 kaien virtuald[1132]: Incoming ip: 192.168.1.1
  Dec 23 00:30:26 kaien virtuald[1132]: iptodir: fopen failed: No such
  file or dir
  Dec 23 00:30:26 kaien virtuald[1132]: iptodir failed

  ======>  /etc/initd.conf‚ɐݒ肵‚½confƒtƒ@ƒCƒ‹‚ª‚ ‚è‚Ü‚¹‚ñB

  13.2.2.  FTP

  ftp ‚Í /virtual/etc/passwd‚Őݒ肵‚½ƒ†[ƒU[‚Ålogin‚Å‚«‚Ü‚·B

  —áF

  Connected to 192.168.1.4. <=== IP-alias address
  220 kaien FTP server (Version wu-2.4(1) Tue Dec 5 20:51:15 CST 1995) ready.
  Name (192.168.1.4:apple): 331 Password required for hogehoge
  230-No directory! Logging in with home=/
             ===>‚±‚ê‚Í‚Ü‚¾ /virtual/home/hogehoge‚ðì‚Á‚Ä‚¢‚È‚¢‚©‚çB
  230 User hogehoge logged in.
  Remote system type is UNIX.
  Using binary mode to transfer files.
  ftp> 221 Goodbye.

  13.2.3.  Mail

  13.2.4.  Web

  [–óŽÒ F    ˆÉ²Ž¡  “N (isaji@mxu.meshnet.or.jp)

  Z³ F    “¡Œ´ ‹P‰Ã‚³‚ñ  (fujiwara@cim.pe.u-tokyo.ac.jp) ]