Categorías
Blog Informática Server

NAT loopback DNS y Failover

DNS_Tree

Que es nat loopback dns y failover

Hoy voy a hablar de un problema común a la hora de configurar un servidor web, el nat loopback dns y failover, como todos sabeis un servidor web se trata de un ordenador, que generalmente lleva un programa (apache, nginx, microsoft, lighhttpd …), que sirve páginas web a los clientes.

Bien, aquí voy a suponer que el servidor web ya está configurado y que funciona correctamente, o almenos funciona desde dentro la LAN, es decir, desde la red interna.

Para que el servidor sea accesible desde el exterior, es muy probable que le haya que decir al router donde se encuentra el servidor. ¿Y eso porque? Pues vamos a detallar los pasos que siguen los clientes y como funciona el proceso:

Primero, los usuarios escriben en el buscador algun tipo de información, por ejemplo «problemas rotación galaxy s6 edge».

Segundo, el buscador da unos resultados con varias entradas y cada una de ellas apunta a una web que está alojada en un servidor, ya sea de pago, gratis o en casa de alguien.

Tercero, los usuarios pulsan sobre el enlace, por ejemplo http://crashbit.homelinux.com.

Cuatro, en este momento los servidores DNS transfoman la URL (nombre de la web) a una dirección IP, por ejemplo 213.148.199.23

Quinto, si esta web está en tu casa, llega la petición al router.

Parémonos un momento en el router. Este aparato conocido por todos, pero que nadie sabe como funciona, hace muchas cosas, pero la mas importante quizas, es que dirige los paquetes de información hacia donde deben ir, pero no siempre sabe como hacerlo, como por ejemplo en el caso de tener servidores.
El router lo podemos dividir en dos partes, la parte que apunta hacia internet, con la dirección IP (Pública) que hemos dicho antes, 213.148.199.23 y una parte interna, con dirección IP por ejemplo 192.168.1.1.

Aquí hay mucho que decir, pero para resumir de forma muy matusera, diremos que la parte interna, se puede conectar con los equipos que están en la parte interna, por ejemplo el PC con IP 192.168.1.30 y el smartphone con IP 192.168.1.31, pero para que puedan pasar del interior al exterior o del exterior al interior, es necesario un router. Es decir, el router enlaza dos redes diferentes, una interna con direcciones IP por ejemplo 192.168.1.X y otra externa con miles de direcciones diferentes.
Así pues cuando llega un paquete que va a nuestro PC, se le tiene que decir al router cuál es la IP del PC, ya que si no, no sabría donde enviarlo, si al PC o al smartphone, teniendo que perder tiempo preguntando a cada uno.

Sexto, ahora volvamos a nuestro paquete que llega al router, ahi le hemos configurado el NAT, que lo que hace es decir a que IP interna tiene que dirigirse el paquete que pregunta por un servidor. Como NAT le hemos dicho que todo lo que sea tráfico HTTP, es decir tráfico que usa el puerto 80, se enrute hacia la IP 192.168.1.30, así que como en esta IP está el servidor WEB apache, pues este responde a la petición y muestra nuestra página web, que podemos ver desde internet.

Bien, ya sabemos como funciona NAT, pero que es eso de NAT loopback? Pues bien, ahora imaginemos que estamos en casa y hacemos los mismos pasos que hemos explicado anteriormente.
Vayamos al paso cuarto y miremos que hace el router, nuestro navegador dice que quiere acceder a la dirección IP 213.148.199.23, así que pedimos al router esta dirección, el router la busca a los resulta que es su propia dirección, así que no llega a salir al exterior, y claro ahí el NAT no actua, así que el router lo interpreta como una petición de acceder al mismo router desde el interior, y muestra la web de configuración del router, es decir, no la redirige al PC 192.168.1.30 con el apache. Y ahí es donde vemos que algo no funciona … pero recordad, no funciona desde el interior de la LAN, pero si que funciona desde el exterior.

SOLUCIONES:

1) Usar nombres de host
Esta es una solución, en lugar de usar crashbit.homelinux.com, usamos el nombre de host interno que le hemos dado al servidor, por ejemplo earth, así ponemos por ejemplo en el navegador http://earth, y si en /etc/hosts existe el nombre earth, y este apunta a la IP interna del servidor (192.168.1.30) se nos mostrará la web.
PD: Tambien se puede usar directamente la IP interna en el navegador http://192.168.1.30.

Problemas: Pues básicamente nos puede dar problemas con gestores de contenido tipo wordpress, drupal o demás, ya que en la base de datos seguramente existan referencias a crashbit.homelinux.com y estás no podrán ser resueltas y además quizas no cargue nuestro CSS, entre otras cosas.

2) Crear un mini servidor DNS con dnsmasq
És una buena opción, se trata de crear un pequeño servidor dns muy simple pero efectivo, para que cuando estemos dentro de nuestra LAN (es decir en nuestra casa conectados via wifi), la dirección crashbit.homelinux.com no apunte a 213.148.199.23, si no que apunte a 192.168.1.30.

Uf! Direis que esto de montar un servidor DNS en nuestra casa es mucho curro, pero con dnsmasq hacemos que sea muy simple.

2.1) Instalamos dnsmasq si no lo está

[email protected]:~$ sudo apt-get install dnsmasq

2.2) Modificamos el fichero /etc/dnsmasq.conf para que quede algo parecido a esto:

server=8.8.8.8
server=8.8.4.4
listen-address=127.0.0.1,192.168.1.30
bind-interfaces
address=/crashbit.homelinux.com/192.168.1.30
  1. Server=8.8.8.8 y server 8.8.4.4 le decimos que si no encuentra en la caché DNS lo busque a las DNS de Google.
  2. listen-address=127.0.0.1,192.168.1.30 y bind-interfaces, le decimos que responda a peticiones DNS desde el mismo PC y desde la LAN.
  3. address=/crashbit.homelinux.com/192.168.1.30, con esto le decimos que no resuelva el nombre crashbit.homelinux.com en las DNS exteriores, si no que lo resuelva directamente como 192.168.1.30.

2.3) Falta un paso importantísimo, decirle al router que use como servidor DNS nuestro equipo, ya que si no, cuando nuestro cliente pregunte por crashbit.homelinux.com desde la LAN, el router usará los DNS externos y no resolverá a la IP interna, si no la externa. Este paso depende de cada router, pero es muy simple, basta con entrar en la configuración y poner como DNS primario la IP del PC que tiene el servidor dnsmasq, en nuestro ejemplo 192.168.1.30.

Resultados: Aquí veremos a los resultados de nuestro servidor dnsmasq

[[email protected] ~]$ dig crashbit.homelinux.com

; <<>> DiG 9.9.2-P2 <<>> crashbit.homelinux.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59195
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;crashbit.homelinux.com.		IN	A

;; ANSWER SECTION:
crashbit.homelinux.com.	    0	     IN	    A	      192.168.1.30

;; Query time: 1 msec
;; SERVER: 192.168.1.30#53(192.168.1.30)
;; WHEN: Sat Jun  6 17:24:40 2015
;; MSG SIZE  rcvd: 56

Podemos ver que resuelve a nuestra IP interna, así pues va a funcionar siempre. Y aunque nuestro gestor de contenidos busque en crashbit.homelinux.com en lugar de 192.168.1.30 no tendremos problemas.

Problemas:
Existen algunos problemas, como por ejemplo que no tendremos mucho mas control sobre los dominios y que los hosts no se definen de igual forma. Y lo mas importante, que si tenemos equipos con cache DNS activada, podríamos tener problemas, ya que la propagación no siempre es instantanea y podría provocar que algunos intentos no se resuelvan desde la LAN. Para ver si tenemos este problema podemos lanzar un ping a la dirección crashbit.homelinux.com y y quizas veremos como las primeras peticiones no se resuelven, pero al rato, se resuelven todas.

UPDATE: Algunas veces desde un laptop con Ubuntu parece que ignora la configuración del router, que le dice que use como servidor DNS el 192.168.1.30. Esto es debido a que NetworkManager hace uso de dnsmasq en el mismo Ubuntu, y algunas veces puede ignorar nuestros DNS. Para solucionar esto debemos editar el siguiente fichero:

/etc/NetworkManager/NetworkManager.conf y dejarlo así

[main]
plugins=ifupdown,keyfile,ofono
#dns=dnsmasq

[ifupdown]
managed=false

Añadiendo un #, es decir, comentando, la línea donde pone dns=dnsmasq, luego reiniciamos el servicio con

sudo service network-manager restart

3) Instalamos un servidor DNS completo:
{Pendiente}

FAILOVER DNS:

De acuerdo, ya tenemos nuestro servidor corriendo perfectamente, pero que pasa cuando se estropea el Servidor o bien cuendo se cae la linea? Pues la respuesta es clara, que el cliente obtiene un precioso error de tiempo de conexión esgotado, es decir, que nuestra web no funciona y los clientes quizas ya no vuelvan a entrar a ella nunca mas, y además, por si fuera poco, los buscadores (google) nos bajan el pagerank, lo que provoca que nuestra web pierda puestos a la hora de ser mostrada en los resultados de búsqueda.

Así pues, vamos a dar valor al título de esta entrada NAT loopback DNS y failover, pero además añadiremos backup a la entrada, con lo que haremos un sistema de copia de seguridad y resistencia a fallos.

Para crear este sistema partimos de este esquema:

( Continuará … )

[jetpack_top_posts_widget]

Categorías
Blog CentOS GNU/Linux Server Sistemas Operativos

WordPress smtp gmail authentication problems

Hola, llevo un tiempo armando un servidor LAMP Centos 7 con Apache, MariaDB y php, la verdad que al principio tropecé un poco con selinux, pero no me di por vencido y no lo desactivé.

En el servidor le he puesto wordpress como gestor de contenidos y la verdad es que va de maravillas, sin tocar casi nada tengo acceso a los ficheros de configuración y también puedo subir, descargar y modificar ficheros sin problemas desde la interfaz de configuración de WordPress.

Un tema que me tenía algo mosqueado era el de los orreos internos, ya que no tenía ganas de montar un servidor de correo, así que decidí hace relay hacia un servicio de correo que tubiera smtp.

En resumen, no usar la función mail() del php y usar SMTP y el servicio de gmail
Pasos que seguí:

  1. Instalar un plugin de WordPress para tal efecto, yo me instalé el WP MAIL SMTP
  2. Configurar los datos del correo
    ​From email: <blank>
    From name: <blank>
    Mailer: send all wordpress emails via SMTP
    Return path: UNchecked
    SMTP Host: smtp.gmail.com
    SMTP Port: 465
    Encryptions: Use SSL encryption
    Authentification: Yes use smtp authentication
    Username: [email protected]
    Password: Password de gmail o específico de la aplicacions si usas verificación en dos pasos
  3. Testee e intenté enviar un mail de prueba, pero me daba error

Así que empecé a buscar culpables, leer logs, que si no autenticaba, que quizas era el php o el sendmail … nada, buscando en foros, haciendo pruebas y no había forma, siempre salía el error: smtp error: could not authenticate …

Hasta que al final pensé … y SeLinux ? Tendrá el apache permiso para enviar correos? Así que lo comprobé de esta forma:

$ sudo getsebool httpd_can_sendmail
httpd_can_sendmail off

Listo!!! Ahí estaba el problema, lo cambié y le dije que hiciera el cambio de forma persistente con el comando:

$ sudo setsebool -P httpd_can_sendmail on
$ sudo getsebool httpd_can_sendmail
httpd_can_sendmail on
Categorías
Blog Informática Server

Como saber si el procesador de un equipo es de 32 o 64 bits

Saludos!

Según leo en alliberats.cat, nos muestran una forma de poder saber si nuestro equipo es de 32 ó 64 bits.
La forma en que lo explican es mediante el uso del programa «lshw», de esta forma

sudo lshw -C cpu

Luego se mira el campo width y allí nos dirá si el procesador es de 32 o 64 bits.

Este método es simple, pero no es la forma más básica de hacerlo, ya que como podemos observar hace uso de un programa, «lshw».

Bien pues, ahora voy a explicar otra forma de hacer la misma comprobación, pero sin programas, solo mediante comandos del propio sistema operativo, para ello, usaremos la estructura del directorio /proc que todo linux tiene.

grep --color ' lm ' /proc/cpuinfo

Si nos sale un «lm» de color rojo, significa que nuestro procesador trabaja con el modo Long Mode, que significa que trabaja a 64 bits.
Pues ni mas ni menos, si nos sale un «lm» de color rojo, es que tenemos un procesador de 64 bits.

Categorías
Blog Informática Server

Redireccionar webmail de 1and1 a tu cuenta de Gmail

Saludos!

Hola a todos de nuevo, en esta nueva entrada al blog voy a explicar como importar cuentas del webmail de 1and1, a nuestro correo de Gmail.

Esto es útil, ya que con los nuevos smartphones con sistema operativo android, nos hemos acostumbrado a usar habitualmente el correo de gmail, la facilidad que nos da android para usar este tipo de cuentas es abrumadora y es realmente fácil administrar cuentas de gmail con los teléfonos.
Android también nos proporciona la sincronización con calendarios de Google y muchas otras opciones que muchos usamos a diario.

Lo primero que debemos hacer es disponer de una cuenta de webmail de 1and1 y otra cuenta de correo en google, son los dos requisitos básicos para poder seguir el procedimiento que a continucación se explica.

El siguiente paso será entrar en la URL que se detalla a continuación:

Ahí veremos una pantalla parecida a la imagen siguiente, donde deberemos hacer click encima de «cuenta»:

Una vez ahí, marcamos la opción de «añadir una cuenta de correo POP3 de la que sea titular». Es importante que sea una cuenta POP3, que en nuestro caso es posible, ya que el webmail de 1and1 trabaja con cuentas POP3 y SMTP. A continucación podeis ver la imágen:


Una vez pulsado encima del texto marcado en amarillo, se nos abrirá otra ventana, si nuestro navegador no lo permite, deberiamos deshabilitar la opción que no permite abrir ventanas.

A continuación voy a poner una serie de imágenes donde se ven los datos a añadir para poder configurar la cuenta de 1and1 en gmail. Debajo de cada imágen he puesto unas pequeñas aclaraciones por si no sabemos que dato poner exactamente:


Vamos a suponer que nuestro dominio en 1and1 es: psicologos.com, pues en dirección de correo electrónico deberiamos poner por ejemplo: [email protected]


Ahí nos saldrá de dirección de correo electrónico [email protected]

– Nombre de usuario deberíamos poner el mismo, por ejemplo: [email protected]
– Contraseña: ahí debemos poner la contraseña de acceso al webmail de 1and1

Lo mas importante es cambiar lo que sale por defecto en Servidor POP, cambiarlo por pop.1and1.es.


Simplemente comprovamos que los datos son correctos y lo dejamos tal y como está.

Aquí cambiamos por ejemplo el nombre, y ponemos por ejemplo: Juan Centro de Psicologos.


Esta pantalla es importante, debemos cambiar la casilla de Enviar mediante Gmail a Enviar mediante servidores SMTP de, en nuestro caso, psicologos.com

Luego rellenar con los siguientes datos:
– Servidor SMTP: lo cambiamos por smtp.1and1.es
– Nombre de usuario: [email protected] <—- Recordad que psicologos.com es un dominio inventado, poned el vuestro
– Contraseña: El password de acceso al webmail de 1and1.
– Dejar la casilla de conexión segura mediante TLS.

Una vez hecho esto, ya tenemos nuestra cuenta POP3 añadida a Gmail. Es posible que gmail intente enviar un código de verificación mediante un mail, en tal caso lo ponemos en la casilla donde lo pide o si tarda mucho en llegar, simplemente seguimos el enlace que encontraremos en el correo.