Servidor DNS (BIND9)
Configuració de BIND9 (servidor de DNS): http://www.mexicoextremo.com.mx/content/view/423/62/
bind9 a Ubuntu: http://www.gpltarragona.org/archives/421
Los nombres de dominio completamente calificados o FQDN (fully qualified domain name) se componen por lo general del nombre del host, un nombre de dominio secundario y un nombre de dominio primario o de nivel máximo (top-level domain), que son secciones organizadas jerárquicamente. Por ejemplo: 'www.ejemplo.com’. Leyéndolo de derecha a izquierda tenemos un dominio primario (’COM’), un dominio secundario (’EJEMPLO’) y el nombre del host (’WWW’).
Contingut
Configuració
Veamos como configurar BIND9 para disponer de un servidor DNS en una intranet, que resuelva dominios internos. Por ejemplo, en la intranet se utilizaran dominios que terminen en "marblestation.homeip.net” como "saturno.marblestation.homeip.net” o "luna.marblestation.homeip.net”. El servidor DNS se encargará de resolver esos dominios en sus respectivas IPs, además de resolver otros dominios de Internet como "google.com”.
Instalamos BIND9 y nos desplazamos a su directorio de configuración:
$ aptitude install bind9 #o bé $ sudo apt-get install bind9 $ cd /etc/bind/
Editamos named.conf.local y añadimos la zona "marblestation.homeip.net”, haciendo referencia a su fichero de configuración:
zone "marblestation.homeip.net" { type master; file "/etc/bind/db.marblestation"; };
Creamos el fichero de configuración "db.marblestation” a partir de "db.local”:
cp db.local db.marblestation ; BIND data file for local loopback interface ; $TTL 604800 @ IN SOA marblestation.homeip.net. root.marblestation.homeip.net. ( 1 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS marblestation.homeip.net. @ IN A 192.168.1.130 @ IN MX 0 marblestation.homeip.net. www IN A 192.168.1.130 saturno IN CNAME marblestation.homeip.net.
fixem-nos que saturno és un alias que apunta a la mateixa IP (compte, un alias no és el mateix que un subdomini) CNAME (Canonical Name). Es un alias que se asigna a un host que tiene una dirección IP valida y que responde a diversos nombres. Pueden declararse varios para un host.
Cada vez que se cambia la configuración de BIND9, debemos reiniciar el demonio:
$ sudo /etc/init.d/bind9 restart
Para que nuestra máquina utilice el servidor de DNS que hemos configurado, debemos editar "/etc/resolv.conf” y dejamos únicamente la línea:
nameserver 127.0.0.1
és la manera de dir quin és el servidor DNS de la Intranet. Abans hi havia el 192.168.0.1, que és la manera de dir que els DNS estan en el router. En la resta de màquines de la intranet s'ha de ficar:
- per a les màquines Linux, a resolv.conf posar nameserver 192.168.1.130
- per a les màquines Windows, editar la configuració de la targeta de xarxa i posar DNSp: 192.168.1.130
Para comprobar el correcto funcionamiento, utilizamos el comando "host” el cual sirve para resolver dominios:
$ host marblestation.homeip.net marblestation.homeip.net has address 192.168.1.130 marblestation.homeip.net mail is handled by 0 marblestation.homeip.net. $ host saturno.marblestation.homeip.net saturno.marblestation.homeip.net is an alias for marblestation.homeip.net. marblestation.homeip.net has address 192.168.1.130 marblestation.homeip.net mail is handled by 0 marblestation.homeip.net.
(també em funciona en Windows)
Si deseamos también disponer de resolución de dominios inversa, es decir, que podamos preguntar por la IP "192.168.48.32″ y el servidor DNS nos diga que pertenece a marblestation.homeip.net, debemos añadir a "/etc/bind/named.conf.local”:
zone "192.in-addr.arpa" { type master; file "/etc/bind/db.192"; };
Creamos el archivo de configuración "/etc/bind/db.192″ a partir del "/etc/bind/db.127″:
cd /etc/bind/ cp db.127 db.192
Editamos "/etc/bind/db.192″, substituimos "localhost” por "marblestation.homeip.net” y cambiamos la última línea:
; ; BIND reverse data file for local loopback interface ; $TTL 604800 @ IN SOA marblestation.homeip.net. root.marblestation.homeip.net. ( 1 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS marblestation.homeip.net. 130.1.168 IN PTR marblestation.homeip.net.
De forma que, la última linea indica que la IP [192.]168.1.130 (escrita a la inversa y omitiendo el 192 que ya se especifico en "named.conf.local”) corresponde al dominio marblestation.homeip.net.
Podemos comprobar su funcionamiento reiniciando el demonio BIND9 y realizando una consulta:
$ sudo /etc/init.d/bind9 restart $ host 192.168.1.130 130.1.168.192.in-addr.arpa domain name pointer marblestation.homeip
En el Mozilla, funcionen correctament:
http://192.168.1.130/googling/
http://marblestation.homeip.net/googling/ (també funciona en el IE del Windows)
Administración del servicio de DNS
Arranque del servicio.
$ /etc/init.d/bind9 start - o - $ service bind9 start -> no vàlid a Ubuntu
Alto del sistema.
$ /etc/init.d/bind9 stop - o - $ service bind9 stop -> no vàlid a Ubuntu
Verificación del sistema.
$ ps -fea |grep bind9 - o - $ service bind9 status -> no vàlid a Ubuntu
Automatización al arranque del equipo.
chkconfig -level 123 bind9 on -> no vàlid a Ubuntu, buscar com es fa amb Ubuntu (veure el fitxer howto_runlevel.txt) de fet, no cal. La instal.lació del bind9 ja fica en el seu lloc els scripts per tal que l'inici sigui automàtic
$ cd /etc/rc2.d $ cat S15bind9
(la S significa start, i és un script que s'executa en l'inici del sistema amb run level=2)
Subdominis amb Apache
Ara que ja hem aconseguit fer funcionar http://marblestation.homeip.net/ (seria equivalent a http://www.homeip.net/), ara hem d'aconseguir configurar un subdomini, del tipus:
Hauré de fer dues coses:
1) a nivell de DNS, que apunti a la IP correcte (en ppi la mateixa, 192.168.1.130)
2) a nivell d'Apache, configurar un directori virtual per tal que ho sàpiga trobar.
Documentació de hosting virtual a Apache (castellà): http://httpd.apache.org/docs/2.0/es/vhosts/
También recordarte que, además de configurar el servidor Apache, donde te gestionan el Dominio es necesario que cambies la ip donde apunta, es decir: foros.tudominio.com debe apuntar a una IP (la de tu servidor Apache)
També:
http://www.debian-administration.org/articles/355
Resum
Així doncs, anem a crear el domini terra.joanillo.com i el subdomini lluna.joanillo.com
Editamos named.conf.local y añadimos la zona "terra.joanillo.com”, haciendo referencia a su fichero de configuración:
zone "terra.joanillo.com" { type master; file "/etc/bind/db.terra"; }; $ cp db.local db.terra ; BIND data file for local loopback interface ; $TTL 604800 @ IN SOA terra.joanillo.com. root.terra.joanillo.com. ( 1 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS terra.joanillo.com. @ IN A 192.168.1.130 @ IN MX 0 terra.joanillo.com. www IN A 192.168.1.130 saturn IN CNAME terra.joanillo.com. $ sudo /etc/init.d/bind9 restart $ host terra.joanillo.com terra.joanillo.com has address 192.168.1.130 terra.joanillo.com mail is handled by 0 terra.joanillo.com. $ host saturn.terra.joanillo.com saturn.terra.joanillo.com is an alias for terra.joanillo.com. terra.joanillo.com has address 192.168.1.130 terra.joanillo.com mail is handled by 0 terra.joanillo.com.
el fitxer resolv.conf ja està ben editat:
nameserver 127.0.0.1 -> diem quin és el servidor DNS
Anem a configurar el subdomini lluna.joanillo.com
Editamos named.conf.local y añadimos la zona "lluna.joanillo.com”, haciendo referencia a su fichero de configuración:
zone "lluna.joanillo.com" { type master; file "/etc/bind/db.lluna"; }; $ cp db.terra db.lluna ; BIND data file for local loopback interface ; $TTL 604800 @ IN SOA lluna.joanillo.com. root.lluna.joanillo.com. ( 1 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS lluna.joanillo.com. @ IN A 192.168.1.130 @ IN MX 0 lluna.joanillo.com. www IN A 192.168.1.130 $ sudo /etc/init.d/bind9 restart $ host lluna.joanillo.com lluna.joanillo.com has address 192.168.1.130
funciona, però de fet he fet un altre domini més que un subdomini. tant http://terra.joanillo.com com http://lluna.joanillo.com apunten a l'arrel de l'Apache
he de configurar l'Apache per tal que es redirigeixin a la carpeta correcte
http://terra.joanillo.com com -> /home/joan/terra/index.htm (que es vegi la paraula 'terra')
http://lluna.joanillo.com com -> /home/joan/lluna/index.htm (que es vegi la paraula 'lluna')
ja ho he aconseguit!
Explicació trobada de la Wiki del Sergi Tur:
http://acacha.dyndns.org/mediawiki/index.php/Subdominis_amb_Apache
El fitxer de configuració del Apache és el apache2.conf
# 3. Settings for virtual hosts, which allow Web requests to be sent to # different IP addresses or hostnames and have them handled by the # same Apache server process. Include /etc/apache2/sites-enabled/
En aquest directori hi ha d'haver enllaços simbòlics a la definició del virutalhost de Terra i Lluna.
$ cd /etc/apache2/sites-available
Si fem un ls -l, veurem els dominis i subdominis que es troben a la màquina. per defecte, només hi ha default. En aquest default tinc definit uns àlies /socrathos i /googling, que el que fan és que em funcioni http://localhost/googling i http://localhost/socrathos. És a dir, tinc un site-available, el default, que apunta a l'arrel de l'apache, i uns àlies que redirigeixen a través d'un directori El que jo vull fer ara són dos nous sites, que poden apuntar a una altra IP, domini o subdomini
$ sudo joe terra (creo el fitxer terra)
El contingut del fitxer és:
NameVirtualHost * <VirtualHost *> ServerAdmin webmaster@joanillo.com ServerName terra.joanillo.com DocumentRoot /home/joan/terra ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog /var/log/apache2/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/access.log combined ServerSignature On </VirtualHost>
on especifico el nom del subdomini (terra.joanillo.com) i la ruta que té el subdomini (/home/joan/terra)
Anem al directori:
$ cd /etc/apache2/sites-enabled
creem un enllaç simbòlic
$ sudo ln -s /etc/apache2/sites-available/terra 060-terra
El número 60 és el posició de càrrega del domini al inciar apache. Si anteriorment fem un $ ls -l observareu que els dominis van de 10 en 10. Això permet posteriorment si has d'encavir un procés entre el 10 i el 20, doncs pots utilitzar el 15. El funcionament és el mateix que els processos d'inici del sistema GNU/Linux
El mateix que he fet per a 'terra' ho faig per a 'lluna'
Ara només cal recargar la informació de Apache 2 fent:
$ sudo /etc/init.d/apache2 reload
Ja funciona!
http://terra.joanillo.com com terra http://lluna.joanillo.com com lluna