miércoles, 12 de octubre de 2016

Creación de una red | Cliente-Servidor (Lubuntu/Webmin)



Creación de una red cliente - servidor



Parte I


Lo primero que haremos sera crear las maquinas virtuales con su correcta configuración:

La maquina cliente con Lubuntu deberá tener la siguiente configuración de red, configurado como una red interna llamada aulaSRI, también le podemos configurar una red NAT provisional para poder actualizar de esta forma todos los paquetes del S.O.






Y la maquina servidor tendrá configurados dos adaptadores de red, uno con la red interna mencionada anteriormente aulaSRI y el segundo con una NAT para poder llevar a cabo las funciones de red.





Una vez configuradas y preparadas las maquinas, tan solo tenemos que proceder a su instalación.

Cuando ya tengamos instalado Lubuntu, vamos a llevar a cabo el mismo procedimiento en ambas maquinas:

1. Actualizaremos el sistema a su ultima versión, así como sus paquetes con:      
     
 - sudo apt-get update y sudo apt-get upgrade

2. Instalaremos el paquete dkms para evitar posibles problemas futuros a la hora de instalar "Guest Additions"

- sudo apt install dkms

3. Instalaremos "Guest Additions" de la siguiente forma:

- En VirtualBox iremos a Dispositivos > Insertar imagen de CD Guest Additions
- Ahora en nuestro escritorio del servidor tendremos algo como esto:


- Hacemos doble click en el icono que se nos ha creado y nos llevara hasta donde se encuentra la carpeta con el contenido de este fichero:



- Vamos a herramientas y abrimos una terminal en el directorio actual, y ejecutamos lo siguiente:

sudo sh ./VBoxLinuxAdditions.run

- A continuación se nos debería iniciar la instalación de Guest Additions y una vez finalizada nos pedirá reiniciar

Una vez llevados a cabo estos procedimientos en ambas maquinas vamos a instalar "Webmin" también en ambas (aunque le vamos a dar verdadero uso en la maquina servidor).

- Para ello vamos a su web: http://www.webmin.com/download.html

- Y descargamos la versión adecuada para nosotros:




- Una vez descargado, instalamos el paquete.

- Cuando ya lo tengamos instalado iremos al navegador y pondremos lo siguiente en la barra de direcciones: 

https://localhost:10000

- Posiblemente el navegador nos dirá que se trata de una dirección peligrosa o nos pondrá trabas al acceder, tan solo tenemos que añadir la excepción en el navegador para la dirección y ya funcionara sin problemas, nos pedirá un usuario y una contraseña, aquí pondremos el nombre del usuario del sistema y la contraseña por defecto que le hayamos puesto al usuario del sistema.

- Cuando ya nos deje entrar, veremos algo como esto:



Ahora, antes de seguir con "Webmin" vamos a configurar correctamente las redes en ambas maquinas, llegados a este punto ya podemos quitar la red NAT que pusimos en el cliente para poder actualizarlo.

Primero iremos a nuestro cliente:

- Editaremos la única de red que tiene de la siguiente forma, le pondremos de nombre "LAN aulaSRI"


- Ahora en ajustes de IPv4 lo dejaremos de la siguiente forma:


- Por tanto ya tendremos nuestra red LAN del cliente lista:


Ahora vamos a nuestra maquina servidor:

Aquí tenemos dos tarjetas de red, de modo que tenemos que configurar ambas, una para LAN y otra externa, WAN.

- Vamos a empezar por la WAN, que sera nuestra tarjeta configurada como NAT en VirtualBox:




- Le ponemos de nombre WAN, y pasamos a la configuración IPv4



Donde lo dejaremos en automático (DHCP).

Ahora pasamos a configurar la red LAN (la otra tarjeta de red que teníamos)




Una vez terminada la configuración se nos quedaría algo así:




A continuación y una vez configuradas correctamente las redes en ambas maquinas, podemos probar que funciona haciendo un ping en la consola con las IPs que hemos puesto, de cliente a servidor por ejemplo.

El siguiente paso sera conceder acceso Internet al cliente a través del servidor, (ya que al cliente le quitamos la tarjeta de red NAT y le configuramos solo la LAN). Para ello vamos a utilizar "Webmin".

Vamos a nuestra maquina servidor, y entramos desde el navegador a "Webmin" como vimos con anterioridad.



Una vez en la pagina principal, vamos al apartado Networking > Linux Firewall y hacemos lo siguiente:



Le daremos Internet al cliente a través de enp0s8, es decir la tarjeta configurada como WAN en nuestro servidor. Le daremos a "Setup Firewall" y por ultimo en la siguiente ventana y MUY IMPORTANTE, aplicaremos los cambios, porque si no no nos funcionara nada de lo que hemos hecho.

Por ultimo, para que todo funcione correctamente nos falta solo añadir el forwarding en nuestra maquina servidor, para ello vamos a nuestro terminal y ponemos el siguiente comando para acceder al archivo de configuración:

sudo leafpad /etc/sysctl.conf

Y dejaremos la linea del forward de la forma siguiente:


Guardamos y ejecutamos el siguiente comando para comprobar que efectivamente hemos realizado cambios en el forward:



Llegados a este punto y con ambas maquinas funcionando, nuestro cliente debería tener acceso a Internet, y no debería haber ningún problema. Podemos hacer un ping del servidor al cliente y viceversa para comprobar que efectivamente funciona o directamente probar a navegar en nuestra maquina cliente a través del navegador.

Parte II


Ahora vamos a instalar la función de DNS, para ello tenemos que instalar unos paquetes en nuestra maquina servidor, antes que nada vamos a actualizar nuestro sistema a la ultima versión para que no nos devuelva ningún error. Lo mas fácil es ir a Herramientas del sistema > Actualización del software.

Una vez actualizado todo, iremos a Herramientas del sistema > Gestor de paquetes synaptic y buscaremos por Bind:


Marcaremos el Bind9 y nos seleccionara 2, aplicamos e instalamos los paquetes.

Una vez instalados, accederemos a "Webmin" de nuevo y nos aparecerá una nueva opción llamada "Bind DNS server", en caso de que no nos apareciera le tendríamos que dar a refrescar módulos y nos aparecerá:


Ahora accedemos al menu "Bind DNS server", y podemos ver un panel de configuración con diversas opciones, en nuestro caso vamos a crear una nueva zona:


Con los siguientes parámetros:



Al crearla, nos saldrá otro panel de configuración con las opciones para modificar la zona que acabamos de crear:


Lo que haremos ahora sera añadir un name server:



Le damos a crear y se nos creara a la perfección.

Ahora añadiremos una dirección para el DNS, otra para el servidor y otra para nuestro cliente a la zona que creamos antes:








Ahora vamos a probar que funciona, para ello vamos a encender el Bind (Start BIND) y comprobar si hay errores:




Ahora vamos a nuestro terminal y comprobamos si funciona haciendo un ping a el cliente a ver si nos devuelve las IP:



Ahora vamos a cambiar unas configuraciones de nuestra red WAN en el servidor para que de esta forma no les demos toda tipo de información a los clientes, tan solo les asignemos una IP y una puerta de enlace, vamos a la configuración de red WAN y cambiamos lo siguiente:


Dejando como método "Solo direcciones automáticas (DHCP)"

Y en nuestro cliente también vamos a realizar unos pequeños cambios, vamos a nuestra red "LAN aulaSRI" y cambiaremos lo siguiente:



Ahora en servidores DNS le pondremos la dirección de nuestro servidor y en "dominios de búsqueda" aulasri.com para que cuando hagamos un ping en nuestro cliente al servidor solo con poner "ping servidor" añadirá después de servidor aulasri.com y funcionara:



Creación de una zona inversa

Si intentamos ejecutar este comando en nuestra terminar del servidor:

dig 254.100.168.192.in-addr.arpa PTR

No nos devolverá nada  ya que en nuestro servidor no tenemos configurada ninguna zona inversa


Así que vamos a crear una, para ello vamos a hacer como hicimos con la zona que creamos antes, iremos al menú de configuración del BIND y debajo donde salen las zonas que tenemos, le daremos a "create master zone".



Ahora en "zone type" pondremos reverse, lo cual equivale a una zona inversa (de direcciones a nombres). y pondremos la IP "192.168.100" y le daremos a crear.

Una vez creada, en el menu de BIND DNS en la parte de abajo donde aparecen las zonas que tenemos, aparecerá nuestra zona que acabamos de crear, entramos dentro de ella y lo que vamos a hacer, es añadir direcciones IP.



Una vez dentro, nos saldrá algo como esto:


Donde añadiremos las IPs "Servidor" y "Cliente", es decir:


192.168.100.254 -> servidor.aulasri.com.
192.168.100.11 -> clienteaulasri.com.

De esta forma y una vez añadidas si vamos a editar el fichero "Records" que hay dentro de nuestra zona deberíamos ver algo como esto:


Se nos habrán añadido las dos IPs para cliente y para servidor y para nuestro servidor de nombres (192.168.100).

Si hemos hecho todo bien, ahora a través de nuestro terminal con el comando:


dig 254.100.168.192.in-addr.arpa PTR


Nos debería funcionar y devolver algo como:



Donde efectivamente ahora funcionaria y mostraría nuestras IPs, dentro del servidor de nombres.

Lo ideal ahora también, seria a través del comando:

dig -x (IP)

Comprobar si nos lo resuelve y nos devuelve la IP inversa:


De esta forma nos aseguramos de que funciona correctamente.





Añadiendo Alias a nuestra zona



A lo largo de este apartado vamos a añadir alias a nuestra zona, es decir, que por ejemplo si añadimos el alias "www" a aulaSRI.com al hacer un comando como:

dig www.aulasri.com.

Nos devolverá la información con el alias "www" al que se refiere como "CNAME" y las demás IP's que tenga ese rango.

Para añadir los Alias nos situaremos dentro de nuestra zona, y entraremos en el apartado Name Alias:





Una vez dentro, añadiremos el Alias que nos interese:




Por ejemplo ahora hemos añadido el Alias "www" para "servidor" y de esta forma podemos añadir Alias para los nombres o direcciones que nos interesen.

Si probamos el comando que vimos anteriormente en el terminal, veremos que efectivamente funciona:



Si vamos a nuestro archivo de configuración "hosts" del Bind veremos como efectivamente se ha añadido el CNAME para servidor:



Y de este forma se añaden Alias para nuestra zona.



Mejorando el código


En este apartado, vamos a realizar unas mejoras opcionales para de esta forma tener un código mas depurado y que nos ayude a la hora de realizar posibles modificaciones futuras.

Iremos a nuestro archivo de configuración: 

/var/lib/bind/aulaSRI.com.hosts 



Y ahora si nos fijamos en los cambios que se han llevado a cabo, veremos que donde ponía "aulasri.com." ahora ponemos un "@"

Aun podríamos mejorarlo mas y dejarlo de esta forma:




Ahora tendríamos todo ordenado incluso por bloques (Los Alias por un lado, las IPs por otro) y de esta forma todo es mucho mas entendible a simple vista.
Haber hecho estas modificaciones resulta muy útil si en un futuro tuviéramos que cambiar el dominio "aulasri.com" por "aulasri.es" de esta forma en lugar de estar cambiando en cada linea el .com por .es bastaría con cambiarlo en un sitio y luego pondríamos los @.





Creando una zona esclava

Lo primero que haremos sera en nuestro servidor ir a nuestra zona de "aulasri.com" y dentro de ella buscaremos el apartado que dice "Zone Options".

Lo que vamos a hacer aquí es permitir a las IPs que pongamos la transferencia de la zona (Las IPs, los Alias...) a una zona esclava creada en un cliente.

En nuestro caso, vamos a probar a transferirlo a nuestro cliente, por lo que pondremos su IP:



Le daremos a guardar, y aplicaremos la configuración de nuestra zona.

Para asegurarnos de que hemos hecho este paso bien, podemos ir a nuestro archivo de configuración del BIND "named.conf.local"




Y comprobamos como para la zona "aulasri.com" esta permitida la transferencia a la IP 192.168.100.11

Ahora iremos a nuestro cliente, abriremos Webmin, y en el menú de BIND DNS (si en este punto no hemos instalado el paquete BIND, lo instalaremos mediante el gestor de paquetes de synaptic como hicimos con anterioridad en nuestro servidor), ahora crearemos una "slave zone"



Aquí pondremos el Domain name "aulasri.com." y la IP del master server y create



Ahora, dentro de la zona esclava que acabamos de crear si le damos a "Test Zone Transfer" no nos debería de dar ningún problema y se nos trasferirán las IPs de nuestro servidor y todo lo que teníamos para esa zona.




Y nos quedara algo como: