Mostrando entradas con la etiqueta Seguridad. Mostrar todas las entradas
   En esta tercera práctica hablamos sobre los servidores de nombres con BIND.  Para esta práctica es necesario tener un dominio con el que prácticar o practicar dentro de los laboratorios de nuestra facultad.
    Tras eso, lo primero primerísimo de todo que hay que hacer es configurar el servicio para que escuche por los puertos asignados por defecto, para ello abrimos con nuestro editor favorito el archivo /etc/named.conf . En el apartado de opciones dentro de los primeros cierra y abre corchetes rizados ('{}') eliminamos las opciones etiquetadas con "listen-on port", "listen-on-v6" ya que por defecto están configuradas para que solo se resuelvan peticiones generadas en la misma máquina que presta servicio.
   Ahora debemos añadir las zonas de nuestro dominio y dominio inverso, especificando si somos "master/slave", el archivo con el que traduciremos las direcciones en nombres y viceversa,
   Como no hemos tocado ninguna de las demás opciones del primer bloque todos los archivos de traducción de base de datos debemos colocarlos en la carpeta /var/named .Para que el servicio funcione bien debemos tener los siguiente puntos en cuenta a la hora de escribir los registros del servidor de nombres:
  • $TTL valor , es lo primero que debemos escribir en la primera línea del fichero. Este parámetro indica cuál es el tiempo de vida de los datos que contiene. El valor puede ser especificado como 1D para decir que la información debe se actualizada en 1D. En algunos casos el servicio de servidor de nombres falla por no tener este parámetro, por eso es recomendable tenerlo siempre.
  • Es buena idea, para ahorrar tiempo, copiar y pegar la estructura de los archivos de localhost (named.localhost) que están contenidos en la misma carpeta /var/named  cambiandoles los datos para que concuerden con la zona del servidor de nombres.
  • NO SE OLVIDEN DE LOS GLUE RECORDS. Esos registros en los que especificamos el que  máquina aloja el servidor de nombres y que tiene la forma:
    • dominio.hasta.el.punto.final. IN NS máquina.dentro.del.dominio.hasta.el.punto.final.
  • OJO CON LOS REGISTROS DEL SERVIDOR DE CORREO: tienen una sintaxis un tanto especial:
    • dominio.de.correo. IN MX PR correo.dominio.hasta.el.punto.final.
      • Donde PR es el número de prioridad. Dándose más prioridad al que tiene menor número.
      • Si se tuviera que enviar correo de un servidor de correo a otro dentro del propio dominio el servidor al acceder a los registros MX eliminaría todos aquellos que tienen el mismo o mayor valor en el campo PR.
  • SI TRADUCIMOS INVERSAMENTE,con zonas del tipo .in-addr.arpa, también necesitamos los glue records. Y sus registros no son del tipo A o AAAA (direcciones IP del tipo 4 o 6 respectivamente) sino PTR.
  • Para probar que funciona el servidor de nombre solo hay que poner nuestra dirección IP en el fichero /etc/resolv.conf precedido de la palabra reservada "nameserver", e intentar acceder a internet ya sea mediante el navegador o la orden "wget" que nos descarga la página a nuestra máquina.
Hasta aquí los consejos para la práctica de servidor de nombres. Espero que os sea útil.

Segunda parte de los consejos sobre las prácticas de la Asignatura de Servicios y Seguridad en Red. Esta práctica trata sobre la configuración del cortafuegos que trae Linux por defecto también conocido como IPtables.

Para la configuración de este servicio del núcleo tenemos que tener cuidado en el orden en el que introducimos las reglas de cortafuegos y del contenido de las mismas. Así que la solución más sencilla es crearse un script o fichero ejecutable que consta de las siguientes partes:
  1. Eliminado de todas las reglas de iptables. Como en esta asignatura solamente trabajamos con la tablas de filtro de paquetes (filter) y de traducción de direcciones (nat) nos bastará para borrarlas con:
    • iptables  -F #Borra la tabla de filtro
    • iptables -t nat -F #Borra la tabla de traducción de direcciones
  2. Establecimiento de las políticas. Iptables puede aceptar o eliminar paquetes teniendo en cuenta todas las reglas, pero si pasan todas las reglas habrá que tomar una desición, para eso están las políticas. Lo recomendable es ponerlo todo a DROP (ignora el mensaje) para saber que las reglas que establecemos en el siguiente punto funcionan, también se admite la política ACCEPT cuando el paquete lo enviamos nosotros. Pero si lo dejamos todo a DROP esta serían las reglas:
    • iptables -P INPUT DROP #Ignora los paquetes de entrada.
    • iptables -P OUTPUT DROP #Ignora los paquetes que enviamos.
    • iptables -P FORWARD DROP #Ignora los paquetes que vienen de una interfaz de red pero  a cuyo destino se llega por la otra interfaz de red que tiene nuestra máquina.
  3. A continuación establecemos las reglas de las tablas filter y nat tal y como se nos pida. Para reducir el número de reglas que tenenmos que poner es aconsejable utilizar las siguientes reglas:
    • iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #Permite la entrada de paquetes cuya conexión hemos establecido nosotros con un paquete de salida.
    • iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #Permite la salida de paquetes cuya conexión ha establecido una máquina distinta con un paquete de entrada que ha sido aceptado por las reglas de INPUT.
    • iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT #Permite el paso de paquetes que han establecido conexión con una de las máquinas de la red interna (por ejemplo).
  4. También es usual que se nos pida permitir paso a ciertos servicios como puede ser web, web segura, correo, ssh... para ello en vez de copiar y pegar la misma regla cambiando el puerto podemos usar la siguiente opción:
    • iptables -A INPUT -m multiport --dports 22,25,80,443 -j ACCEPT #Permite el acceso a los servicios de ssh, correo, web y web segura. Ojo cada puerto separados por comas SIN ESPACIOS POR MEDIO.
  5. En el caso de que se nos olvide el número de algún puerto siempre podemos echar un vistazo al fichero /var/services 
  6. Si trabajamos con un par de servidores de nombres primario-secundario hay que proporcionar el conjunto de reglas:
    • Que permitan la interrogación al servidor primario y al secundario. (Protocolo udp)
    • Que permitan la interrogación de los servidores a otros servidores de nombres.(Protocolo udp)
    • Que permitan la transferencia de ficheros entre el primario y el secundario (Protocolo tcp)
  7. Para finalizar el fichero incluimos la sentencia "service iptables save" que nos guardará el conjunto de reglas, seguido de "service iptables restart" o "service iptables stop; service iptables start"
  8. Una vez terminado el fichero que no se nos olvide darle permisos de ejecución con la orden "chmod u+x /<ruta al fichero>/<nombre del fichero>
  9. Ahora a ejecutarlo <ruta al fichero>/<nombre del fichero>
Espero que os haya sido útil!
Por si no lo habéis notado, Servicios y Seguridad en Red es la asignatura que más se le atraganta a los compañeros de la EII-ULPGC y uno de los motivos suele ser el temor al exámen de prácticas (me incluyo), por ello quiero ayudar poniéndo una serie de entradas con consejos. Ésta la primera así que ahí voy:

Práctica 1: Configurar el servidor DHCP para dar direcciones IP a las máquinas de la red interna:

La práctica está casi completamente resuelta en la página del manual que trae el propio servicio, lo único que haremos es copiar del man, pegar en el dhcpd.conf y cambiarle los datos:

Parte 1: para la red interna en general

  1. Abrimos la terminal y tecleamos "man dhcp". Se nos abrirá la página del manual correspondiente al servidor dhcp.
  2. Buscamos en la página de la siguiente forma: Pulsamos la tecla "Esc" de forma que en la parte de abajo de la terminarl aparecerán dos puntos a la espera que intoduzcamos un comando. Introducimos "/options". Pulsamos la tecla "n" para movernos entre todas las ocurrencias de esta palabra hasta que nos aparezca en negrita en la parte izquierda.
  3. Bajamos un poco en la página y nos aparecerá algo como esto:
  4. Abrimos otra pestaña de la terminal con la secuencia de teclas "Alt+Mayús+T" y tecleamos "gedit /etc/dhcp/dhcpd.conf & " (Ojo no cerréis esta pestaña de la terminal sin haber guardado los cambios).
  5. Ahora copiamos todo lo anterior ahí. Situamos el cursor delante de "max-lease-time" escribimos ";" y le damos a enter para que se mueva todo a la línea siguiente. De esta forma no dará error.
  6. ¡¡Hora de cambiar los datos!!
  7. Ya casi estamos, solo nos falta ir a "/etc/sysconfig/dhcp" e indicarle que escuche por la interfaz de la red interna.
 Parte 2: para una máquina en concreto dentro de la red interna.

  1. Repetir los pasos 1 y 2 de la primera parte.
  2. Debajo de lo que se muestra en la imágen del punto 3 de la primera parte se encuentra esta imagen:
  3.  Ahora tendremos que cambiar la direccion MAC que aparece tras "ethernet" por la de la máquina que queremos (si no la sabemos vamos a la máquina y tecleamos "ifconfig" buscamos la interfaz que da a la red, la dirección MAC es el dato que aparece tras "HWaddr")
  4. La opción "filename" es opcional. Lo que no podemos olvidar es el "domain-name-servers" (podemos poner el valor que se encuentra en el fichero "/etc/resolv.conf") puesto que de no ponerlo puede no salir a Internet.
Ya con estas "pistas" habremos terminado la práctica en un tiempo record.
    Continuamos con una serie de exámenes resueltos de la asignatura de Servicios y Seguridad en Red de tercero del Grado en Ingeniería Informática, que hemos resuelto entre unos compañeros, así que usen con cuidado :P.
    Hoy comienzo a publicar una serie de exámenes resueltos que hemos realizado unas compañeras y yo para prepararnos para el parcial de Servicios y Seguridad en Red y que por suerte suelen caer preguntas de estos parciales así que os animo a que los revisen.

El regalo que os traigo hoy es uno de los tesoros que escasean por la facultad de Ingeniería Informática: "preguntas de la asignatura de Servicios y Seguridad en Red".

Descarga: FileFactory :Wuolah