Spiga

‘ Curso Adm. Servidores ’ category archive

Configurar el servidor DNS junto a un dominio

Enero 03, 09 by Itimag

Hace unos días vimos como instalar un servidor de DNS en nuestro equipo o servidor y ahora toca ver como se configura para que éste sea capaz de resolver nuestros dominios.

Supongamos que tenemos el dominio itimag.net y queremos configurarlo en nuestro servidor de tal forma que este mismo resuelva el dominios y que además tenga las entradas DNS primaria y secundária que nosotros mismos personalizaremos (en mi caso ns1.itimag.net para la primaria y ns2.itimag.net para la secundária).

Cuando hablo de dns primarias y secundarias, me refiero a aquellas que podemos modificar desde el panel de administración de dominios que nos ofrece nuestro agente registrador. Por ejemplo, en OVH es este: dns

Como observamos en la imagen, los DNS asociados a itimag.net son ns1.itimag.net y ns2.itimag.net. Pues bien, vamos a ver como configurar esto en nuestro servidor con la finalidad de que en el whois del dominio, aparezca ns1.itimag.net y ns2.itimag.net en vez de la IP xxx.xxx.xxx.xxx.

Como se observa en la imagen, los dos DNS (ns1.itimag.net y ns2.itimag.net) apuntan a distintas IP. Ambas IP están configuradas en el mismo equipo. No es precisamente así como debería estar ya que en caso de que el servidor falle, fallarían los 2 nombres de dominio y, por consiguiente, nadie podrá acceder al dominio o dominios configurados con estos servidores DNS.

En caso de que tu servidor disponga de una única ip, también puedes seguir el proceso que aquí se explica.

Pasemos a la acción:

  1. Accedemos al servidor por ssh y dirigirnos al directorio /etc/bind/
  2. ssh user@xxx.xxx.xxx.xxx -p puerto
    cd /etc/bind
  3. Para ver todos los ficheros de este directorio utilizamos el comando ls:
  4. ls
  5. Editamos el fichero /etc/bind/named.conf.local
  6. nano /etc/bind/named.conf.local
  7. Añadimos las siguientes zonas al fichero:
  8. zone "ns1.itimag.net" {
    type master;
    file "/etc/bind/ns1.itimag.net";
    allow-transfer {87.98.xxx.xxx; }; // Tu segunda IP
    };
     
    zone "ns2.itimag.net" {
    type master;
    file "/etc/bind/ns2.itimag.net";
    };
     
    // La zona inversa
    zone "xxx.xxx.xxx.in-addr.arpa" {
    type master;
    file "/etc/bind/pri.xxx.xxx.xxx.in-addr.arpa";
    };

    Nota: Debes substituir el nombre de dominio (itimag.net) por el tuyo y en el allow transfer insertar la segunda ip de tu equipo (o la ip del DNS secundario externo en caso de no tener segunda ip).

    El nombre de la zona inversa viene determinado por nuestra ip de tal forma que la zona inversa para la ip 10.11.12.13 sería “12.11.10.in-addr.arpa”

    Guardamos el fichero y salimos, pulsando “ctrl + o” y “ctrol+x”.

  9. Ahora vamos crear los ficheros /etc/bind/ns1.itimag.net y /etc/bind/ns2.itimag.net :
  10. nano /etc/bind/ns1.itimag.net

    El fichero resultante debe ser algo como esto:

    $ttl 86400
     
    @ IN SOA ns1.itimag.net. root.localhost. (
     
    2008092401; serial-no
     
    28800; refresh, seconds
     
    7200; retry, seconds
     
    604800; expiry, seconds
     
    86400 ); minimum-TTL, seconds
     
    ;
     
    ns1.itimag.net.         IN NS ns1.itimag.net
     
    ns1.itimag.net.         IN A 213.251.xxx.xxx

    Nota: Debes substituir cada ns1.itimag.net por tu ns1.dominio.com. Debes substituir la línea que contiene el serial-no siguiendo la siguiente norma:

    Año  	   Mes     Día      ID
     
    2008       09      24       01; serial-no

    Los cuatro primeros dígitos corresponden al año. Los dos siguientes al mes. Los dos siguientes al día y los 2 restantes hacen referencia a un identificador que indica la versión del fichero (cada vez que modificamos el fichero, debemos incrementar en una unidad el ID). También debes substituir la IP 213.251.xxx.xxx con la ip de tu servidor.

    Creamos el segundo fichero:

    nano /etc/bind/ns2.itimag.net

    Contendrá lo siguiente:

    $ttl 86400
     
    @ IN SOA ns2.itimag.net. root.localhost. (
    2008092401; serial-no
    28800; refresh, seconds
    7200; retry, seconds
    604800; expiry, seconds
    86400 ); minimum-TTL, seconds
    ;
     
    ns2.itimag.net.         IN NS ns2.itimag.net
    ns2.itimag.net.         IN A 87.98.xxx.xxx

    Nota: Debemos de realizar los mismos cambios que en el fichero anterior. Modificamos el fichero /etc/resolv.conf para añadir nuestro dominio y las ip’s de nuestro servidor o servidores dns.

  11. Creamos el fichero /etc/bind/pri.xxx.xxx.xxx.in-addr.arpa para la zona inversa:
  12. nano /etc/bind/pri.xxx.xxx.xxx.in-addr.arpa

    Debe quedar algo como esto:

    $ttl 86400
     
    @ IN SOA mi_dominio.com. root.localhost. (
    2008071901; serial-no
    28800; refresh, seconds
    7200; retry, seconds
    604800; expiry, seconds
    86400 ); minimum-TTL, seconds
    ;
     
    NS ns1.mi_dominio.com.;
    NS ns.kimsufi.com.;
     
    xxx PTR mi_dominio.com.

    Nota: El xxx corresponde con los últimos tres dígitos (o menos) de tu ip. El serial-no corresponde con la fecha actual: en este caso año 2008, mes 07, día 19, identificador 01. Cada vez que modifiquemos el fichero debemos aumentar en una unidad el identificador.

Configuración del dominio:

  1. Añadimos el dominio a configurar insertando la siguiente linea:
  2. search mi_dominio.com
  3. Obsevemos que la ip de nuestro servidor se encuentra ya insertada en una linea como esta:
  4. nameserver tu_ip

    Ejemplo de configuración:

    search mi_dominio.com
    nameserver 127.0.0.1
    nameserver 213.251.xxx.xx
  5. Modificamos el fichero /etc/bind/named.conf.local y le añadimos la zona para nuestro dominio:
  6. zone "mi_dominio.com" {
    type master;
    file "/etc/bind/pri.mi_dominio.com";
    allow-transfer {213.186.33.199; };
    };
  7. Creamos el ficgero /etc/bind/pri.mi_dominio.com
  8. nano /etc/bind/pri.mi_dominio.com

    Debe quedar algo como esto:

    $ttl 86400
     
    @ IN SOA ns1.mi_dominio.com. root.localhost. (
    2008092201; serial-no
    28800; refresh, seconds
    7200; retry, seconds
    604800; expiry, seconds
    86400 ); minimum-TTL, seconds
    ;
     
    NS xxx.xxx.xxx.xxx ;
    NS ns.ns.kimsufi.com. ;
    MX 10 mail.mi_dominio.com.;
     
    mi_dominio.com. A xxx.xxx.xxx.xxx
    www A xxx.xxx.xxx.xxx
    ns1 A xxx.xxx.xxx.xxx
    mail A xxx.xxx.xxx.xxx
     
    mi_dominio.com. TXT "v=spf1 a mx ~all"
    mi_dominio.com. TXT "v=spf1 a -all"

    Nota: Debemos substituir las xxx.xxx.xxx.xxx por la ip donde va a apuntar al dominio

  9. Forzamos bind a actualizar las zonas:
  10. /etc/init.d/bind9 force-reload
  11. Ahora podemos observar si se han producido errores observando los logs del demonio ejecutando el siguiente comando:
  12. less /var/log/daemon.log

¿Dos IP en un mismo equipo o servidor?

Noviembre 22, 08 by Itimag

Seguimos con el curso de administración de servidores.

Este es un ejemplo práctico de como añadir una segunda ip a un servidor en una misma interfaz o tarjeta de red utilizando una ip privada (para que fuera de utilidad, debería ser pública). Esto es útil para poder asignar a nuestro servidor distintas direcciones ip, permitiéndonos de esta forma crear nuestros servidores de dns (ns1.ejemplo.com y ns2.ejemplo.com) en un mismo equipo sin que los analizadores de dns den error.

Esta acción tiene una desventaja muy grande: si falla nuestro equipo, no se resolverá el dominio/s ya que los dos servidores de nombres de dominio (o DNS) estarán caídos.

Si el servidor DNS y el servidor web que transmite nuestras páginas se encuentran en el mismo equipo, no hará falta que nos preocupemos de lo anterior ya que si se cae el servidor web, no hace falta que intente resolver el dominio ya que no resolverá por mucho que los servidores de dominio si que funcionen.

Tras esta explicación, pasemos a la acción

Veamos nuestra configuración actual. Para ello, escribimos lo siguiente en un el terminal:

/sbin/ifconfig

Se visualiza algo como esto:

itimag@server1:~$ /sbin/ifconfig
eth0      Link encap:Ethernet  HWaddr 00:E0:7D:DF:EA:07
          inet addr:192.168.2.222  Bcast:192.168.2.255  Mask:255
          inet6 addr: fe80::2e0:7dff:fedf:ea07/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:739 errors:0 dropped:0 overruns:0 frame:0
          TX packets:295 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:61160 (59.7 KiB)  TX bytes:41734 (40.7 KiB)
          Interrupt:11 Base address:0xc000
 
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:560 (560.0 b)  TX bytes:560 (560.0 b)

Supongamos que queremos añadir la IP AAA.BBB.CCC.DDD a nuestra interfaz de red eth0 (nuestra interfaz de internet por cable).

Para ello, editamos el fichero /etc/network/interfaces de la manera siguiente :

nano /etc/network/interfaces

Observamos lo siguiente:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
 
# The primary network interface
allow-hotplug eth0
iface eth0 inet static
             address xxx.xxx.xxx.xxx
             netmask 255.255.255.0
             gateway xxx.xxx.xxx.xxx

Al final del fichero, debemos añadir lo siguiente:

auto eth0:0
 
iface eth0:0 inet static
               address AAA.BBB.CCC.DDD
               netmask 255.255.255.0
               gateway xxx.xxx.xxx.xxx # La puerta de enlace

A continuación activamos la nueva interfaz que hemos definido:

ifup eth0:0

Verificamos la configuración :

/sbin/ifconfig

Nos aparecerá algo parecido a lo siguiente:

server1:/home/itimag# /sbin/ifconfig
 
eth0      Link encap:Ethernet  HWaddr 00:E0:7D:DF:EA:07
          inet addr:192.168.2.222  Bcast:192.168.2.255  Mask:255.255.255.0
          inet6 addr: fe80::2e0:7dff:fedf:ea07/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2033 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1055 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:178474 (174.2 KiB)  TX bytes:173779 (169.7 KiB)
          Interrupt:11 Base address:0xc000
 
eth0:0    Link encap:Ethernet  HWaddr 00:E0:7D:DF:EA:07
          inet addr:192.168.2.111  Bcast:192.168.2.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:11 Base address:0xc000
 
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:560 (560.0 b)  TX bytes:560 (560.0 b)

Ahora añadimos esta misma ip al fichero /etc/resolv.conf añadiendo la siguiente linea al final del fichero:

nameserver AAA.BBB.CCC.DDD

Próximamente más :) .

Instalar MySQL en el servidor Linux

Noviembre 17, 08 by Itimag

Para instalar MySQL, debemos abrir una nueva consola, hacer login como root y ejecutar el siguiente comando:

su
apt-get install mysql-server mysql-client libmysqlclient15-dev

Como nosotros queremos que MySQL escuche a todas las peticiones de internet y no únicamente las de localhost, tenemos que editar el fichero /etc/mysql/my.cnf y comentar la linea “bind-address = 127.0.0.1”:

nano /etc/mysql/my.cnf

El fichero resultante debe quedar así:

[...]
#bind-address           = 127.0.0.1
[...]

Ahora reiniciamos MySQL para que los cambios surjan efecto:

/etc/init.d/mysql restart

Ahora chequeamos que el servicio se encuentre en escucha. Para ello ejecutamos:

netstat -tap

Y debemos ver una linea como esta:

tcp       0      0 *:mysql                 *:*                     LISTEN      3281/mysqld

Con la finalidad de proteger mysql y que nadie pueda acceder sin ser autentificado , debemos asignar una contraseña al usuario root:

mysqladmin -u root password tu_contraseña
mysqladmin -h server1.mi_dominio.com -u root password tu_contraseña

Nota: tu_contraseña debe ser substituido por tu contraseña y server1.mi_dominio.com por el tuyo.

Instalando un servidor web con Apache + PHP5

Noviembre 09, 08 by Itimag

Continuando con el curso de administración de servidores, os voy a explicar como instalar un servidor web con apache + PHP5.

Instalamos apache:

apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert

Instalamos PHP5:

apt-get install libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-json php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

Durante la instalación nos aparecerá una pantalla en la que se nos pedirá:

¿Quiere continuar instalando libc-client sin soporte para Maildir?

Marcamos que si.

Una vez realizada la instalación editamos el fichero /etc/apache2/mods-available/dir.conf:

nano /etc/apache2/mods-available/dir.conf

y cambiamos la linea “DirectoryIndex”:

 
          DirectoryIndex index.html index.htm index.shtml index.cgi
          index.php index.php3 index.pl index.xhtml

Editamos el fichero /etc/apache2/ports.conf y añadimos la linea “Listen 443”:

nano /etc/apache2/ports.conf

El fichero resultante es:

Listen 80
Listen 443

Ahora habilitamos algunos módulos de apache (SSL, rewrite, suexec, i include) mediante los siguientes comandos:

a2enmod ssl
a2enmod rewrite
a2enmod suexec
a2enmod include

Finalmente, para que los cambios surjan efecto, recargamos la configuración de Apache:

/etc/init.d/apache2 force-reload

Ya tenemos nuestro servidor web en marcha. Ahora simplemente debemos abrir el puerto 80 en nuestro router y nuestro servidor web será accesible en internet escribiendo en el navegador nuestra ip pública.

Un saludo.