SlideShare a Scribd company logo
1 of 20
Download to read offline
Montando un servidor web casero: Debian + Apache
                     Bernux
ÍNDICE
Introducción ................................................................................................................................1
   ¿Que se necesita para montar un servidor web? .................................................................1
   Antes de comenzar. ...............................................................................................................3
Instalando y configurando servidor web.....................................................................................4
   Instalando Apache2................................................................................................................4
   Configurar Apache2................................................................................................................4
El dominio....................................................................................................................................6
   Obteniendo nuestro dominio...................................................................................................6
      Dominio gratuito con DynDns.............................................................................................6
      Dominio gratuito con No-ip.................................................................................................8
Otras configuraciones.................................................................................................................9
   Dirección IP estática...............................................................................................................9
   Configurando clientes DynDns y/o No-ip..............................................................................10
      Cliente DynDns (ddclient).................................................................................................11
      Cliente No-ip (noip2).........................................................................................................14
   Abrir y redireccionar puertos.................................................................................................17
Montando un servidor web casero: Debian + Apache

Introducción
En este tutorial veremos como montar un servidor web casero con Debian y Apache, lo que se pretende es que
al final del tutorial podamos tener un sitio web que pueda ser accesible desde cualquier parte del mundo y haber
visto algunas configuraciones básicas o comunes en Apache, todo esto sin gastar un solo centavo.


Este tutorial esta orientado a personas que no tienen idea de como montar un servidor web y que conocen poco
acerca de los conceptos relacionados a redes y servidores. Además, está basado en mis experiencias al
momento de aprender, así que siempre existirá documentación oficial que puede ayudarnos más.


Para este tutorial necesitaremos:


    •   Una PC o laptop con Debian que será el servidor.
    •   Una conexión a internet, de preferencia a través de un modem/router.
    •   Configurar algunas cuentas y dominios gratuitos (se verá más adelante).




¿Que se necesita para montar un servidor web?
Antes de comenzar de lleno con lo práctico veamos un poco de lo necesario para montar un servidor web.


Hosting: Se refiere al servicio de almacenamiento, es decir, el lugar donde va a estar alojado el contenido que
se mostrará a los visitantes. Actualmente hay muchas empresas que dan un servicio de hosting, esto quiere
decir que las empresas de este ramo rentan un pequeño espacio en sus servidores para poner contenidos web.
Pero cualquier computadora puede servir para crear un servidor web, así que en este caso nuestro "hosting"
será una computadora en nuestra casa.


Dominio: Un nombre de dominio es un nombre que se asocia a una computadora o conjunto de computadoras,
es decir, una red. Esto sirve para que los contenidos de un servidor o de una red puedan ser accesibles de
manera fácil, por ejemplo para acceder a Google simplemente escribimos en nuestro browser http://google.com,
que es el nombre de dominio de Google y no tenemos que escribir una dirección IP (http://74.125.45.100/) que
es más difícil de recordar y manipular.


En este tutorial usaremos un dominio gratuito que ofrecen servicios como DynDNS o No-ip, mas adelante
profundizaremos en el tema.


Servicio DNS: Para que un dominio pase de ser local a universal, es decir, que pueda ser reconocido por todos
los servidores en internet, se requiere un servicio de DNS. Si el hosting es por parte de una empresa,
generalmente ellos nos proporcionan las direcciones y nombres de DNS, y en nuestros dominios registrados
podremos cambiar las direcciones de DNS desde el panel de configuración de la empresa que registra el
dominio.


Software servidor: Es el software que servirá como servidor web, es decir, el software que manejará y
presentará las páginas en HTML y todo el contenido y peticiones que se puedan llevar a cabo por medio de
HTTTP. En este caso usaremos Apache.


Direcciones IP: Para un servidor web se requiere de manera básica, una IP pública que es la que proporciona la
conectividad a internet y una IP privada para el servidor, que será la dirección final a donde llegarán las
peticiones.


Algunos links que informan de manera más detallada los conceptos anteriores:

    •   http://es.wikipedia.org/wiki/Alojamiento_web

    •   http://es.wikipedia.org/wiki/Direcci%C3%B3n_IP

    •   http://es.wikipedia.org/wiki/Servidor_web

    •   http://www.dcc.uchile.cl/~jpiquer/Internet/DNS/node2.html
Antes de comenzar.
Primero que nada tendremos que ver como están nuestras conexiones físicas. En este caso será muy simple,
una computadora conectada a un modem/router el cual está conectado a la linea telefónica la cual nos provee
de internet.


El modem/router del tutorial tiene un servidor de DHCP de rango
192.168.0.11-192.168.0.254 con máscara 255.255.255.0, el cual sirve para asignarles dirección ip a los nuevas
computadoras que se conectan a el.


La dirección ip del modem/router es la 192.168.0.1


La computadora que servirá de servidor tendrá la dirección 192.168.0.10 con máscara 255.255.255.0.


Los DNS serán los del ISP, en este caso Telmex.


Y un diagrama sencillo es este:
Instalando y configurando servidor web

Instalando Apache2.
Lo primero que haremos es que localmente instalaremos y configuraremos Apache.


       $sudo aptitude install apache2


Y en caso de que lo que vayamos a poner en el sitio web utilice Php o una base de datos como Mysql o
Postgresql debemos instalar algunos paquetes más:


       libapache2-mod-auth-BASE
       php5
       php5-BASE


Donde "BASE" es el nombre del DBMS (Data Base Management System) como mysql o pgsql (Postgres) y en
general los módulos y paquetes que se vayan necesitando.


Todos los paquetes de apache los podemos ver así:


       $aptitude search apache2




Configurar Apache2.
Una vez que se tiene instalado el servidor web Apache, si tecleamos "localhost" sin las comillas en nuestro
browser accederemos al contenido del servidor, que se encuentra por defecto en la carpeta /var/www/.


La primera vez que accedamos a Apache aparecerá un mensaje "It works", indicándonos que quedó bien
instalado. No es muy práctico ni recomendable que esta ruta sea la que se va a usar, para esto la vamos a
cambiar, esto se logra editando el archivo /etc/apache2/sites-enabled/000-default


Una vez abierto se deben cambiar las siguientes líneas dentro de <VirtualHost>:


      DocumentRoot /Dir/de/apache
      <Directory /Dir/de/apache>


Donde "/Dir/de/apache" será el directorio que se abrirá por defecto al entrar a localhost, este puede ser
cualquier directorio en el sistema, como por ejemplo una carpeta llamada www/ dentro de nuestro /home.
Tipicamente un servidor web para un dominio quedaría asi:


      <VirtualHost *:80>
                ServerAdmin webmaster@localhost #Email del webmaster
                ServerName midominio.com          #O el dominio que se vaya a configurar


                DocumentRoot /Dir/de/apache       #Directorio con el contenido del servidor


                <Directory /Dir/de/apache/>
                       Options Indexes FollowSymLinks MultiViews
                       AllowOverride All
                       Order allow,deny
                       allow from all
                </Directory>
                LogLevel warn
                CustomLog /var/log/apache2/access.log combined
      </VirtualHost>


Reiniciamos el servicio de apache:


          $sudo /etc/init.d/apache2 restart


Ahora todo el contenido que queramos que aparezca en la web debemos colocarlo dentro de la carpeta
anteriormente establecida. Para ver si está funcionando, crearemos un archivo llamado "index.html" dentro de "/
Dir/de/apache" con el siguiente contenido:


      <html>
      <head>
      <title>Prueba Apache2</title>
      </head>
      <body>
      Hola!!. Esta es una prueba de apache2 que salió bien =D
      </body>
      </html>


Guardamos, cerramos y entramos a http://localhost desde el browser, si funciona veremos el contenido de la
página.


A partir de ahora somos libres de colocar el contenido que se necesite para que funcione como una aplicación
web, un foro, nuestro blog, etc.


Hasta este momento tenemos un servidor Apache2 instalado localmente, es decir, solo nosotros podemos verlo
tecleando http://localhost o http://127.0.0.1 en el browser, el siguiente paso es obtener un dominio.


                                                El dominio

Obteniendo nuestro dominio.
En esta parte obtendremos un dominio para que podamos ser vistos desde internet, es decir que cuando
alguien escriba "midominio.com" en su navegador pueda acceder a nuestra computadora y más en específico
al contenido gestionado por Apache.


Por desgracia, en este tutorial usaremos un dominio gratuito, es decir que no tenemos la libertad de escoger si
es .com o .mx etc., sino que se nos proporcionará una lista de dominios al estilo dyndns.org, homelinux.com
etc. y nosotros antepondremos el nombre que queramos, quedando el dominio asi:


midominio.homelinux.com ó midominio.dyndns.org


Esta es la desventaja de un dominio gratuito, ya que no se tiene la libertad de escoger un nombre "decente" o
más "serio", pero para conocer como es el proceso nos queda bien.


Si por otro lado, estuviéramos contratando un hosting y comprando y registrando un dominio, en este caso si
podríamos elegir midominio.com o midominio.com.mx siempre y cuando nadie lo haya ocupado antes.


Sitios como DynDns o No-ip se dedican a proveer servicios de DNS a "particulares" es decir, nosotros en este
caso, y aquí es donde obtendremos nuestro dominio y los servicios necesarios para montar nuestro servidor.


Antes hay que aclarar que no es necesario usar los dos servicios. He incluido las configuraciones para los dos
ya que DynDns y NoIp son los más usados en estas configuraciones, pero solo usaremos un servicio, el que
ustedes elijan.


Dominio gratuito con DynDns.
Primero iremos a http://www.dyndns.com y crearemos una cuenta gratuita, ya que este creada y activada
iremos a la sección My hosts:
Y dentro damos clic en "Add new host" y rellenaremos el formulario:
Hostname: Aquí debemos ingresar el nombre de dominio por ejemplo, crearemos "midominio" y en la lista de la
derecha seleccionamos "homelinux.com" quedando como midominio.homelinux.com.


Service type: Dejamos la selección por defecto (Host with IP address), que creará un host que resuelve una ip
dinámica.


IP address: Podemos dar click en el link que dice "Your current location's IP address is xxx.xxx.xxx.xxx"
para que el campo se rellene con la IP pública que tenemos actualmente.


Seguimos con el siguiente paso y nos pondrá el "carro de compras" y nos marcará la cantidad de 0, damos
siguiente y tendremos nuestro dominio activo.


Para verificar los dominios existentes y características podemos ir a la sección "My hosts" y editar las
preferencias.


Dominio gratuito con No-ip.
Entramos a http://www.no-ip.com/ nos registramos y nos logueamos, ya dentro crearemos, como en DynDns
un host.


Vamos a la sección "Add host" y llenamos el formulario. Veremos que es similar a DynDns:
    •      Debemos especificar el nombre del host, que vendrá siendo nuestro dominio.
    •      Seleccionar para este caso "DNS Host (A)" en Host Type.
Y básicamente es eso. Damos click en "Create host" y una vez añadido, tendremos la lista de nuestros hosts
que podremos usar como dominios para nuestro servidor.


Dominio en archivo Hosts (Opcional).
Una vez que creamos el dominio podemos agregarlo localmente a nuestro servidor, esto se logra editando el
archivo /etc/hosts y generalmente donde esté indicada la dirección 127.0.0.1 o 127.0.1.1 indicaremos los
nombres locales de la computadora.


Si es la primera vez que tocamos este archivo veremos una configuración similar:


127.0.1.1 usuario-desktop localhost


Solo debemos agregar al final de la linea nuestro dominio para que quede así:


127.0.1.1 usuario-desktop localhost midominio.homelinux.com otrosdominios.com


Guardamos, cerramos y si tecleamos en el browser http://midominio.homelinux.com veremos el mismo
contenido que cuando escribíamos http://localhost pero ¡OJO!, esto sigue siendo localmente, todavía no
podemos verlo desde internet.


                                      Otras configuraciones

Dirección IP estática
Es turno de poner una dirección IP estática (en caso de que nuestra IP sea asignada mediante DHCP) a
nuestro servidor. Esto es porque cuando configuremos los clientes de dyndns o no-ip y al abrir los puertos del
modem/router requerirá de preferencia, una misma dirección IP privada (más adelante se explican los detalles).


Para poner una ip estática editaremos el archivo /etc/network/interfaces y cambiaremos este contenido o
similar:


       #Interfaz eth0 (cableada)
       auto eth0
       iface eth0 inet dhcp


por este otro:


       #Interfaz eth0 (cableada)
       auto eth0
       iface eth0 inet static
address 192.168.0.10      #La ip del servidor web (que será estática)
      broadcast 192.168.0.255
      netmask 255.255.255.0
      gateway 192.168.0.1       #nuestro router
      nameserver 192.168.0.1 #En dns dejaremos nuestro router (porque el router ya tiene configurado como
      resolver nombres), pero estos se pueden cambiar si se tienen algunos como OpenDNS o los de nuestro
      ISP


Y a continuación reiniciamos los servicios:


         $sudo /etc/init.d/networking restart


NOTA: Hay que recordar que si las direcciones ip las genera un servidor DHCP, ya sea en una computadora,
un router etc. habrá que sacar la IP estática del servidor web del DHCP para evitar que otra computadora llegue
a tomar la ip que sera la del servidor.




Configurando clientes DynDns y/o No-ip.


En la mayoría de los hogares y con la mayoría de ISPs, una suscripción "casera" asigna una IP pública
dinámica cada determinado tiempo, es decir, que cada cierto tiempo se renueva nuestra IP que proporciona
conexión a internet y nunca es la misma, así que aquí surge un problema ya que, tenemos nuestro servidor,
nuestro dominio, si escribimos en un browser la IP pública, estaríamos viendo el contenido del servidor web,
pero el problema es que cada cierto tiempo esa dirección cambiaría y si el día de hoy tenemos una dirección, el
día de mañana será otra distinta, es decir, es como si nos estuviéramos mudando diario de casa y las
peticiones fueran los recibos de luz, agua, paquetes de entrega, correo, pizzas etc.


Para solucionar este problema configuramos un dominio en DynDns o No-ip, con esto ya podemos escribir
http://midominio.homelinux.org y acceder al servidor, pero el problema de la IP pública dinámica sigue, ya
que hasta este momento nuestro servicio DNS no sabe que IP tenemos. Para esto existe software cliente que
se instala y configura en el servidor con el objetivo de enviar información al servicio DNS cada determinado
tiempo con nuestra IP pública actual y de esta manera el servicio DNS actualiza la IP y la relaciona con el
dominio configurado, y con esto tenemos nuestro dominio accesible desde cualquier parte en cualquier
momento.
Cliente DynDns (ddclient).
El primer paso es instalar el paquete ddclient en nuestro servidor:


       $sudo aptitude install ddclient


Durante la instalación aparecerán varios campos a llenar:


Primero seleccionamos el servicio de DNS dinámico, en este caso www.dyndns.com
Ahora hay que introducir nuestros hosts o dominios creados previamente en la página de DynDns
(midominio.homelinux.com)




Después introduciremos el usuario y password de nuestra cuenta de DynDns (con la que nos logueamos en la
página).


En el último paso de la configuración nos pide la interfaz que usará el servicio de DynDns. Para este particular
caso dejaremos en blanco el campo y seguimos. Una vez que se instaló ddclient vamos a editar el archivo /etc/
ddclient.conf y donde dice:


        use=if, if=


lo cambiaremos por


        use=web, web=checkip.dyndns.com/, web-skip='IP Address'


Guardamos y cerramos el archivo. Esto lo hicimos para decir que la detección de la actualización de la ip
pública correrá a cargo de "checkip.dyndns.com".
En otros casos se podría usar "if" en vez de "web" e indicar una interfaz preferentemente wan, o la interfaz que
contenga la dirección ip pública, en este caso usamos “web” porque en nuestro servidor la interfaz eth0 es la
única que tenemos cerca y no controla la ip pública, sino la ip de la LAN.
Ahora editaremos el archivo /etc/default/ddclient y cambiamos run_daemon para que quede asi:


      run_daemon="true"


y opcionalmente podemos cambiar el tiempo de actualización (en segundos) en la línea:


     daemon_interval="300"


Reiniciamos el servicio ddclient:


     $sudo /etc/init.d/ddclient restart


Hasta este momento la dirección ip pública se actualiza automáticamente.


Usando herramienta de configuración de DynDns.
NOTA: En ocasiones, la configuración que da ddclient por defecto no funciona, para una mejor configuración
podemos usar la herramienta de actualización de DynDns, la cual genera un archivo de configuración básico y
funcional para nuestros dominios. Si la configuración que hace la instalación de ddclient no genera problemas
puede ignorarse esta sección.


Para acceder se puede ir al sitio https://www.dyndns.com/support/tools/clientconfig.html que se encuentra
en “Support/Tools/Update Client configurator” y seleccionaremos los dominios que queremos y también
seleccionaremos ddclient como formato de configuración, damos click en Generate y veremos un archivo de
configuración. Debemos sustituir nuestro actual /etc/ddclient.conf por el que nos presenta DynDns (no olvidar
escribir el password en vez de ##YOUR PASSWORD##).


El archivo es similar a este:


      ## ddclient configuration file
      daemon=600
      # check every 600 seconds
      syslog=yes
      # log update msgs to syslog
      mail-failure=mimail@deregistro.com # Mail failed updates to user
      pid=/var/run/ddclient.pid
      # record PID in file.
      ## Detect IP with our CheckIP server
      use=web, web=checkip.dyndns.com/, web-skip='IP Address'
      ## DynDNS username and password here
login=Miusuario
       password=##YOUR PASSWORD##
       ## Default options
       protocol=dyndns2
       server=members.dyndns.org
       ## Dynamic DNS hosts
       midominio.homelinux.com, midominio2.homelinux.com #Cambiar por nuestros dominios reales




El siguiente link contiene información importante acerca de los clientes de actualización:
http://www.dyndns.com/support/clients/




Cliente No-ip (noip2).
Instalaremos el paquete noip2:


       $sudo aptitude install noip2


La configuración durante la instalación será similar a ddclient, es decir, nos hará algunas preguntas, las cuales
son:


Nombre de usuario Noip (email y password con el que nos logueamos).




Frecuencia de actualización de la dirección ip (expresada en minutos).
Especificar los hosts o dominios creados en la página de Noip (separados por coma).




Especificar la interfaz encargada de la ip pública, en este caso la dejaremos en blanco.
Indicar si deseamos que se deshabilite la traducción NAT, diremos que NO.




Para cambiar alguna configuración habrá que escribir en consola:


       $sudo dpkg-reconfigure noip2
Abrir y redireccionar puertos.
El último paso de este tutorial es abrir y redireccionar puertos de nuestro modem/router.


Las aplicaciones y recursos en red funcionan bajo un puerto en específico por defecto, aunque pueden
cambiarse, cerrarse, abrirse etc.
Para efectos de este tutorial solo tenemos que saber que el puerto 80 es el que utiliza el protocolo HTTP.


Si estamos fuera de nuestra LAN, es decir, conectados a otra red con internet, la del vecino, en la escuela,
trabajo etc. y tecleamos en el browser http://midominio.homelinux.com no obtendremos respuesta, esto es
porque falta abrir y redireccionar el puerto 80 al servidor (192.168.0.10).


Sin abrir el puerto del modem/rouer, cuando alguien accesa a nuestro servidor desde internet la petición se
hace por el puerto 80, así que la petición viaja a través de internet hasta llegar a nuestro modem/router
(192.168.0.1) pero como el puerto 80 está cerrado entonces la petición muere en ese momento y no alcanza a
llegar a nuestro servidor.


Si el puerto estuviera abierto y direccionado a nuestro servidor la petición se realiza por el puerto 80, viaja a
través de internet, al llegar a nuestro modem/router ve el puerto 80 abierto y dice que para seguir la petición
debe ir al servidor (192.168.0.10) y entonces, al llegar al servidor este responde de forma adecuada y la petición
regresa a su lugar de origen con una respuesta satisfactoria.


La manera de abrir puertos de un modem/router o algún dispositivo de red varia de acuerdo a la marca/modelo
del mismo, pero de manera básica se puede accesar a través del browser, generalmente el modem/router debe
estar conectado físicamente a la computadora que lo accederá.


En el browser escribimos la dirección ip o nombre de host del router, para el caso del tutorial es la 192.168.0.1,
pero repito, depende mucho del modelo, otras posibles direcciones son:


10.0.0.1
192.168.1.1
192.168.254.1
192.168.254.254


Una vez dentro, la interfaz de navegación será diferente para cada modem, pero en general hay que buscar una
sección que hable de puertos, como "Port redirecting", "Port access", "Special applications", "Application and
gaming" etc.


Una vez que hayamos ubicado esto generalmente debemos indicar:
•   Número de puerto (ahora el 80).
    •   Protocolo al que pertenece (TCP, UDP o ambos).
    •   A donde redireccionarlo (192.168.0.10, nuestro servidor).


Puede que tengamos que reiniciar el router, pero una vez hecho, debe de verse nuestro servidor desde internet
escribiendo en el browser el nombre de dominio configurado ya sea en DynDns o Noip.


Aquí algunos enlaces que explican lo que son los puertos y para que sirven:
http://www.iana.org/assignments/port-numbers
http://es.wikipedia.org/wiki/Puerto_de_red
http://es.kioskea.net/contents/internet/port.php3




Hasta aquí este tutorial. Configuraciones existen muchas y todo depende del caso, además, hay que decir que
en este tutorial no se abarca nada de la seguridad, esto es muy importante y lo iremos viendo en tutoriales
posteriores.

More Related Content

What's hot

F5 ASM v12 DDoS best practices
F5 ASM v12 DDoS best practices F5 ASM v12 DDoS best practices
F5 ASM v12 DDoS best practices Lior Rotkovitch
 
Privilege escalation from 1 to 0 Workshop
Privilege escalation from 1 to 0 Workshop Privilege escalation from 1 to 0 Workshop
Privilege escalation from 1 to 0 Workshop Hossam .M Hamed
 
Exploitation techniques and fuzzing
Exploitation techniques and fuzzingExploitation techniques and fuzzing
Exploitation techniques and fuzzingG Prachi
 
Understanding nas (network attached storage)
Understanding nas (network attached storage)Understanding nas (network attached storage)
Understanding nas (network attached storage)sagaroceanic11
 
dachnug49 - panagenda Workshop - 100 new things in Notes, Nomad Web & MarvelC...
dachnug49 - panagenda Workshop - 100 new things in Notes, Nomad Web & MarvelC...dachnug49 - panagenda Workshop - 100 new things in Notes, Nomad Web & MarvelC...
dachnug49 - panagenda Workshop - 100 new things in Notes, Nomad Web & MarvelC...Christoph Adler
 
The Ultimate Administrator’s Guide to HCL Nomad Web
The Ultimate Administrator’s Guide to HCL Nomad WebThe Ultimate Administrator’s Guide to HCL Nomad Web
The Ultimate Administrator’s Guide to HCL Nomad Webpanagenda
 
Proxy servers
Proxy serversProxy servers
Proxy serversKumar
 
How to prevent ssh-tunneling using Palo Alto Networks NGFW
How to prevent ssh-tunneling using Palo Alto Networks NGFWHow to prevent ssh-tunneling using Palo Alto Networks NGFW
How to prevent ssh-tunneling using Palo Alto Networks NGFWYudi Arijanto
 
WebRTC Real time media P2P, Server, Infrastructure, and Platform
WebRTC Real time media P2P, Server, Infrastructure, and PlatformWebRTC Real time media P2P, Server, Infrastructure, and Platform
WebRTC Real time media P2P, Server, Infrastructure, and PlatformRyan Jespersen
 
Integración LDAP + SAMBA
Integración LDAP + SAMBAIntegración LDAP + SAMBA
Integración LDAP + SAMBAcyberleon95
 
Centos 6.5 Servidor Básico
Centos 6.5 Servidor BásicoCentos 6.5 Servidor Básico
Centos 6.5 Servidor Básicocyberleon95
 
MES102 - Verse on Premises 2.0 Best Practices
MES102 - Verse on Premises 2.0 Best PracticesMES102 - Verse on Premises 2.0 Best Practices
MES102 - Verse on Premises 2.0 Best PracticesDylan Redfield
 
Unidad 4 - Software antimalware
Unidad 4 - Software antimalwareUnidad 4 - Software antimalware
Unidad 4 - Software antimalwarevverdu
 
HCL Sametime 12.0 on Docker - Step-By-Step.pdf
HCL Sametime 12.0 on Docker - Step-By-Step.pdf HCL Sametime 12.0 on Docker - Step-By-Step.pdf
HCL Sametime 12.0 on Docker - Step-By-Step.pdf Ales Lichtenberg
 

What's hot (20)

Linux06 nfs
Linux06 nfsLinux06 nfs
Linux06 nfs
 
F5 ASM v12 DDoS best practices
F5 ASM v12 DDoS best practices F5 ASM v12 DDoS best practices
F5 ASM v12 DDoS best practices
 
Privilege escalation from 1 to 0 Workshop
Privilege escalation from 1 to 0 Workshop Privilege escalation from 1 to 0 Workshop
Privilege escalation from 1 to 0 Workshop
 
Exploitation techniques and fuzzing
Exploitation techniques and fuzzingExploitation techniques and fuzzing
Exploitation techniques and fuzzing
 
Apache web service
Apache web serviceApache web service
Apache web service
 
Port forwarding
Port forwardingPort forwarding
Port forwarding
 
Understanding nas (network attached storage)
Understanding nas (network attached storage)Understanding nas (network attached storage)
Understanding nas (network attached storage)
 
dachnug49 - panagenda Workshop - 100 new things in Notes, Nomad Web & MarvelC...
dachnug49 - panagenda Workshop - 100 new things in Notes, Nomad Web & MarvelC...dachnug49 - panagenda Workshop - 100 new things in Notes, Nomad Web & MarvelC...
dachnug49 - panagenda Workshop - 100 new things in Notes, Nomad Web & MarvelC...
 
The Ultimate Administrator’s Guide to HCL Nomad Web
The Ultimate Administrator’s Guide to HCL Nomad WebThe Ultimate Administrator’s Guide to HCL Nomad Web
The Ultimate Administrator’s Guide to HCL Nomad Web
 
Proxy servers
Proxy serversProxy servers
Proxy servers
 
How to prevent ssh-tunneling using Palo Alto Networks NGFW
How to prevent ssh-tunneling using Palo Alto Networks NGFWHow to prevent ssh-tunneling using Palo Alto Networks NGFW
How to prevent ssh-tunneling using Palo Alto Networks NGFW
 
WebRTC Real time media P2P, Server, Infrastructure, and Platform
WebRTC Real time media P2P, Server, Infrastructure, and PlatformWebRTC Real time media P2P, Server, Infrastructure, and Platform
WebRTC Real time media P2P, Server, Infrastructure, and Platform
 
Integración LDAP + SAMBA
Integración LDAP + SAMBAIntegración LDAP + SAMBA
Integración LDAP + SAMBA
 
Window server editions
Window server editionsWindow server editions
Window server editions
 
Centos 6.5 Servidor Básico
Centos 6.5 Servidor BásicoCentos 6.5 Servidor Básico
Centos 6.5 Servidor Básico
 
MES102 - Verse on Premises 2.0 Best Practices
MES102 - Verse on Premises 2.0 Best PracticesMES102 - Verse on Premises 2.0 Best Practices
MES102 - Verse on Premises 2.0 Best Practices
 
Information Security Engineering
Information Security EngineeringInformation Security Engineering
Information Security Engineering
 
DAS RAID NAS SAN
DAS RAID NAS SANDAS RAID NAS SAN
DAS RAID NAS SAN
 
Unidad 4 - Software antimalware
Unidad 4 - Software antimalwareUnidad 4 - Software antimalware
Unidad 4 - Software antimalware
 
HCL Sametime 12.0 on Docker - Step-By-Step.pdf
HCL Sametime 12.0 on Docker - Step-By-Step.pdf HCL Sametime 12.0 on Docker - Step-By-Step.pdf
HCL Sametime 12.0 on Docker - Step-By-Step.pdf
 

Viewers also liked

filosofos mas influyentes
filosofos mas influyentesfilosofos mas influyentes
filosofos mas influyentesstefysc
 
La guerra de la triple alianza
La guerra de la triple alianzaLa guerra de la triple alianza
La guerra de la triple alianzaMAURICIO MAIRENA
 
Yo, mi region, mi cultura.
Yo, mi region, mi cultura.Yo, mi region, mi cultura.
Yo, mi region, mi cultura.Zulamys Ureche
 
GeschichtsApp Seminar Bundesarchiv
GeschichtsApp Seminar BundesarchivGeschichtsApp Seminar Bundesarchiv
GeschichtsApp Seminar BundesarchivDaniel Bernsen
 
Manuscrito cuanti
Manuscrito cuantiManuscrito cuanti
Manuscrito cuantiLicentiare
 
AnteproyectoredeRsociales
AnteproyectoredeRsocialesAnteproyectoredeRsociales
AnteproyectoredeRsocialesromerojulia
 
Regionale dienstbesprechung einführung teillehrplan geschichte 2015
Regionale dienstbesprechung einführung teillehrplan geschichte 2015Regionale dienstbesprechung einführung teillehrplan geschichte 2015
Regionale dienstbesprechung einführung teillehrplan geschichte 2015Daniel Bernsen
 
Web2.0 Grundlagen
Web2.0 GrundlagenWeb2.0 Grundlagen
Web2.0 GrundlagenSaskia B.
 
www.schreibman.de
www.schreibman.dewww.schreibman.de
www.schreibman.deguest186fb1
 
1Teil der PowerPointPräsentation über R.C.Wüm
1Teil der PowerPointPräsentation über R.C.Wüm1Teil der PowerPointPräsentation über R.C.Wüm
1Teil der PowerPointPräsentation über R.C.Wümguestaaeca1
 
Blogger diseno y_configuracion
Blogger diseno y_configuracionBlogger diseno y_configuracion
Blogger diseno y_configuracionramonrivelli
 
BWL - Kolloquiums Präsentation
BWL - Kolloquiums PräsentationBWL - Kolloquiums Präsentation
BWL - Kolloquiums PräsentationDennnis Seehafer
 

Viewers also liked (20)

filosofos mas influyentes
filosofos mas influyentesfilosofos mas influyentes
filosofos mas influyentes
 
La guerra de la triple alianza
La guerra de la triple alianzaLa guerra de la triple alianza
La guerra de la triple alianza
 
Yo, mi region, mi cultura.
Yo, mi region, mi cultura.Yo, mi region, mi cultura.
Yo, mi region, mi cultura.
 
Libro digital vp2004 2009
Libro digital vp2004 2009Libro digital vp2004 2009
Libro digital vp2004 2009
 
GeschichtsApp Seminar Bundesarchiv
GeschichtsApp Seminar BundesarchivGeschichtsApp Seminar Bundesarchiv
GeschichtsApp Seminar Bundesarchiv
 
Manuscrito cuanti
Manuscrito cuantiManuscrito cuanti
Manuscrito cuanti
 
AnteproyectoredeRsociales
AnteproyectoredeRsocialesAnteproyectoredeRsociales
AnteproyectoredeRsociales
 
Trabajo practico n4
Trabajo practico n4Trabajo practico n4
Trabajo practico n4
 
Regionale dienstbesprechung einführung teillehrplan geschichte 2015
Regionale dienstbesprechung einführung teillehrplan geschichte 2015Regionale dienstbesprechung einführung teillehrplan geschichte 2015
Regionale dienstbesprechung einführung teillehrplan geschichte 2015
 
219162s (1)
219162s (1)219162s (1)
219162s (1)
 
las tic
las ticlas tic
las tic
 
Web2.0 Grundlagen
Web2.0 GrundlagenWeb2.0 Grundlagen
Web2.0 Grundlagen
 
www.schreibman.de
www.schreibman.dewww.schreibman.de
www.schreibman.de
 
Presentación1
Presentación1Presentación1
Presentación1
 
1Teil der PowerPointPräsentation über R.C.Wüm
1Teil der PowerPointPräsentation über R.C.Wüm1Teil der PowerPointPräsentation über R.C.Wüm
1Teil der PowerPointPräsentation über R.C.Wüm
 
Blogger diseno y_configuracion
Blogger diseno y_configuracionBlogger diseno y_configuracion
Blogger diseno y_configuracion
 
Ost 1 00322 92
Ost 1 00322 92Ost 1 00322 92
Ost 1 00322 92
 
BWL - Kolloquiums Präsentation
BWL - Kolloquiums PräsentationBWL - Kolloquiums Präsentation
BWL - Kolloquiums Präsentation
 
Google docs
Google docsGoogle docs
Google docs
 
Fotos norma y suemy
Fotos norma y suemyFotos norma y suemy
Fotos norma y suemy
 

Similar to Servidorweb casero (20)

Gestion de nubes de servidores
Gestion de nubes de servidoresGestion de nubes de servidores
Gestion de nubes de servidores
 
Gestion de nubes d
Gestion de nubes dGestion de nubes d
Gestion de nubes d
 
Apache
ApacheApache
Apache
 
Laboratorio Nº 9.1.pdf
Laboratorio Nº 9.1.pdfLaboratorio Nº 9.1.pdf
Laboratorio Nº 9.1.pdf
 
Servidor apache
Servidor apacheServidor apache
Servidor apache
 
Red t3 practica1_apachecms
Red t3 practica1_apachecmsRed t3 practica1_apachecms
Red t3 practica1_apachecms
 
Apli t1 practicas_apache
Apli t1 practicas_apacheApli t1 practicas_apache
Apli t1 practicas_apache
 
5 servidor web
5 servidor web5 servidor web
5 servidor web
 
Servidorweb
ServidorwebServidorweb
Servidorweb
 
Servidor web
Servidor webServidor web
Servidor web
 
Servidorweb
ServidorwebServidorweb
Servidorweb
 
Daw02 tarea
Daw02 tareaDaw02 tarea
Daw02 tarea
 
Gestion de nubes de servidores
Gestion de nubes de servidoresGestion de nubes de servidores
Gestion de nubes de servidores
 
Servidores Web en GNU/Linux
Servidores Web en GNU/LinuxServidores Web en GNU/Linux
Servidores Web en GNU/Linux
 
Web centos
Web centosWeb centos
Web centos
 
Servidorweb
ServidorwebServidorweb
Servidorweb
 
Edison guaraca
Edison guaracaEdison guaraca
Edison guaraca
 
Info de redes
Info de redesInfo de redes
Info de redes
 
Info de redes
Info de redesInfo de redes
Info de redes
 
Vps local virtualbox
Vps local virtualboxVps local virtualbox
Vps local virtualbox
 

Servidorweb casero

  • 1. Montando un servidor web casero: Debian + Apache Bernux
  • 2. ÍNDICE Introducción ................................................................................................................................1 ¿Que se necesita para montar un servidor web? .................................................................1 Antes de comenzar. ...............................................................................................................3 Instalando y configurando servidor web.....................................................................................4 Instalando Apache2................................................................................................................4 Configurar Apache2................................................................................................................4 El dominio....................................................................................................................................6 Obteniendo nuestro dominio...................................................................................................6 Dominio gratuito con DynDns.............................................................................................6 Dominio gratuito con No-ip.................................................................................................8 Otras configuraciones.................................................................................................................9 Dirección IP estática...............................................................................................................9 Configurando clientes DynDns y/o No-ip..............................................................................10 Cliente DynDns (ddclient).................................................................................................11 Cliente No-ip (noip2).........................................................................................................14 Abrir y redireccionar puertos.................................................................................................17
  • 3. Montando un servidor web casero: Debian + Apache Introducción En este tutorial veremos como montar un servidor web casero con Debian y Apache, lo que se pretende es que al final del tutorial podamos tener un sitio web que pueda ser accesible desde cualquier parte del mundo y haber visto algunas configuraciones básicas o comunes en Apache, todo esto sin gastar un solo centavo. Este tutorial esta orientado a personas que no tienen idea de como montar un servidor web y que conocen poco acerca de los conceptos relacionados a redes y servidores. Además, está basado en mis experiencias al momento de aprender, así que siempre existirá documentación oficial que puede ayudarnos más. Para este tutorial necesitaremos: • Una PC o laptop con Debian que será el servidor. • Una conexión a internet, de preferencia a través de un modem/router. • Configurar algunas cuentas y dominios gratuitos (se verá más adelante). ¿Que se necesita para montar un servidor web? Antes de comenzar de lleno con lo práctico veamos un poco de lo necesario para montar un servidor web. Hosting: Se refiere al servicio de almacenamiento, es decir, el lugar donde va a estar alojado el contenido que se mostrará a los visitantes. Actualmente hay muchas empresas que dan un servicio de hosting, esto quiere decir que las empresas de este ramo rentan un pequeño espacio en sus servidores para poner contenidos web. Pero cualquier computadora puede servir para crear un servidor web, así que en este caso nuestro "hosting" será una computadora en nuestra casa. Dominio: Un nombre de dominio es un nombre que se asocia a una computadora o conjunto de computadoras, es decir, una red. Esto sirve para que los contenidos de un servidor o de una red puedan ser accesibles de manera fácil, por ejemplo para acceder a Google simplemente escribimos en nuestro browser http://google.com, que es el nombre de dominio de Google y no tenemos que escribir una dirección IP (http://74.125.45.100/) que es más difícil de recordar y manipular. En este tutorial usaremos un dominio gratuito que ofrecen servicios como DynDNS o No-ip, mas adelante profundizaremos en el tema. Servicio DNS: Para que un dominio pase de ser local a universal, es decir, que pueda ser reconocido por todos los servidores en internet, se requiere un servicio de DNS. Si el hosting es por parte de una empresa,
  • 4. generalmente ellos nos proporcionan las direcciones y nombres de DNS, y en nuestros dominios registrados podremos cambiar las direcciones de DNS desde el panel de configuración de la empresa que registra el dominio. Software servidor: Es el software que servirá como servidor web, es decir, el software que manejará y presentará las páginas en HTML y todo el contenido y peticiones que se puedan llevar a cabo por medio de HTTTP. En este caso usaremos Apache. Direcciones IP: Para un servidor web se requiere de manera básica, una IP pública que es la que proporciona la conectividad a internet y una IP privada para el servidor, que será la dirección final a donde llegarán las peticiones. Algunos links que informan de manera más detallada los conceptos anteriores: • http://es.wikipedia.org/wiki/Alojamiento_web • http://es.wikipedia.org/wiki/Direcci%C3%B3n_IP • http://es.wikipedia.org/wiki/Servidor_web • http://www.dcc.uchile.cl/~jpiquer/Internet/DNS/node2.html
  • 5. Antes de comenzar. Primero que nada tendremos que ver como están nuestras conexiones físicas. En este caso será muy simple, una computadora conectada a un modem/router el cual está conectado a la linea telefónica la cual nos provee de internet. El modem/router del tutorial tiene un servidor de DHCP de rango 192.168.0.11-192.168.0.254 con máscara 255.255.255.0, el cual sirve para asignarles dirección ip a los nuevas computadoras que se conectan a el. La dirección ip del modem/router es la 192.168.0.1 La computadora que servirá de servidor tendrá la dirección 192.168.0.10 con máscara 255.255.255.0. Los DNS serán los del ISP, en este caso Telmex. Y un diagrama sencillo es este:
  • 6. Instalando y configurando servidor web Instalando Apache2. Lo primero que haremos es que localmente instalaremos y configuraremos Apache. $sudo aptitude install apache2 Y en caso de que lo que vayamos a poner en el sitio web utilice Php o una base de datos como Mysql o Postgresql debemos instalar algunos paquetes más: libapache2-mod-auth-BASE php5 php5-BASE Donde "BASE" es el nombre del DBMS (Data Base Management System) como mysql o pgsql (Postgres) y en general los módulos y paquetes que se vayan necesitando. Todos los paquetes de apache los podemos ver así: $aptitude search apache2 Configurar Apache2. Una vez que se tiene instalado el servidor web Apache, si tecleamos "localhost" sin las comillas en nuestro browser accederemos al contenido del servidor, que se encuentra por defecto en la carpeta /var/www/. La primera vez que accedamos a Apache aparecerá un mensaje "It works", indicándonos que quedó bien instalado. No es muy práctico ni recomendable que esta ruta sea la que se va a usar, para esto la vamos a cambiar, esto se logra editando el archivo /etc/apache2/sites-enabled/000-default Una vez abierto se deben cambiar las siguientes líneas dentro de <VirtualHost>: DocumentRoot /Dir/de/apache <Directory /Dir/de/apache> Donde "/Dir/de/apache" será el directorio que se abrirá por defecto al entrar a localhost, este puede ser cualquier directorio en el sistema, como por ejemplo una carpeta llamada www/ dentro de nuestro /home.
  • 7. Tipicamente un servidor web para un dominio quedaría asi: <VirtualHost *:80> ServerAdmin webmaster@localhost #Email del webmaster ServerName midominio.com #O el dominio que se vaya a configurar DocumentRoot /Dir/de/apache #Directorio con el contenido del servidor <Directory /Dir/de/apache/> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> LogLevel warn CustomLog /var/log/apache2/access.log combined </VirtualHost> Reiniciamos el servicio de apache: $sudo /etc/init.d/apache2 restart Ahora todo el contenido que queramos que aparezca en la web debemos colocarlo dentro de la carpeta anteriormente establecida. Para ver si está funcionando, crearemos un archivo llamado "index.html" dentro de "/ Dir/de/apache" con el siguiente contenido: <html> <head> <title>Prueba Apache2</title> </head> <body> Hola!!. Esta es una prueba de apache2 que salió bien =D </body> </html> Guardamos, cerramos y entramos a http://localhost desde el browser, si funciona veremos el contenido de la página. A partir de ahora somos libres de colocar el contenido que se necesite para que funcione como una aplicación
  • 8. web, un foro, nuestro blog, etc. Hasta este momento tenemos un servidor Apache2 instalado localmente, es decir, solo nosotros podemos verlo tecleando http://localhost o http://127.0.0.1 en el browser, el siguiente paso es obtener un dominio. El dominio Obteniendo nuestro dominio. En esta parte obtendremos un dominio para que podamos ser vistos desde internet, es decir que cuando alguien escriba "midominio.com" en su navegador pueda acceder a nuestra computadora y más en específico al contenido gestionado por Apache. Por desgracia, en este tutorial usaremos un dominio gratuito, es decir que no tenemos la libertad de escoger si es .com o .mx etc., sino que se nos proporcionará una lista de dominios al estilo dyndns.org, homelinux.com etc. y nosotros antepondremos el nombre que queramos, quedando el dominio asi: midominio.homelinux.com ó midominio.dyndns.org Esta es la desventaja de un dominio gratuito, ya que no se tiene la libertad de escoger un nombre "decente" o más "serio", pero para conocer como es el proceso nos queda bien. Si por otro lado, estuviéramos contratando un hosting y comprando y registrando un dominio, en este caso si podríamos elegir midominio.com o midominio.com.mx siempre y cuando nadie lo haya ocupado antes. Sitios como DynDns o No-ip se dedican a proveer servicios de DNS a "particulares" es decir, nosotros en este caso, y aquí es donde obtendremos nuestro dominio y los servicios necesarios para montar nuestro servidor. Antes hay que aclarar que no es necesario usar los dos servicios. He incluido las configuraciones para los dos ya que DynDns y NoIp son los más usados en estas configuraciones, pero solo usaremos un servicio, el que ustedes elijan. Dominio gratuito con DynDns. Primero iremos a http://www.dyndns.com y crearemos una cuenta gratuita, ya que este creada y activada iremos a la sección My hosts:
  • 9. Y dentro damos clic en "Add new host" y rellenaremos el formulario:
  • 10. Hostname: Aquí debemos ingresar el nombre de dominio por ejemplo, crearemos "midominio" y en la lista de la derecha seleccionamos "homelinux.com" quedando como midominio.homelinux.com. Service type: Dejamos la selección por defecto (Host with IP address), que creará un host que resuelve una ip dinámica. IP address: Podemos dar click en el link que dice "Your current location's IP address is xxx.xxx.xxx.xxx" para que el campo se rellene con la IP pública que tenemos actualmente. Seguimos con el siguiente paso y nos pondrá el "carro de compras" y nos marcará la cantidad de 0, damos siguiente y tendremos nuestro dominio activo. Para verificar los dominios existentes y características podemos ir a la sección "My hosts" y editar las preferencias. Dominio gratuito con No-ip. Entramos a http://www.no-ip.com/ nos registramos y nos logueamos, ya dentro crearemos, como en DynDns un host. Vamos a la sección "Add host" y llenamos el formulario. Veremos que es similar a DynDns: • Debemos especificar el nombre del host, que vendrá siendo nuestro dominio. • Seleccionar para este caso "DNS Host (A)" en Host Type.
  • 11. Y básicamente es eso. Damos click en "Create host" y una vez añadido, tendremos la lista de nuestros hosts que podremos usar como dominios para nuestro servidor. Dominio en archivo Hosts (Opcional). Una vez que creamos el dominio podemos agregarlo localmente a nuestro servidor, esto se logra editando el archivo /etc/hosts y generalmente donde esté indicada la dirección 127.0.0.1 o 127.0.1.1 indicaremos los nombres locales de la computadora. Si es la primera vez que tocamos este archivo veremos una configuración similar: 127.0.1.1 usuario-desktop localhost Solo debemos agregar al final de la linea nuestro dominio para que quede así: 127.0.1.1 usuario-desktop localhost midominio.homelinux.com otrosdominios.com Guardamos, cerramos y si tecleamos en el browser http://midominio.homelinux.com veremos el mismo contenido que cuando escribíamos http://localhost pero ¡OJO!, esto sigue siendo localmente, todavía no podemos verlo desde internet. Otras configuraciones Dirección IP estática Es turno de poner una dirección IP estática (en caso de que nuestra IP sea asignada mediante DHCP) a nuestro servidor. Esto es porque cuando configuremos los clientes de dyndns o no-ip y al abrir los puertos del modem/router requerirá de preferencia, una misma dirección IP privada (más adelante se explican los detalles). Para poner una ip estática editaremos el archivo /etc/network/interfaces y cambiaremos este contenido o similar: #Interfaz eth0 (cableada) auto eth0 iface eth0 inet dhcp por este otro: #Interfaz eth0 (cableada) auto eth0 iface eth0 inet static
  • 12. address 192.168.0.10 #La ip del servidor web (que será estática) broadcast 192.168.0.255 netmask 255.255.255.0 gateway 192.168.0.1 #nuestro router nameserver 192.168.0.1 #En dns dejaremos nuestro router (porque el router ya tiene configurado como resolver nombres), pero estos se pueden cambiar si se tienen algunos como OpenDNS o los de nuestro ISP Y a continuación reiniciamos los servicios: $sudo /etc/init.d/networking restart NOTA: Hay que recordar que si las direcciones ip las genera un servidor DHCP, ya sea en una computadora, un router etc. habrá que sacar la IP estática del servidor web del DHCP para evitar que otra computadora llegue a tomar la ip que sera la del servidor. Configurando clientes DynDns y/o No-ip. En la mayoría de los hogares y con la mayoría de ISPs, una suscripción "casera" asigna una IP pública dinámica cada determinado tiempo, es decir, que cada cierto tiempo se renueva nuestra IP que proporciona conexión a internet y nunca es la misma, así que aquí surge un problema ya que, tenemos nuestro servidor, nuestro dominio, si escribimos en un browser la IP pública, estaríamos viendo el contenido del servidor web, pero el problema es que cada cierto tiempo esa dirección cambiaría y si el día de hoy tenemos una dirección, el día de mañana será otra distinta, es decir, es como si nos estuviéramos mudando diario de casa y las peticiones fueran los recibos de luz, agua, paquetes de entrega, correo, pizzas etc. Para solucionar este problema configuramos un dominio en DynDns o No-ip, con esto ya podemos escribir http://midominio.homelinux.org y acceder al servidor, pero el problema de la IP pública dinámica sigue, ya que hasta este momento nuestro servicio DNS no sabe que IP tenemos. Para esto existe software cliente que se instala y configura en el servidor con el objetivo de enviar información al servicio DNS cada determinado tiempo con nuestra IP pública actual y de esta manera el servicio DNS actualiza la IP y la relaciona con el dominio configurado, y con esto tenemos nuestro dominio accesible desde cualquier parte en cualquier momento.
  • 13. Cliente DynDns (ddclient). El primer paso es instalar el paquete ddclient en nuestro servidor: $sudo aptitude install ddclient Durante la instalación aparecerán varios campos a llenar: Primero seleccionamos el servicio de DNS dinámico, en este caso www.dyndns.com
  • 14. Ahora hay que introducir nuestros hosts o dominios creados previamente en la página de DynDns (midominio.homelinux.com) Después introduciremos el usuario y password de nuestra cuenta de DynDns (con la que nos logueamos en la página). En el último paso de la configuración nos pide la interfaz que usará el servicio de DynDns. Para este particular caso dejaremos en blanco el campo y seguimos. Una vez que se instaló ddclient vamos a editar el archivo /etc/ ddclient.conf y donde dice: use=if, if= lo cambiaremos por use=web, web=checkip.dyndns.com/, web-skip='IP Address' Guardamos y cerramos el archivo. Esto lo hicimos para decir que la detección de la actualización de la ip pública correrá a cargo de "checkip.dyndns.com". En otros casos se podría usar "if" en vez de "web" e indicar una interfaz preferentemente wan, o la interfaz que contenga la dirección ip pública, en este caso usamos “web” porque en nuestro servidor la interfaz eth0 es la única que tenemos cerca y no controla la ip pública, sino la ip de la LAN.
  • 15. Ahora editaremos el archivo /etc/default/ddclient y cambiamos run_daemon para que quede asi: run_daemon="true" y opcionalmente podemos cambiar el tiempo de actualización (en segundos) en la línea: daemon_interval="300" Reiniciamos el servicio ddclient: $sudo /etc/init.d/ddclient restart Hasta este momento la dirección ip pública se actualiza automáticamente. Usando herramienta de configuración de DynDns. NOTA: En ocasiones, la configuración que da ddclient por defecto no funciona, para una mejor configuración podemos usar la herramienta de actualización de DynDns, la cual genera un archivo de configuración básico y funcional para nuestros dominios. Si la configuración que hace la instalación de ddclient no genera problemas puede ignorarse esta sección. Para acceder se puede ir al sitio https://www.dyndns.com/support/tools/clientconfig.html que se encuentra en “Support/Tools/Update Client configurator” y seleccionaremos los dominios que queremos y también seleccionaremos ddclient como formato de configuración, damos click en Generate y veremos un archivo de configuración. Debemos sustituir nuestro actual /etc/ddclient.conf por el que nos presenta DynDns (no olvidar escribir el password en vez de ##YOUR PASSWORD##). El archivo es similar a este: ## ddclient configuration file daemon=600 # check every 600 seconds syslog=yes # log update msgs to syslog mail-failure=mimail@deregistro.com # Mail failed updates to user pid=/var/run/ddclient.pid # record PID in file. ## Detect IP with our CheckIP server use=web, web=checkip.dyndns.com/, web-skip='IP Address' ## DynDNS username and password here
  • 16. login=Miusuario password=##YOUR PASSWORD## ## Default options protocol=dyndns2 server=members.dyndns.org ## Dynamic DNS hosts midominio.homelinux.com, midominio2.homelinux.com #Cambiar por nuestros dominios reales El siguiente link contiene información importante acerca de los clientes de actualización: http://www.dyndns.com/support/clients/ Cliente No-ip (noip2). Instalaremos el paquete noip2: $sudo aptitude install noip2 La configuración durante la instalación será similar a ddclient, es decir, nos hará algunas preguntas, las cuales son: Nombre de usuario Noip (email y password con el que nos logueamos). Frecuencia de actualización de la dirección ip (expresada en minutos).
  • 17. Especificar los hosts o dominios creados en la página de Noip (separados por coma). Especificar la interfaz encargada de la ip pública, en este caso la dejaremos en blanco.
  • 18. Indicar si deseamos que se deshabilite la traducción NAT, diremos que NO. Para cambiar alguna configuración habrá que escribir en consola: $sudo dpkg-reconfigure noip2
  • 19. Abrir y redireccionar puertos. El último paso de este tutorial es abrir y redireccionar puertos de nuestro modem/router. Las aplicaciones y recursos en red funcionan bajo un puerto en específico por defecto, aunque pueden cambiarse, cerrarse, abrirse etc. Para efectos de este tutorial solo tenemos que saber que el puerto 80 es el que utiliza el protocolo HTTP. Si estamos fuera de nuestra LAN, es decir, conectados a otra red con internet, la del vecino, en la escuela, trabajo etc. y tecleamos en el browser http://midominio.homelinux.com no obtendremos respuesta, esto es porque falta abrir y redireccionar el puerto 80 al servidor (192.168.0.10). Sin abrir el puerto del modem/rouer, cuando alguien accesa a nuestro servidor desde internet la petición se hace por el puerto 80, así que la petición viaja a través de internet hasta llegar a nuestro modem/router (192.168.0.1) pero como el puerto 80 está cerrado entonces la petición muere en ese momento y no alcanza a llegar a nuestro servidor. Si el puerto estuviera abierto y direccionado a nuestro servidor la petición se realiza por el puerto 80, viaja a través de internet, al llegar a nuestro modem/router ve el puerto 80 abierto y dice que para seguir la petición debe ir al servidor (192.168.0.10) y entonces, al llegar al servidor este responde de forma adecuada y la petición regresa a su lugar de origen con una respuesta satisfactoria. La manera de abrir puertos de un modem/router o algún dispositivo de red varia de acuerdo a la marca/modelo del mismo, pero de manera básica se puede accesar a través del browser, generalmente el modem/router debe estar conectado físicamente a la computadora que lo accederá. En el browser escribimos la dirección ip o nombre de host del router, para el caso del tutorial es la 192.168.0.1, pero repito, depende mucho del modelo, otras posibles direcciones son: 10.0.0.1 192.168.1.1 192.168.254.1 192.168.254.254 Una vez dentro, la interfaz de navegación será diferente para cada modem, pero en general hay que buscar una sección que hable de puertos, como "Port redirecting", "Port access", "Special applications", "Application and gaming" etc. Una vez que hayamos ubicado esto generalmente debemos indicar:
  • 20. Número de puerto (ahora el 80). • Protocolo al que pertenece (TCP, UDP o ambos). • A donde redireccionarlo (192.168.0.10, nuestro servidor). Puede que tengamos que reiniciar el router, pero una vez hecho, debe de verse nuestro servidor desde internet escribiendo en el browser el nombre de dominio configurado ya sea en DynDns o Noip. Aquí algunos enlaces que explican lo que son los puertos y para que sirven: http://www.iana.org/assignments/port-numbers http://es.wikipedia.org/wiki/Puerto_de_red http://es.kioskea.net/contents/internet/port.php3 Hasta aquí este tutorial. Configuraciones existen muchas y todo depende del caso, además, hay que decir que en este tutorial no se abarca nada de la seguridad, esto es muy importante y lo iremos viendo en tutoriales posteriores.