Implementar dominios virtuais no FreeBSD ( para WWW / email / FTP ) , nao e uma tarefa dificil mas e um tanto longa. Deste modo vamos por partes ;-).
Vale lembrar que voce deve criar uma conta com o adduser para cada um dos Dominios Virtuais que vai implementar.network_interfaces="ed0 lo0" ifconfig_lo0="inet 127.0.0.1" ifconfig_ed0="inet 10.0.0.1 netmask 255.255.255.0"Para habilitar um alias de IP para a interface ed0 , basta incluir uma linha como a abaixo para cada um dos IP que seu server deve responder.
ifconfig_ed0_alias0="inet 10.0.2.1 netmask 255.255.255.0"2. Configurando o DNS para o dominio virtual.
;########################################################################### ; directory /usr/local/named/ cache . named.ca primary dominio.com.br dominio.zone primary DominioVirtual1.com.br DominioVirtual1.zone primary DominioVirtual2.com.br DominioVirtual2.zone primary 1.0.192.in-addr.arpa dominio.rev primary 0.0.127.in-addr.arpa named.local ; ;############################################################################2.2 Exemplo do /etc/namedb/DominioVirtual1.zone
;############################################################################
;
@ IN SOA DominioVirtual1.com.br support.DominioVirtual1.com.br. (
1996042901 ;versão
10800 ;refresh (3 horas)
1800 ;retry (30 minutos)
3600000 ;expire (41 dias e 16 horas)
86400) ;ttl default (1 dia)
;
IN NS ns.dominio.com.br.
IN MX 10 mail.dominio.com.br
IN MX 0 DominioVirtual1.com.br.
;
DominioVirtual1.com.br. IN A 192.0.1.10
;
ftp IN CNAME DominioVirtual1.com.br.
www IN CNAME DominioVirtual1.com.br.
mail IN CNAME DominioVirtual1.com.br.
;
;############################################################################
2.3 Exemplo do /etc/namedb/dominio.rev10 IN PTR www.DominioVirtual1.com.br. 11 IN PTR www.DominioVirtual2.com.br.Para maiores informacoes sobre a configuracao do DNS no FreeBSD , consulte: Configurando um servidor DNS no FreeBSD.
< VirtualHost 192.0.0.10 > ServerAdmin webmaster@DominioVirtual1.com.br DocumentRoot /usr/local/www/data/DominioVirtual1 ServerName www.DominioVirtual1.com.br ErrorLog /var/log/errors.DominioVirtual1.com.br TransferLog /var/log/access_log.www.DominioVirtual1.com.br < /VirtualHost >4. Configurando o sendmail.
#/etc/sendmail.cw DominioVirtual1.com.br DominioVirtual2.com.br
Fw-o /etc/sendmail.cwE insira logo abaixo dela as seguintes linhas:
Kvirtualhosts btree /etc/virtualhosts.db Kvirtualmasqs btree /etc/virtualmasqs.db
S40E insira abaixo dela as seguintes linhas:
R$*< @$* > $* [tab]$@$1<@$2>$3[tab]already fully qualified R$*[tab]$:$(virtualmasqs $1 $: $1@$M$) R$*@[tab]$: $1 @ $j[tab]if $M not defined
S98E insira abaixo dela as seguintes linhas:
R$+< @ $+ .>[tab]$: $1 < @ $2 >. R$+< @ $+ > $*[tab]$: $(virtualhosts $1@$2 $: $1< @ $2 > $3 $) R$+< @ $+ > $*[tab]$: $(virtualhosts $2 $: $1 < @ $2 > $3 $) R$+< @ $* >.[tab]$: $1 < @ $2 .>As rules sets acima foram extraidas de um mail enviado a lista FreeBSD-L [freebsd@br.freebsd.org] por Alejandro Flores [aflores@rock.recife.softex.br]
#/etc/virtualhosts webmaster@DominioVirtual1.com.br usuario@dominio.com.br webamster@DominioVirtual2.com.br usuario2@dominio.com Fulano@DominioVirtual1.com.br fulano@dominio.com.br Beltrano@DominioVirtual2.com.br beltrano@dominio.com.br #Voce deve criar uma entrada para cada usuario de seu dominio virtual.
# makemap btree /etc/virtualhosts.db < /etc/virtualhosts
#/etc/virtualmasqs usuario webmaster@DominioVirtual1.com.br usuario2 webamster@DominioVirtual2.com.br fulano Fulano@DominioVirtual1.com.br beltrano Beltrano@DominioVirtual2.com.br #Voce deve criar uma entrada para cada usuario de seu dominio virtual.
# makemap btree /etc/virtualmasqs.db < /etc/virtualmasqsPronto seu sendmail, ja esta configurado para responder pelos seus dominios virtuais :-).
joao@DominioVirtual1.com.br fulano@dominio.com.br joao@DominioVirtual2.com.br beltrano@dominio.com.bre no arquivo /etc/virtualmasqs:
fulano joao@DominioVirtual1.com.br beltrano joao@DominioVirtual2.com.brOBS:vale lembrar que sempre que voce alterar os arquivos /etc/virtualhosts e /etc/virtualmasqs voce devera executar o comando makemap btree correspondente.
# Virtual Servers virtual 192.0.1.10 /home/FTP-VIRTUAL/ftp.DominioVirtual1.com.br /home/FTP-VIRTUAL/ftp.DominioVirtual1.com.br/welcome.txtIsso ira habilitar o Wu-ftpd a atender por: ftp.DominioVirtual1.com.br , mas ainda nao acabou ;-)
# mkdir /home/FTP-VIRTUAL # cd /home/FTP-VIRTUAL # mkdir ftp.DominioVirtual1.com.br5.2 Crie/Copie os arquivos necessarios para o servico de FTP anonimo para o diretorio criado.
# cd /home/FTP-VIRTUAL/ftp.DominioVirtual1.com.br # cp -a /var/ftp5.3 Mude o diretório home da conta de ftp anônimo para "/home/FTP-VIRTUAL".
upload /home/FTP-VIRTUAL/ftp.DominioVirtual1.com.br * no upload /home/FTP-VIRTUAL/ftp.DominioVirtual1.com.br /incoming yes DominioVirtual1 ftp 0660 nodirsAgora, todo arquivo que é feito o upload para o servidors virtual, pertence ao usuario DominioVirtual1, de modo que voce pode usar quotas para controlar o espaco disponivel para ele em disco.