Hoe stel ik het in?

Maak het nieuwe account aan

Maak voor de virtuele klant een regulier Linux account aan met homedirectory en mail.

NCSA 1.5 of Apache Config Files

Virtuele Host implementaties veranderen nog steeds. Er bestaan een paar patches om een Virtuele host te ondersteunen. Bekijk de release notes van de server voor meer details. NCSA 1.5 en Apache hebben nu Virtuele patches opgenomen en ik heb me laten vertellen dat Spinner ook virtuele hosts ondersteunt.

Een virtuele patch ondersteunt de volgende srm.conf syntax, de tweede NCSA 1.5 methode echter voor het definiëren van een Virtuele host biedt meer flexibiliteit:

SubDocumentRoot www.domain1.com /usr/local/etc/httpd/docs/domain1
SubDocumentRoot www.domain2.com /usr/local/etc/httpd/docs/domain2

NCSA en Apache ondersteunen de volgende httpd.conf syntax:

ServerAdmin webmaster@domain1.com
DocumentRoot /usr/local/etc/httpda/docs/domain1
ServerName www.domain1.com
ErrorLog logs/errors.domain1.com
TransferLog logs/access_log.domain1.com

De interface configureren

Zodra de IPalias patches zijn geïnstalleerd, voeg je het volgende toe aan het bestand /etc/rc.d/rc.local op je lokale webserver.

/sbin/ifconfig eth0 alias www.domain1.com
/sbin/ifconfig eth0 alias www.domain2.com
/sbin/ifconfig eth0 alias www.domainN.com

Registratie bij Internic

Als je een nieuw domein opzet of het huidige domein wijzigt, dan moet je het domain registreren bij Internic. Het sjabloon is te vinden in ftp://rs.internic.net/templates/domain-template.txt

Named configureren

Named moet zo worden geconfigureerd dat je virtuele domain zichtbaar zal zijn voor de buitenwereld. Ik beweer geen expert te zijn als het gaat om DNS. Suggesties zijn altijd welkom.

Voorbeeld /etc/named.boot

directory /etc/named.data
primary           realdomain.com                  db.realdomain.com
primary           xxx.xxx.xxx.IN-ADDR.ARPA        db.xxx.xxx.xxx
primary           0.0.127.IN-ADDR.ARPA            db.local

primary           domain1.com                     db.domain1.com
primary           domain2.com                     db.domain2.com
cache             .                               named.root

Opmerking

Vervang x door je IP.

Voorbeeld /etc/named.data/db.domain1.com

$ORIGIN com.
  domain1    IN      SOA     domain1.com. hostmaster.domain1.com. (
             10134 43200 3600 604800 86400 )
             IN      NS      ns1.realdomain.com.
             IN      MX      10 mail.realdomain.com.
             IN      MX      0 domain1.com.
domain1.com. IN      A       xxx.xxx.xxx.xxx    ;www.domain1.com IP

  $ORIGIN domain1.com.
  ftp        IN      CNAME   domain1.com.
  www        IN      CNAME   domain1.com.
  mail       IN      CNAME   domain1.com.

Voorbeeld /etc/named.data/db.xxx.xxx.xxx

Als het goed is, heb je reeds een db.xxx.xxx.xxx voor je huidige site. Werk het zo bij dat het de nieuwe virtuele domeinen bevat voor reverse lookups.

xx              IN      PTR     www.domain1.com.
                xx              IN      PTR     www.domain2.com.

Herstart named

Zodra je klaar bent met het wijzigen van config bestanden, moet je de daemon named herstarten.

Virtuele Mail

Je virtuele klanten zullen hoogstwaarschijnlijk de mogelijkheid willen dat mail gezonden naar hun domein wordt doorgestuurd naar een ander domein. Een paar wijzigingen in sendmail.cf zijn hiervoor nodig. Een paar maanden verschillende wijzigingen aan sendmail te hebben uitgeprobeerd, vond ik als eerste de volgende methode die werkt en waarvoor slechts één wijziging nodig is per virtuele site in sendmail.cf.

Sendmail Configuratie

  1. Haal de huidige versie van sendmail op met makemap btree ondersteuning.

  2. Maak een bestand aan met de naam /etc/domainalias met de volgende indeling:

    *@domain1.com           localnet@realdomain.com
    *@domain2.com           townplaz@realdomain.com
    *@domainN.com           soracomp@realdomain.net
    
    webmaster@domain1.com   somuser@anotherhost.com
    jamison@domain2.com     anotheruser@somehost.com

  3. Maak een DB bestand aan

    makemap btree /etc/domainalias.db  < /etc/domainalias

  4. /etc/sendmail.cf wijzigingen:

    1. Voeg voor elke nieuwe virtuele host een Cw record toe

      Cwdomain1.com
      Cwdomain2.com

    2. Voeg de domainalias mapping slechts eenmaal toe.

      Kdomainalias btree /etc/domainalias.db

    3. Toevoegen/wijzigen van Ruleset 98

      ###################################################################
      ###  Ruleset 98 -- local part of ruleset zero (can be null)     ###
      ###################################################################
      
      S98
      
      R$+ < $+ . >          $1 < $2 >                         remove trailing dots
      R$+ < $+ >            $: < > $(domainalias $1$2 $)      match user@address
      R< > $+ @ $*          $: < $1 > $(domainalias * @ $2 $) match *@address
      R< $+ > * $*          $: < > $1 $2                      replace * with userid
      R < $+ > $+           $: < > $2                         bugfix
      R< > $*               $: $>3 $1                         and rewrite using S3

  5. Sendmail testen

    Test de sendmailconfiguratie om de wijzigingen in sendmail.cf te verifiëren

    sendmail -v -bv info@domain1.com

    De uiteindelijke bestemming zou moeten worden weergegeven.

Virtuele FTP

Tot nu toe is het me niet gelukt om Virtuele FTP werkend te krijgen. Er bestaan een paar patches, en ik ben er zeker van dat er een werkende patch bestaat. We maken gewoon een werkdirectory /home/ftp/business/domain1 aan, maar een werkelijke Virtuele FTP zou fijn zijn.

Als iemand een oplossing zou willen aandragen, dan zou ik meer dan gelukkig zijn het hier toe te voegen.

Arnt Gulbrandsen heeft ftpd herschreven en er ondersteuning voor onafhankelijke FTP services in opgenomen. De Troll Tech FTP Daemon