Posts Tagged ‘ip’

¿Dos IP en un mismo equipo o servidor?

Posted in Curso Adm. Servidores, Servidores on noviembre 22nd, 2008 by Itimag – 1 Comment

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 :) .

Instalando un servidor web con Apache + PHP5

Posted in Curso Adm. Servidores, Servidores on noviembre 9th, 2008 by Itimag – Be the first to comment

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-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.

Como instalar un server de DNS con BIND en linux

Posted in Curso Adm. Servidores, Servidores on octubre 31st, 2008 by Itimag – Be the first to comment

Continuando con el Curso de Administración de Servidores, hoy toca ver como instalar un servidor bind en  una distribución basada en Debian (Debian etch, Ubuntu, Kubuntu, etc.)

En pocas palabras, ¿Qué hace un servidor de DNS?

Es el encargado de convertir distintos nombres de dominio (Ej: www.itimag.net) en su ip. Por lo tanto, cada vez que accedemos a un servidor mediante un dominio de internet, pasamos por un servidor de dns que se encarga de decirnos cúal es la ip del equipo en la que se encuentra la web a la que estamos accediendo.

Pasemos a la acción. Para instalar bind, ejecutamos el siguiente comando en una consola o shell:

su
apt-get install bind9

Por razones de seguridad, vamos a ejecutar el BIND de tal forma que pueda correr en un directorio chroot. Lo hacemos de la siguiente forma:

/etc/init.d/bind9 stop

Editamos el fichero /etc/default/bind9 . Queremos que el demonio del bind se ejecute con el usuario bind sin privilegios, “chrooted” al directorio /var/lib/named. Para ello, buscamos donde pone <<OPTIONS=”-u bind”>> y lo substituimos por <<OPTIONS=”-u bind -t /var/lib/named”>>:

nano /etc/default/bind9
OPTIONS="-u bind -t /var/lib/named"
# Set RESOLVCONF=no to not run resolvconf
RESOLVCONF=yes

Ahora creamos los directorios necesarios en /var/lib:

mkdir -p /var/lib/named/etc
mkdir /var/lib/named/dev
mkdir -p /var/lib/named/var/cache/bind
mkdir -p /var/lib/named/var/run/bind/run

Y a continuación movemos el directorio de configuración desde /etc hasta /var/lib/named/etc:

mv /etc/bind /var/lib/named/etc

Creamos un link simbólico al nuevo directorio de configuración partiendo del antiguo directorio (para evitar problemas cuando bind se actualice):

ln -s /var/lib/named/etc/bind /etc/bind

Hacemos “null” y “random”, y cambiamos los permisos de los directorios:

mknod /var/lib/named/dev/null c 1 3
mknod /var/lib/named/dev/random c 1 8
chmod 666 /var/lib/named/dev/null /var/lib/named/dev/random
chown -R bind:bind /var/lib/named/var/*
chown -R bind:bind /var/lib/named/etc/bind

Ahora necesitamos modificar el fichero /etc/default/syslogd con la finalidad de registrar los mensajes que muestre bind el algún fichero de log. Debemos buscar la linea que pone <<SYSLOGD=”">> y lo substituimos por <<SYSLOGD=”-a /var/lib/named/dev/log”>>:

nano /etc/default/syslogd

El fichero resultante es el siguiente:

#
# Top configuration file for syslogd
#
 
#
# Full documentation of possible arguments are found in the manpage
# syslogd(8).
#
 
#
# For remote UDP logging use SYSLOGD="-r"
#
SYSLOGD="-a /var/lib/named/dev/log"

Reiniciamos el demonio del generador de logs:

/etc/init.d/sysklogd restart

Iniciamos o arrancamos BIND, y chequeamos /var/log/syslog para observar si se han producido errores:

/etc/init.d/bind9 start

Para ver si hay errores, hacemos:

less /var/log/syslog

Ahora pulsamos la z para recorrer el texto hasta el final y observamos si se ha producido algún error tras reiniciar:

Ejemplo:

Sep 22 13:13:01 ksxxxxx syslogd 1.4.1#18: restart.
 
Sep 22 13:13:01 ksxxxxx /USR/SBIN/CRON[11162]: (root) CMD (/usr/local/rtm/bin/rtm 12 &gt; /dev/null 2&gt; /dev/null)
 
Sep 22 13:13:15 ksxxxxx named[11217]: starting BIND 9.3.4-P1.1 -u bind -t /var/lib/named
 
Sep 22 13:13:15 ksxxxxx named[11217]: found 1 CPU, using 1 worker thread
 
Sep 22 13:13:15 ksxxxxx named[11217]: loading configuration from '/etc/bind/named.conf'
 
Sep 22 13:13:15 ksxxxxx named[11217]: no IPv6 interfaces found
 
Sep 22 13:13:15 ksxxxxx named[11217]: listening on IPv4 interface lo, 127.0.0.1#53
 
Sep 22 13:13:15 ksxxxxx named[11217]: listening on IPv4 interface eth0, 213.251.xxx.xxx#53
 
Sep 22 13:13:15 ksxxxxx named[11217]: command channel listening on 127.0.0.1#953
 
Sep 22 13:13:15 ksxxxxx named[11217]: zone 0.in-addr.arpa/IN: loaded serial 1
 
Sep 22 13:13:15 ksxxxxx named[11217]: zone 127.in-addr.arpa/IN: loaded serial 1
 
Sep 22 13:13:15 ksxxxxx named[11217]: zone 255.in-addr.arpa/IN: loaded serial 1
 
Sep 22 13:13:15 ksxxxxx named[11217]: zone localhost/IN: loaded serial 1
 
Sep 22 13:13:15 ksxxxxx named[11217]: running

En este ejemplo, no se observa ningún mensaje de error y, por lo tanto, la instalación ha sido un éxito.

Asignar una ip privada estática a nuestra tarjeta de red en Linux Debian

Posted in Curso Adm. Servidores, Servidores on octubre 21st, 2008 by Itimag – Be the first to comment

Ya hemos visto como instalar ssh (secure shell) pero aún nos falta por ver cómo asignar una ip privada a nuestra tarjeta de red del servidor con la finalidad de tener acceso desde cualquier equipo de nuestra casa sin la necesidad de tener la cpu que hace de servidor conectada a un teclado, monitor u otros periféricos.

Lo primero que debemos conocer es la red de nuestra casa. ¿Dispongo de router o dispongo de un simple módem conectado directamente a mi equipo? ¿O tengo el módem conectado a un router neutro con entrada WAN? ¿O tengo un equipo con dos tarjetas de red que por una de ellas recibe la conexión de internet y con la otra comparte esta misma con otro equipo?

En caso de disponer de un módem conectado directamente a nuestro servidor, no debemos realizar ninguno de los cambios aquí expuestos.

En caso de disponer de un router, de un módem conectado al router, o de un equipo conectado a otro equipo que dispone de internet, debemos hacernos las siguientes preguntas: ¿Cual es la puerta de enclace?¿Y la máscara de subred?

Lo podemos averiguar haciendo lo siguiente:

  • En Linux:

  1. Abrimos un terminal y ejecutamos el siguiente comando:
    sudo
    route

    Nos aparecerá algo como esto, donde observamos el gateway del Destination=”default”. Nos apuntamos la ip que observamos marcada. Esta es nuestra puerta de enlace o gateway.

  2. Ahora debemos conocer la máscara de subred y nuestra ip privada. Lo hacemos mediante el comando ifconfig:
    ifconfig

Nos quedamos con la información que aparece en la linea marcada. Concretamente, con las direcciones que pone en “inet addr:” y “Mask:”. La “inet addr” es la dirección privada asignada a nuestra tarjeta de red y el campo “Mask” es la mascará de subred de nuestra red.

  • En Windows:

Mira aquí

¿Y ahora qué?

Ahora que conocemos los datos necesarios, vamos a modificar el fichero /etc/network/interfaces. Para ello, escribimos lo siguiente en una consola de nuestro servidor y pulsamos intro:

sudo
nano /etc/network/interfaces

En caso de que aparezca la linea “auto eth0″, la eliminamos.

En cualquier caso, debemos añadir lo siguiente si es que nuestro servidor funciona con una tarjeta de red no wireless (ethX y no wlanX).

iface eth0 inet static
             address "La_ip_privada"
             netmask "la_mascara_de_subred"
             gateway "La_puerta_de_enlace_de_o_gateway"

Siendo “La_ip_privada”, “la_mascara_de_subred” y “La_puerta_de_enlace_o_gateway” los datos recogidos antes con una pequeña puntualización: la ip privada no es recomendable que sea la misma que la que nos aparece. Esto es porque nuestro router nos asigna una ip privada con los últimos 3 dígitos lo más bajo que puede(a partir de .xxx dígitos finales. Por ejemplo: .100) y esto puede provocar un conflicto de red si encendemos el servidor tras encender otro equipo de nuestra red ya que puede ser que el router le asigne nuestra ip privada (192.168.2.101) a otro equipo. Por lo tanto, en el caso de que tengamos la ip privada 192.168.2.101, no es recomendable ponernos los últimos dígitos como 101 sino que nos pondremos 120 de tal forma que nuestra ip privada sería 192.168.2.115 y evitamos posibles conflictos de red.

En caso de que nuestra tarjeta de red sea wireless, debemos substituir “iface eth0 inet static” por “iface wlan0 inet static”

Debemos acordarnos de la ip que asignemos ya que la utilizaremos para acceder por ssh.

A continuación os dejo una captura de como ha quedado el asunto en mi equipo:

Ahora, debemos guardar los cambios. Esto lo hacemos pulsado “ctrl + X” y a continuación se nos pedirá si deseamos guardar los cambios. Ponemos una “S” y pulsamos intro.

Para que los cambios surjan efecto, hacemos lo siguiente:

ifconfig eth0 down
ifconfig eth0 up

Volvemos a hacer un ifconfig y observamos como los cambios han surgido efecto. Si es así, nos dirigimos a otro equipo y accedemos al servidor por ssh. En caso de que funcione (debería) ya podemos quitar el teclado, monitor y otros periféricos de nuestro servidor y administrarlo todo de forma remota.

Si queremos poder acceder desde internet a nuestro servidor por ssh, simplemente debemos conocer nuestra ip pública (cuidado que esta normalmente es dinámica, cambia. Es la que nos da nuestro proveedor del servicio) y abrir los puertos en nuestro router. Para conocer nuestra ip pública, es suficiente con entrar en esta web. En cambio, para abrir puertos en nuestro router, una vez sepamos el modelo de éste, podemos acceder a esa misma web en la que hay muchos manuales en el lado izquierdo (donde pone “Routers Wireless” o “Routers Ethernet”).

De momento, para acceder a ssh desde internet, será suficiente con abrir el puerto 22 usando el protocolo TCP para la ip privada de nuestro servidor.

Esto es todo por hoy. Esper que sea de vuestro agrado. Un saludo.