sábado, 11 de octubre de 2008

Servidor Web con DynDNS e ip dinamica sobre Ubuntu

Un servidor WEB es el lugar donde se hospeda toda la información que queramos dar a conocer al mundo
por Internet, que es parte de tu pagina personal, un Blog o Bitácora, lo que tu imaginación se te ocurra, por
otro lado es bueno que tenga soporte PHP, MySQL.
Empecemos...
Actualice la base de aptitude (en Ubuntu es aconsejable usar aptitude en lugar de apt porque el primero resuelve mejor las dependencias).

$ sudo aptitude update

Hará un reconocimiento de los repositorios y actualizara la base de paquetes disponibles.
Ahora instalaremos los paquetes necesarios de la siguiente forma:

$ sudo aptitude install apache2 php5 mysql-server ddclient

Confirma con Y donde te pida para la instalación. Si sale alguna pantalla en azul (no es windows eh!) para configurar algún aspecto si es de llenado de datos haz caso omiso y no pongas nada, si es de escoger de un menú selecciona el mas adecuado, pero las pantallas que te pidan escribir no lo hagas solo darle ENTER.
En este momento si no salio ningún error tendrás ya instalado estos paquetes que son los necesarios para tu servidor WEB con soporte php y mysql.

-Creando una cuenta en DynDNS ...
Para crear una cuenta en DYNDNS entramos en nuestro navegador de preferencia (viva FireFox) y nos dirigimos a la siguiente URL http://www.dyndns.com/
Este servicio nos proporciona una dirección de Internet a lo que le llamamos dominios de forma gratuita, como ejemplo http://trixmontero.homelinux.net/ pero te preguntaras ¿esto que tiene de novedoso?
Simplemente que DynDNS hace que tu pc, configurado como webserver se conecte a dicha dirección y tu PC funcione como hosting eso quiere decir que te olvides de publicidad por todos lados, direcciones largas o que tengas que pagar hosting (aunque eso es relativo el costo de la conexión a Internet y la luz cuestan).
Bueno primero definiremos que es una dirección IP dinámica y una estática.
Una dirección IP es la dirección numérica de un ordenador en Internet. Cada dirección IP se asigna a un ordenador conectado a Internet y es única. Consiste en un número de 32 bits que suele representarse como cuatro octetos separados por un punto (150.214.90.66).
Ahora...
Una IP Dinámica es el que cambia cada vez que se conecta a Internet o que el servidor del servicio hace un reset al mismo, es el que mucha gente utiliza al tener una conexión dialup, adsl, etc.
Una IP Estática es lo contrario a la anterior es un numero de IP que siempre sera de su conexión y nunca cambiara por ninguna razón, al tener una IP estática tiene mucha ventaja pues siempre lo podrán identificar, generalmente tener un IP estática es costo extra.
Ahora si a crear la cuenta
Seleccionar la opción Account.
Después creas una nueva cuenta con la opción Create Account.

Y deberás llenar toda la información que te pide desde tu nombre de usuario con el que entraras siempre, tu correo electrónico y tu password (estos datos no los olvides) cuando lo hallas hecho y mientras que el nombre de usuario no lo halla registrado alguien mas, seguiremos al siguiente paso presionando Create Account.

Cuando salga este mensaje donde nos muestra el nombre de usuario y el email es que ya estas registrado pero todavía falta activar la cuenta tenemos que esperar un correo (obviamente el correo que registraste).
En tu correo te dan un link que te servirá para confirmar la activación de la cuenta en DynDNS al hacerlo te saldrá otra pantalla donde menciona que la activación ha sido realizada.
De nuevo nos vamos a la opción Account e ingresamos el USERNAME y PASSWORD de la cuenta que activaste.

Aquí es donde podrás dar de alta un dominio gratuito haciendo click en la opción My Servicies.

Después veras como puedes hacer que cada vez que inicie tu Linux se conecte y actualice tu dirección dinámica en DynDns. Si tu IP es estática no tendrás problema.
El nombre que debes poner Hostname es arbitrario siempre que no halla sido dado de alta por otro usuario.
En este momento felicidades has creado un dominio, si desearas otro dominio pues harías le misma secuencia claro que omitiendo introducir de nuevo tu username y password de tu cuenta solo si te lo pide de nuevo.

Configurando servidor WEB APACHE
Esta versión de apache viene mucho mas fácil y esta dividido para su mejor configuración. No tenemos que mover casi nada, toma atención de lo que debes solo modificar. En tu consola primero identificaremos en donde se encuentra los archivos de configuración de apache de la siguiente forma:

$ cd /etc/apache2

Y encontraremos algo como lo siguiente aunque puede ser similar. Antes que empecemos a configurar haremos un respaldo de los archivos que trabajaremos por posibles equivocaciones que tuviéramos al editar.

$ sudo cp apache2.conf apache2.conf.back
apache2.conf es el esencial en al configuración de apache sin embargo solo le modificaremos una sola opción para que nuestras paginas no tengan problemas con la codificación de caracteres solo hay que descomentar una linea de la siguiente manera:
$ sudo vi apache2.conf

En seguida veras el extenso texto de configuración que explicar cada una de sus partes tardaría mucho tiempo por si quieres saber mas visita http://httpd.apache.org/docs/2.0/es/

Ahora presiona /AddDefaultCharset y después ENTER (se realiza la búsqueda de la opción). Y quita el # del inicio de la linea (recuerda que para editar debes presionar primero la tecla INSERT), quedaría algo así:

AddDefaultCharset ISO-8859-1

Ya modificado presiona la tecla ESC para salir del modo edición y después escribe :w y después ENTER para guardar
los cambios y escribir :q y después ENTER para salir del editor VIM.
Ahora entramos a sites-available de la siguiente forma:

$ cd sites-available

Después editaremos el único archivo que encontramos en ese directorio llamado default

$ sudo vi default

NameVirtualHost *:80

<VirtualHost *:80>
ServerAdmin <b>tuemail@com</b>
DocumentRoot /var/www/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
# This directive allows us to have apache2's default start page
# in /apache2-default/, but still have / go to the right place
# Commented out for Ubuntu
RedirectMatch ^/$ /apache2-default/
</Directory>
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
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>

<VirtualHost *:80> # señalamos que hay un espacio para un sitio independiente
ServerName trixmontero.homelinux.net # Nombre del dominio que dimos de alta en la cuenta que se creo en DynDns
DocumentRoot /var/www/MyServer # el lugar donde sera el directorio base de dicho sitio en la PC(esta la pagina)
DirectoryIndex index.php index.html index.htm index.shtml # Archivos que debera buscar para iniciar la pagina principal.
</virtualhost>



En el anterior ejemplo se muestra como agregar el sitio al final, donde se hospedara los archivos pertenecientes a nuestro dominio o pagina WEB si deseamos, dar de alta otra dirección en DynDns y ocupando nuestro server pero con una pagina diferente, esto es posible ya que apache soporta multidominios es decir puedes tener infinidad de dominios o subdominios redireccionados a tu pc siempre y cuando tu PC y conexión soporten.
Solo tendrías que aumentar otro virtualhost y estará listo.

-Cambiando puerto de escucha del APACHE ...
El numero 80 es el puerto por default donde se pone un servidor WEB con apache pero si quieres redireccionarlo, en caso que tu ISP bloquee tu puerto 80 puedes cambiar el numero de puerto a un puerto alto como 8080, 8021 etc verifica cuales son los puertos http://es.wikipedia.org/wiki/Lista_de_n%C3%BAmeros_de_puerto y recomiendo escoger uno
que no veas en la lista, si quieres ver si esta bloqueado tu puerto 80 ve la pagina http://www.upseros.com/portscan.php ahí te dirá que es lo que tienes cerrado en tu conexión.
Si decidiste cambiar el puerto de escucha pues solo cambiarlo del 80 al nuevo puerto y tendrás que modificar en /etc/apache2 el archivo ports.conf

$ sudo vi /etc/apache2/ports.conf

donde en presionamos la tecla INSERT para editar.
Listen 80 # cambiar al puerto que se halla escogido y que este en tu VIRTUALHOST de default
después ESC para salir de edición y :w ENTER y :q ENTER
-Continuando ...
En este momento tendremos instalado y configurado nuestro apache solo nos falta iniciar el servicio.

$ sudo /etc/init.d/apache2 start

y deberá aparecer algo así:

• Forcing reload of web server (Apache2)... [ ok ]

Eso dirá que todo va bien hasta aquí, al menos no tienes problemas de sintaxis. Pero ya estará activo el servidor.
Para verificar que este funcionando tu Server solo entra con tu navegador a http://localhost si cambiaste el puerto de escucha a un puerto alto debes poner http://localhost:puerto
Te mostrara un texto donde dirá que tu Apache esta instalado.
-Configurando ddclient.conf
Ahora configuraremos ddclient que su función es actualizar la IP de nuestra conexión hacia nuestro dominio DynDns es decir si nuestra conexión a Internet tiene una IP Dinámica, no nos preocuparemos en como actualizar la IP en DynDns ya que ddclient se encarga de eso cada vez que reinicie Ubuntu.
Realizaremos la configuracion editando /etc/ddclient.conf
$sudo gedit /etc/ddclient.conf
Y ponemos nuestros datos segun el ejemplo a continuacion.
# Configuration file for ddclient generated by debconf##
/etc/ddclient.confpid=/var/run/ddclient.pid
protocol=dyndns2 # El protocolo
use=web, web=checkip.dyndns.org # Para obtener la IP actual
server=members.dyndns.org # El servidor para identificarse
login=usuario # El nombre de usuario
password=clave # La contraseña
trixmontero.homelinux.net #el dominio creado en dyndns
Configurado el fichero ya tenemos todo listo para funcionar. Sólo nos falta utilizar el ddclient para actualizar nuestra IP cada vez que ésta cambie. Se hace de la siguiente manera:

$ /usr/sbin/ddclient -file /etc/ddclient.conf -cache /home/nombre_usuario/.ddclient.cache
Donde nombre_usuario es el directorio de tu usuario en linux
y nos debería dar una salida de este estilo:

SUCCESS: updating trixmontero.homelinux.net: good: IP address set to 85.84.49.51

Redireccionamos los datos a un fichero .cache para que no mande información a los de dyndns si nuestra IP no ha sufrido cambios o eso he leído (no queremos "colapsar" su servidor y nos arriesgamos a un baneo temporal)
Claro, si tenemos que hacer esto manualmente cada vez que cambie nuestra IP, todo esto viene a ser un coñazo.
Así que editando el crontab (para dar ordenes y que se ejecuten periódicamente) automatizaremos la orden. Editamos el crontab:

$ crontab -e

y escribimos:

15 */2 * * * /usr/sbin/ddclient -file /etc/ddclient.conf -cache /home/nombre_usuario/.ddclient.cache -quiet

Cerramos el editor y la actualización se efectuará cada dos horas (y por lo visto cada vez que reiniciemos la máquina).
Ya tenemos un dominio personalizado y estático con una IP dinámica.
Espero que haya sido de ayuda.
Más info aquí:
http://bulma.net/body.phtml?nIdNoticia=834http://www.superiodico.net/modules/news/article.php?storyid=11 (De aquí he sacado casí toda la información)

4 comentarios:

Unknown dijo...

Hola estoy probando una conexion con una camara ip TV ip201 de Trendnet y quisiera saber como configurar mi router TEW 432BPR de Trendnet para que me actualice automaticamente la ip que me otorga el DynDns sin necesidad de tener la computadore conectada
Gracias,
Gabriel

Anónimo dijo...
Este comentario ha sido eliminado por un administrador del blog.
Anónimo dijo...
Este comentario ha sido eliminado por un administrador del blog.
Anónimo dijo...
Este comentario ha sido eliminado por un administrador del blog.