miércoles, 8 de febrero de 2017

https

Con esta práctica queremos conseguir que la información que se envía a través del cliente/servidor esté segura, es decir, que sea cifrada de manera que sólo estos dos puedan ver la información que están generando entre ellos.

Para ello se necesita el siguiente proceso:

- el servidor envía su clave pública junto a un certificado de confianza que demuestre que este es quien dice ser.

- el cliente recibe la clave y decide si el certificado es de una fuente confiable y si pertenece al servidor con el que queremos comunicarnos.

- el cliente responde cifrando con la clave pública del servidor para que sólo él, al descifrarlo con su clave privada, pueda leer la información.

Para esto necesitaremos primeramente crear un certificado de nuestro servidor. Introducimos el siguiente comando en el terminal:


Nuestro country name, ES.


y los demás datos.


Una vez generado la clave la encontraremos en el home de nuestro usuario.


Copiaremos el contenido de este archivo y acudiremos a comodo.com para generar un certificado SSL gratuito, donde pegaremos el contenido.


Cuando introduzcamos los datos en la página, comodo firmará o no el certificado.

Seguidamente instalaremos tinyca con sudo apt-get install tinyca, una vez instalado lo ejecutaremos con el comando sudo tinyca2 para crear nuestro CA.


Introduciremos los datos.





Seguidamente iremos a la pestaña peticiones y crearemos una nueva petición.


Introduciremos los datos y firmaremos la petición como servidor.

una vez firmada, vamos a la pestaña certificados y lo exportaremos.


Exportaremos la clave del mismo modo.

Ahora iremos al servidor Apache y dentro del host virtual www.aulaser.com escogeremos el certificado y la clave generada en el anterior paso.


Guardaremos y aplicaremos la configuración.

con esto ya tendríamos el certificado terminado, ahora sólo nos queda importar el certificado en nuestro navegador para que lo reconozca.



martes, 7 de febrero de 2017

Habilitar public_html con userdir

En esta práctica vamos a habilitar la carpeta public_html para poder visualizar desde el navegador nuestro localhost. Para ello empezaremos acudiendo al servidor Apache desde webmin y, en la configuración global, buscaremos el apartado Configure Apache Modules.


Seguidamente habilitaremos la opción userdir situada al final de la lista.


Una vez activado, crearemos nuestra propia carpeta public_html, dentro de esta carpeta introduciremos los archivos que queramos manejar desde el navegador.


Uno de estos archivos debe ser un .html que contenga la página principal de nuestro portal , en nuestro caso hemos creado el archivo indice.html con el texto siguiente:


Por defecto no leerá nuestro archivo porque tiene un nombre que no está guardado en nuestro fichero de indidices de directorio, por lo que vamos a introducirlo. Acudimos a Default Server y entramos en Directory Indexing.


introducimos el nombre del fichero que queremos que aparezca en el apartado que está subrayado en la siguiente imagen.


Ahora reconocerá este archivo como el fichero que tiene que enseñar, pero con la configuración actual no aparecerá la página directamente, sino que veremos el contenido situado dentro de la carpeta public_html. Para resolver esto y aparezca directamente el archivo indice.html entraremos de nuevo en el servidor por defecto y acudirremos a Document Options.


En esta opción podemos configurar globalmente la opción de que genere índices de directorio o no, para que aparezca directamente nuestro .html. Si queremos que sólo se configure nuestra carpeta public_html haremos lo mismo pero específicamente en este directorio.


Y lo configuraremos:






Otro método es crear el archivo .htacces en el directorio donde queramos o no indexar e introducir lo siguiente (+ para que haya indexado y - para que no lo haya):



El resultado sería este:


miércoles, 25 de enero de 2017

Servicio HTTP

http es el método más común de intercambio de información en la web.

Es un protocolo cliente/servidor, uno tiene un rol de cliente y el otro, siempre a la escucha,
de servidor.

El hipertexto es el texto que te permite acceder a otros documentos desde el mismo.

https permite el uso de cualquier método de cifrado siempre que lo compartan el servidor
y el cliente.

El  puerto se encarga de unir los programas para reconocer a qué servicio del servidor
estamos accediendo (ftp, etc.).

El protocolo http es un protocolo sin estado, es decir, no recuerda nada relativo a conexiones
anteriores a la actual.

- Si el servidor lo encuentra, lo envía.
- Si no existe, envía un código de error.

Esto permite que no hayan datos adicionales pendientes de trámites anteriores.

Para Cada objeto que se transfiere por la red se realiza una conexión independiente.

Pero esto no permite guardar información de peticiones pendientes, para solucionar esto empleamos las cookies.

en http podemos utilizar tres operaciones:

-GET
-POST
-HEAD

------------

Abrimos terminal.

utilizaremos telnet para hacer peticiones

después de telnet insertaremos la url de la que deseamos extraer información y seguidamente el
puerto que queremos utilizar (en este caso 80, tcp).



Se conectará a la url en concreto.

Le haremos la petición GET seguido de nuestra petición seguido del protocolo que queremos.



Si hemos empleado un protocolo que el servidor pueda entender, nos responderá con la petición

y nos otorgará el recurso.

Si se desea descargar el contenido que hay en una dirección en concreto, se puede utilizar el comando WGET.
-----------

Los tipos MIME indican tipo de archivo que se transfiere del servidor al cliente.


MIME multipart se emplea para la subida de archivos, se hace desde POST.

martes, 17 de enero de 2017

DNS Dinámico

La finalidad de esta práctica es que nuestro servidor principal sea capaz de actualizarse por si mismo, de modo que al asignar una dirección automática a sus clientes, el servidor guarde el nombre del cliente y la dirección asignada en sus zonas correspondientes del dominio.

Para ello será necesario generar una clave DNSSEC

Abrimos terminal.

introducimos sudo dnssec-keygen -K /etc/bind -a HMAC-MD5 -b 128 -n USER usuariodeclave (en nuestro caso usuario1).

K = directorio donde guarda los ficheros con las claves
a = algoritmo
b = tamaño en bits
n = tipo de clave



Como queremos visualizar la clave para copiarla, introduciremos en el terminal sudo nano clavegeneradaenBIND (en nuestro caso Kusuario1.key).


Seguidamente configuraremos BIND.


Acudimos a BIND/DNS KEYS.



Introduciremos el usuario y su respectiva clave, copiada anteriormente del archivo generado.




Guardaremos los cambios y acudiremos a Edit zone options de la zona aulaser.

Introdicumos key usuario (en nuestro caso usuario1).



Realizaremos lo mismo en la zona inversa.

Para comprobar que el servidor funciona correctamente y se actualiza introduciremos el comando nsupdate seguido de las siguientes órdenes:



Por último, comprobaremos que funciona haciendo dig a pruebaaulaser.com.



miércoles, 7 de diciembre de 2016

Crear tabla de rutas y cambiar reglas de Firewall


Cuando el servidor recibe información, este la encamina a la dirección indicada; si es una dirección de dentro de su red, la enviará por la interfaz de la red local y, si es otra dirección desconocida, la envía al exterior.

El problema es que nuestro servidor sólo reconoce como direcciones de su propia red a las direcciones 192.168.100.0/24, es decir, a las direcciones de nuestra subred 10.0.116.0/24 no las reconocerá como red interna.

Para cambiar esto crearemos una tabla de rutas.




En ajustes de red/ajustes de IPv4/Rutas nos encargaremos de indicarle al servidor la dirección de la tarjeta de red que da a aula116 para que, cuando el servidor tenga que enviar información a direcciones de este segmento de red, lo reconozca como una dirección de su red y no la envíe al exterior de vuelta.



Introduciremos los siguientes datos a la tabla de rutas.





Ahora, cuando el servidor reciba un mensaje hacia la nuestro segmento de red aula116 lo reconocerá como dirección de su propia red y lo encaminará a su destino.


Una vez creada la tabla de rutas, estableceremos una serie de reglas en nuestro Firewall para que PFsense permita que todo el proceso de transmisión funcione correctamente.

Entraremos en Firewall/Rules/WAN

Añadimos regla.

Dejamos todo igual y en protocolo ponemos Any.





Acudimos a Interfaces/WAN y desmarcamos las dos casillas de abajo.




De este modo ya tendremos el Firewall configurado correctamente.

Centralizar DHCP y DNS en un servidor

Hasta ahora, tanto PFSense como el servidor DNS se encargaban cada uno de otorgar las distintas direcciones de red para su propio segmento de red. Lo que pretendemos hacer en esta práctica es que el servidor principal sea el único que se encargue de otorgar direcciones de red automáticamente, tanto en la red principal como en las demás subredes.

Para ello necesitaremos entrar en Webmin desde el servidor principal y acudir a DHCP server.

Crearemos una subred donde introduciremos los siguientes parámetros:



Aquí le estamos diciendo al servidor que la dirección 10.0.116.0 es una subred, además estamos detallando el rango de direcciones que puede contener esta subred.

Una vez guardado, seleccionaremos DHCP server/subred 10.0.116.0/Edit Client Options




Nos aparecerá una ventana en la que introduciremos la siguiente información:




Con esto el servidor será el único encargado de resolver las peticiones de toda la red local, por lo que se centraliza la caché y facilita la configuración.

Ahora acudiremos a la interfaz del PFSense para habilitar DHCP Relay, lo que hará que cuando reciba una solicitud de DHCP este lo reenvíe al verdadero servidor DHCP (servidor principal).


Primero deshabilitaremos DHCP en PFSense y seguidamente activaremos DHCP Relay.






Ahora tenemos los servicios centralizados en el servidor principal, aún así el servidor no será capaz de detectar la red 10.0.116.0 ya que el servidor sólo escucha la red 192.168.100.0 por defecto, para solucionar esto será necesario agrupar todas las redes.

En nuestro servidor, acudiremos a BIND  y utilizaremos la herramienta ACL (acces control list). Esta se encarga de definir quién tendrá permisos de acceso.



Introduciremos los siguientes datos:




Ahora introduciremos un allow query para que allaulas, que engloba todas nuestras redes, tenga permitido consultar el servidor de nombres.

Iremos a BIND/Edit Config File y entraremos en el fichero options. Introduciremos los datos que aparecen en la siguiente imagen:




Guardaremos y aplicaremos configuración.


Deshabilitar NAT en router PFSense

Hasta ahora, nuestro router se encargaba de hacer NAT con todas las direcciones que le llegaban desde dentro del nuevo segmento de red, esto no nos interesa porque queremos saber exactamente qué máquina está enviando información a los equipos de dentro de la red local, solamente necesitamos que haga NAT el servidor DNS.

Para deshabilitarlo acudiremos a la máquina virtual portatil, que está en el nuevo segmento de red, y accederemos al router desde ahí, ¿cómo podemos acceder? simplemente accediendo al navegador e introduciendo la IP de nuestro router PFsense.



Por defecto el usuario es admin y la contraseña pfsense.

Una vez dentro, acudiremos a Firewall/NAT/outbound.




Guardaremos los cambios y ya lo tendremos deshabilitado.