* http://unsekurity.virtualave.net * * Unsekurity Team * by.. psych .. Atualizado por Blind_Bard. (valeu blind) subject.. Virtual Hosts & Subdomains. ================================================================================ Como o 'publico alvo' do nosso grupo sao os newbies resolvemos escrever este texto para dar uma ajuda ao pessoal que gostaria de saber como criar vhosts e/ou subdomains, esse eh um assunto relativamente facil porem percebemos que ha muita dificuldade para aprender com alguem isso, o pessoal que 'sabe', na maioria das vezes, eh meio chato e nao gosta de ficar explicando passo a passo essas coisas. OBS: Como sempre lembramos em nossos tutoriais... elitos, nao leiam isto! ================================================================================ DNS & VIRTUAL HOSTS 1 - DNS Para servir um dominio na Internet voce precisa - alem de possuir um registro na entidade reguladora mais proxima (FAPESP, no caso do Brasil) - configurar o daemon named (o famoso BIND). Atualmente as configuracoes do named ficam geralmente no arquivo /etc/named.conf, apesar de ja haverem figurado em outros arquivos (versoes antigas, o BIND 4). O arquivo /etc/named.conf tem o seguinte formato: /* Opcoes do modo de operacao do BIND */ options { directory "/var/named"; /* Diretorio onde ficam os dados dos dominios */ }; /* Configuracao para acesso dos servidores "raiz" de DNS */ zone "." in { type hint; file "root.cache"; /* Arquivo que contem o endereco dos servidores */ }; /* Configuracao do DNS reverso para o endereco de loopback */ zone "0.0.127.in-addr.arpa" in { type master; file "named.local"; }; /* Configuracao dos dominios servidos */ /* Dominio unsekurity.org */ zone "unsekurity.org" { type master; /* neste caso estamos configurando o servidor master */ file "unsekurity.org.hosts"; /* arquivo com configuracoes de dominio */ } /* Configuracao do DNS reverso para unsekurity.org */ zone "0.168.192.in-addr.arpa" in { type master; file "unsekurity.org.rev"; /* arquivo com configuracoes de ip reverso */ }; 2 - Virtual Hosts Adaptando para seu dominio um arquivo no formato citado, so vai faltar criar os dois arquivos relativos as opcoes do enderecamento. Pro nosso exemplo, eles seguem abaixo: unsekurity.org.hosts <-- cut here --> @ IN SOA unsekurity.org root.unsekurity.org. ( 199802151 ; Serial (data de hoje + num.) 8H ; Tempo do ciclo de atualizacao do DNS 2H ; Tempo do ciclo de tentativas 1W ; Tempo limite sem atualizacao 1D ) ; Time-to-live para o dominio ; Configuracao dos servidores de DNS NS psych.unsekurity.org. NS blind.unsekurity.org. ; Configuracao dos servidores de e-mail MX 10 nash.unsekurity.org. ; Definicao dos IP's para cada nome localhost A 127.0.0.1 psych A 192.168.0.2 blind A 192.168.0.3 nash A 192.168.0.4 <-- cut here --> unsekurity.org.rev <-- cut here --> @ IN SOA unsekurity.org root.unsekurity.org. ( 199802151 ; Serial (data de hoje + num.) 8H ; Tempo do ciclo de atualizacao do DNS 2H ; Tempo do ciclo de tentativas 1W ; Tempo limite sem atualizacao 1D ) ; Time-to-live para o dominio ; Configuracao dos servidores de DNS NS psych.unsekurity.org. NS blind.unsekurity.org. ; Reverso dos hosts 2 PTR psych 3 PTR blind 4 PTR nash <-- cut here --> Note que foram configurados 3 hostnames em nosso dominio: psych, blind e nash. A primeira vista, alguem poderia afirmar que se tratam de 3 maquinas em nossa rede, mas isso nao eh necessariamente verdade. Aqui poderiamos ter 2 servidores na rede - um deles chamado psych e outro blind, sendo que um deles (blind) "hospeda" um virtual host. Nesse caso - diria o iniciante - voce teria a maquina blind com 2 placas de rede e setaria um ip para cada uma delas, certo? Errado. O fato eh que podemos ter varios ips em uma mesma placa de rede, e eh isto que constitui a essencia do virtual host em DNS. Agora vem a parte pratica da coisa: para 'levantar' um ip extra na maquina blind e permitir que ela responda pelo host nash.unsekurity.org, usamos o comando: blind:~# ifconfig eth0:1 192.168.0.4 up E game over! Voce acaba de criar um virtual host! Apenas tenha o cuidado de observar se existem outros virtual hosts em sua maquina, o que faria com que o numero apos o identificador de dispositivo (eth0, no nosso caso), mudasse (cada ip deve ter um numero destes). 2.1 - Virtual hosts no Apache Agora mano, voce poderia me perguntar: "qual a finalidade de um virtual host?". Pois bem. Imagine que no nosso dominio imaginario unsekurity.org quisessemos hospedar uma pagina para cada membro, e que para facilitar as coisas o endereco dessas paginas seriam "module.unsekurity.org", "cs0.unsekurity.org", etc. Se tivessemos que usar uma maquina para cada site - cada uma rodando um httpd - estariamos em maus lencois, concorda? Eh ai que entra uma das utilidades de um virtual host: usando ainda o exemplo inicial, bastaria configurar o apache para responder diferentemente aos pedidos de pagina para "blind.unsekurity.org" e "nash.unsekurity.org". Fazer isso nao eh complicado... continuem lendo. 2.1.1 - Configurando o Apache para ouvir varios IP's Para permitir que o Apache se "binde" a portas que nao a default, vc usa a diretiva "Listen". Assim: # Ouve o IP do hostname blind Listen 192.168.0.3:80 # Ouve o IP do hostname nash Listen 192.168.0.4:80 Dessa forma, alem de ouvir na porta padrao (a 80 do ip 192.168.0.3) o Apache vai responder a requisicoes na 80 de 192.168.0.4. Eh muito importante lembrar q a diretiva BindAddress deve estar setada como "*" (sem as aspas), ou apenas requisicoes ao endereco IP especificado nela serao consideradas. 2.1.2 - Ativando os virtual hosts pra valer Pra terminar nosso trabalho devemos informar ao Apache quais sites devem ser servidos quem quais combinacoes IP/Porta. Para isso usaremos a diretiva NameVirtualHost e o bloco . Vejam como: # Determina que teremos um virtual host neste par IP/Porta NameVirtualHost 192.168.0.4:80 # Cria o virtual host nash.unsekurity.org # E-mail do admin ServerAdmin admin@nash.unsekurity.org # Local onde serao armazenados os documentos html DocumentRoot /www/nash/webpages # Nome que deve ser chamado pelo browser para ativar este virtual host ServerName nash.unsekurity.org # Diretorio onde o nash armazenara seus scripts CGI ScriptAlias /scripts/ "/www/nash/scripts/" # Definicoes para o diretorio de CGI AllowOverride None Options None Order allow, deny Allow from all Agora voce so precisa reiniciar o seu server httpd e admirar o trabalho! Por favor, note que esta eh uma configuracao de http MUITO simplificada - mas eu nao gostaria de ser acusado de fugir do tema central do txt ;-) Assim sendo, fica acertado pra um futuro proximo o release de um txt so sobre o Apache. 3 - Subdomains Bem - se vc chegou ate aqui -, criar subdomains eh moleza: para setar um virtual host especificamos seu nome e ip no arquivo unsekurity.org.hosts, certo? Pois para ter seu subdomain, basta fazer a mesma coisa! Vejamos um exemplo pratico, onde criamos o subdomain tutoriais.unsekurity.org: unsekurity.org.hosts <-- cut here --> @ IN SOA unsekurity.org root.unsekurity.org. ( 199802151 ; Serial (data de hoje + num.) 8H ; Tempo do ciclo de atualizacao do DNS 2H ; Tempo do ciclo de tentativas 1W ; Tempo limite sem atualizacao 1D ) ; Time-to-live para o dominio ; Configuracao dos servidores de DNS NS psych.unsekurity.org. NS blind.unsekurity.org. ; Configuracao dos servidores de e-mail MX 10 nash.unsekurity.org. ; Definicao dos IP's para cada nome localhost A 127.0.0.1 psych A 192.168.0.2 blind A 192.168.0.3 nash A 192.168.0.4 ; Definicao de subdomains tutoriais.unsekurity.org A 192.168.0.20 <-- cut here --> unsekurity.org.rev <-- cut here --> @ IN SOA unsekurity.org root.unsekurity.org. ( 199802151 ; Serial (data de hoje + num.) 8H ; Tempo do ciclo de atualizacao do DNS 2H ; Tempo do ciclo de tentativas 1W ; Tempo limite sem atualizacao 1D ) ; Time-to-live para o dominio ; Configuracao dos servidores de DNS NS psych.unsekurity.org. NS blind.unsekurity.org. ; Reverso dos hosts 2 PTR psych 3 PTR blind 4 PTR nash ; Reverso dos subdomains 20 PTR tutoriais.unsekurity.org <-- cut here --> Pronto! Subdomain criado! ================================================================================ Bem, nao somos grandes autores, mas escrevemos este txt para ajudar ao UnsekTeam e ao pessoal que quer e gosta de aprender cada vez mais - os quais tem nos dado a maior forca para continuar com nosso trabalho. Esperamos sinceramente que o txt tenha ficado do agrado de vcs! Qualquer duvida sobre esse assunto (ou outro, desde que esteja ao nosso alcance :->) mande-nos um e-mail: psych Blind_Bard ================================================================================ Agradecemos aos integrantes do Unsek. Eh desnecessario citar os nicks - voces certamente os conhecem e tambem ao grandioso objetivo do grupo, o qual esperamos que seja alcancado. c ya... psych & Blind_Bard.