47
1 Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería Seguridad Linux Paso a Paso Seguridad Física, Seguridad en Servicios y Redundancia en Sistemas Informáticos (Ver. 1.1) Universidad Nacional de Ingeniería – Facultad de Ingeniería Mecánica - INFOUNI Centro de Cómputo INFOUNI

Seguridad Linux 1.1

Embed Size (px)

DESCRIPTION

Seguridad Linux 1.1

Citation preview

Page 1: Seguridad Linux 1.1

1 Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

Seguridad LinuxPaso a Paso

Seguridad Física, Seguridad en Servicios y Redundancia enSistemas Informáticos (Ver. 1.1)

Universidad Nacional de Ingeniería – Facultad de Ingeniería Mecánica - INFOUNI

Centro de Cómputo INFOUNI

Page 2: Seguridad Linux 1.1

2 Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

Seguridad Linux Paso a Paso

L. Muga Linux Registered User # 487284

Versión 1.1

Software: Debian 4 Linux, Debian 5 Linux.

Bajo Licencia Creative Commons: Reconocimiento - No comercial 2.5 Perú

Usted es libre de: Copiar, Distribuir, Comunicar públicamente la obra y realizar Obras Derivadas bajo las condiciones siguientes:

Reconocimiento: Debe reconocer los créditos de la obra de la manera especificada por el autor o licenciante.No comercial: No puede utilizar esta obra para fines comerciales.

Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor.Nada en esta licencia menoscaba o restringe los derechos morales del autor.

Composición: OpenOfficeVersiones:

Versión 1.1 : Revisión ortográfica, edición de capítulos anteriores.Versión 1.0 : Publicación del manual.

Puede encontrar la última versión del manual en la siguiente dirección: http://issuu.com/nemesisx666.

Centro de Cómputo INFOUNI

Page 3: Seguridad Linux 1.1

3 Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

Indice General1. Seguridad en el Host 5

1.1 Seguridad Física 5

1.1.1 Ubicación del Equipo y el Acceso Físico a El

1.1.2 El Centro de Operaciones de Red (NOC)

1.2 Seguridad del BIOS 6

1.2.1 Contraseña

1.2.2 Configuración de Dispositivos de Arranque

1.3 Planificando el Particionamiento, Instalación y Opciones de Montaje 10

1.3.1 Particiones a Utilizar y Opciones de Montaje

1.3.2 Instalando Debian Lenny

1.4 Instalación de Actualizaciones de Seguridad 11

1.5 Deshabilitando CTRL-ALT-Del 11

1.6 Seguridad LILO y GRUB 11

1.6.1 LILO

1.6.2 GRUB

1.7 Configurando el Banner de Advertencia 12

1.8 Uso de vlock 12

1.9 Creación de Cuentas de Usuarios 13

1.10 Sincronización Horaria 13

1.11 Restringiendo el Uso de Terminales para root 13

1.12 Uso de sudo 14

1.13 El bit SUID 14

1.14 Configuración de UMASK 15

1.15 Monitoreando el Sistema de archivos: integrit 15

2. Seguridad en la Red 16

2.1 Ssh – Shell Seguro 16

2.1.1Configurando el Banner de Advertencia

2.2 Escaner de Red y Puertos: nmap 17

2.2.1Características

3. Redundancia en Sistemas Informáticos 19

3.1 Arreglo Redundante de Discos Independientes – RAID 19

Centro de Cómputo INFOUNI

Page 4: Seguridad Linux 1.1

4 Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

3.1.1Ventajas de RAID

3.1.2Niveles de RAID

3.2 Gestor de Volúmnes Lógicos – LVM 35

3.3 Bonding 43

A. Monitor de Ancho de Banda – bwm-ng 45

B. KONBOOT 45

C. Restaurando Archivos Eliminados Accidentalmente 46

Bibliografía 47

Centro de Cómputo INFOUNI

Page 5: Seguridad Linux 1.1

5 Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

Capítulo 1 Seguridad en el Host

1.1 Seguridad FísicaSi un sistema es explotado remotamente siempre existe la posibilidad de ser reiniciado, reinstalado o de ser reconfigurado. Pero si es dañado físicamente puede ser el daño irreversible. Por eso la seguridad física debe ser su primer objetivo. Pese a que muchas de las medidas de seguridad fisica parecen obvias (puesto que la mayoria de ellas se basan en usar el sentido común), sistemáticamente los usuarios no las aplican.

1.1.1 Ubicación del Equipo y el Acceso Físico a Él

Los dos aspectos más importantes son: el lugar en que se encuentra ubicado el equipo y las personas que tienen acceso físico al mismo. Los especialistas en seguridad llevan mucho tiempo sosteniendo que si usuarios malintencionados tienen acceso físico, los controles de seguridad son inútiles y dicha afirmación es totalmente cierta. Salvo raras excepciones, casi todos los sistemas de computación son vulnerables a ataques in situ.

Desde luego, ataque puede significar muchas cosas en este contexto. Por ejemplo, imagine que ha dejado a algún usuario malintencionado solo con los servidores durante 10 segundos, es muy probable que éstos sufran daños importantes en ese intervalo de tiempo. El usuario podría realizar un rudimentario ataque de denegación de servicio desconectando cables, desconectando el hardware de la red o reiniciando los servidores (denegación de servicio es un estado que se produce cuando un usuario deja inoperativo un servidor de forma malintencionada haciendo que se deniegue el servicio a usuarios legitimos).

Pero estos actos casi nunca se dan en oficinas. Su mayor preocupación deberían ser los usuarios locales autorizados, los que tienen al menos autorización limitada para acceder al sistema. Se ha estimado que el 80 porciento de las intrusiones provienen del personal interno. El motivo es que dicho personal tiene acceso a información que los agresores externos a menudo no pueden obtener.

Pero no es la única ventaja que tiene el personal interno. La confianza es otra más. En muchas empresas, los empleados de confianza deambulan libremente sin temor a que se les haga preguntas. Después de todo, se supone que están en su sitio y a nadie se le ocurre cuestionar su presencia, a menos que entren en un área restringida. Asi que ¿cómo se puede proteger un sistema frente a los enemigos internos?

Las agencias gubernamentales y los proveedores de servicios de Internet tienen una gran experiencia en esta materia y merece la pena seguir su ejemplo. Si el sistema es para toda una empresa, se puede planificar un centro de operaciones de red (NOC).

Centro de Cómputo INFOUNI

Page 6: Seguridad Linux 1.1

6 Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

1.1.2 El Centro de Operaciones de Red (NOC)

Un NOC es un área restringida en la que se encuentran los servidores. Éstos suelen estar asegurados con pernos, fijados a bastidores o asegurados de alguna otra manera, junto con el hardware de red esencial. Idealmente, un NOC debería ser una oficina independiente a la que se tuviesen acceso muy pocas personas. Aquellas personas que estén autorizadas deberían tener claves (un buen método es el uso de tarjetas de acceso que incluso restrinjan el acceso de los usuarios autorizados a ciertas horas del día). Por último, merece la pena llevar un registro escrito de acceso y ordenar que incluso el personal autorizado firme al entrar y salir.

Asegúrese también de que el NOC o sala de computadoras cumpla con los siguientes requisitos:

1. Debe encontrarse dentro de otro espacio de la oficina y alejado del público; es preferible que no se encuentre en la planta baja.

2. La sala y los pasillos que conducen a ella deben ser totalmente opacos; sin puertas de cristal.

3. Las puertas de acceso deben tener un blindaje que incluya el cerco de la puerta. Esto evita que los intrusos fuercen la cerradura.

4. Si se emplea vigilancia (circuito cerrado de TV o imágenes instantáneas secuenciales), dirija la señal desde la cámara a un VCR remoto. Esto le garantiza que aunque los ladrones dañen el equipo y se lleven la cinta, seguirá teniendo pruebas.

5. Mantenga todos los dispositivos de almacenamiento en un lugar seguro, o aún mejor, en un lugar distinto.

Fuente de ayuda: Linux Máxima Seguridad

1.2 Seguridad del BIOS

1.2.1 Contraseña

Las contraseñas de la BIOS evitan que los usuarios malintencionados accedan a la configuración del sistema. Asegurese también que las contraseñas no coincidan con otras que ya utiliza en la red, lo que garantiza que si se rompen o consiguen la contraseña de la BIOS, las demás aplicaciones no queden expuestas a ataques.No es recomendable fiarse de las claves de la BIOS ya que tienen defectos propios, anulándose solo con colocar un jumper de la placa en un modo correcto. Para configurar una contraseña en el BIOS realizamos los siguientes pasos (las diferentes pantallas mostradas pueden variar en los distintos fabricantes):

Centro de Cómputo INFOUNI

Page 7: Seguridad Linux 1.1

7 Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

Figura 1.1: Encendemos nuestra computadora y presionamos la tecla correspondiente para el

ingreso a nuestro SETUP. Tecla F2 o Suprimir.

Figura 1.2: Nos ubicamos en la pestaña Seguridad y seleccionamos Clave de Supervisor y luego

Clave de Usuario.

Centro de Cómputo INFOUNI

Page 8: Seguridad Linux 1.1

8 Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

Figura 1.3: Ingresamos las claves y las confirmamos.

Figura 1.4: Las claves se han establecido correctamente.

Centro de Cómputo INFOUNI

Page 9: Seguridad Linux 1.1

9 Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

Figura 1.5: Configuramos para que se pida el ingreso del pasword en cada inicio del sistema.

1.2.2 Configuración de Dispositivos de Arranque

Para la instalación del sistema operativo necesitamos configurar como primer dispositivo de arranque al lector de discos u otro medio de instalación que utilicemos, una vez finalizada la instalación es totalmente recomendable que el único dispositivo al que se permita el arranque (booteo) sea únicamente el disco duro donde se aloja el nuevo sistema operativo.

Figura 1.6: Configuramos el orden de los dispositivos de arranque. en la pestaña Boot.

Centro de Cómputo INFOUNI

Page 10: Seguridad Linux 1.1

10 Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

1.3 Planificando el Particionamiento, Instalación y Opciones de Montaje

1.3.1 Particiones a Utilizar y Opciones de Montaje

1. /boot: Cargador del sistema operativo. Opciones: defecto 2. /: Raíz del sistema. Opciones: defecto. 3. /home: Datos de los usuarios. Opciones: escribir, modificar, leer, no ejecutar, prevenir

ejecución de aplicaciones con altos privilegios (nosuid). 4. /usr: Binarios y datos del sistema. Opciones: escribir bajo demanda. 5. /tmp: Datos temporales. Opciones: lectura, escritura, no ejecución, prevenir ejecución de

aplicaciones con altos privilegios (nosuid). 6. /var: Datos variables y temporales. Opciones: lectura, escritura, no ejecución. 7. /backup: Copias de seguridad del sistema. Opciones: lectura, escritura.

1.3.2 Instalando Debian Lenny

1. Configuramos dentro del BIOS de nuestro sistema la prioridad del dispositivo de arranque; asignando como principal a la lectora de discos.

2. Una vez que tengamos el disco de instalación introducido en nuestra lectora de discos o tengamos ya asignada la imagen en formato .iso en nuestra máquina virtual procedemos a reinciar el equipo (máquina virtual).

3. Procederá a cargar el disco (imagen) de instalación y nos mostrará el logo de Debian, que nos pedirá la pulsación de ENTER para continuar.

4. Ahora seleccionamos el idioma: Spanish (español). 5. Nuestro país: Perú. 6. La distribución del teclado: Latinoamericano. 7. Aquí se nos pedirá la configuración del interfaz de red del equipo, seleccionamos: No

configurar la red en este momento. 8. Introducimos el nombre de la máquina para la identificación en la red: seglinux. 9. En el tipo de particionado seleccionamos la opción: Manual. 10. Seleccionamos el disco (sda, hda). 11. Nos preguntará por la creación de la tabla de particiones del disco, seleccionamos: Si. 12. Una vez aquí, seleccionamos la opción ESPACIO LIBRE dentro del disco seleccionado. 13. Ahora: Crear una partición nueva. 14. Especificamos el tamaño de la partición. 15. Tipo de partición: Primario o Lógico. 16. La ubicación de la partición: Principio o Final del disco. 17. Aquí seleccionamos: el sistema de archivos, punto de montaje, las opciones de montaje y la

marca de arranque. 18. Una vez creadas las particiones necesarias (recomendadas /, /boot, /home, /var, /tmp, /usr,

/backup, swap) para nuestro sistema, seleccionamos: Finalizar el particionado y escribir los cambios en el disco.

19. En la confirmación para la escritura de cambios en el disco, seleccionamos: Si. 20. Escribimos la contraseña para root.

Centro de Cómputo INFOUNI

Page 11: Seguridad Linux 1.1

11 Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

21. Confirmamos la contraseña. 22. Escribimos un nombre de cuenta de usuario para las tareas no administrativas del sistema:

seglinux. 23. Ahora especificamos el nombre del dueño de la cuenta: seglinux. 24. La contraseña para seglinux. 25. Confirmamos ahora la contraseña. 26. Nos mostrará ahora el progreso de la instalación del sistema. 27. Para el uso de una réplica de red seleccionamos: No. 28. En la entradas comentadas para security.debian.org, seleccionamos: Continuar. 29. En la selección de programas, quitamos las marcas de selección a todos los programas y

luego seleccionamos: Continuar. 30. En la instalación de GRUB en el registro principal seleccionamos: Si. 31. En esta etapa ya se ha terminado con la instalación del sistema, seleccionamos: Continuar. 32. Procederá a reiniciar el sistema y luego nos aparecerá el prompt del sistema esperando el

ingreso de un usuario del sistema y su contraseña correspondiente.

1.4 Instalación de Actualizaciones de Seguridad1. Ingresamos al archivo sources.list:

1. vim /etc/apt/sources.list 2. Agregamos las líneas correspondientes a los repositorios de seguridad de Debian:

1. deb http://security.debian.org/ lenny/updates main contrib2. deb-src http://security.debian.org/ lenny/updates main contrib

3. Actualizamos la base de datos local de paquetes: 1. apt-get update

4. Ahora procedemos a actualizar nuestro sistema: 1. apt-get upgrade

1.5 Deshabilitando CTRL-ALT-DelSi no deseamos que cualquiera que tenga acceso a la consola pueda reiniciar el equipo, procederemos a deshabilitar la combinación de teclas CTRL+ALT+Del:

1. Abrimos el archivo inittab: 1. vim /etc/inittab

2. Ubicamos la línea ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now y la comentamos: 1. #ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now

3. Volvemos a leer el archivo inittab: 1. telinit q

1.6 Seguridad LILO y GRUB

1.6.1 LILO

LILO es un gestor de arranque más simple que GRUB. No contiene interfaz de comandos, quitando al atacante la opción de obtener acceso al sistema antes de que el núcleo sea cargado. Para

Centro de Cómputo INFOUNI

Page 12: Seguridad Linux 1.1

12 Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

proteger con contraseña LILO realizaremos lo siguiente:

1. Abrimos el archivo de configuración de LILO: 1. vim /etc/lilo.conf

2. En la sección: image, agregamos el password: 1. password=CLAVE.LILO

3. Ejecutamos el siguiente comando para aplicar los cambios realizados: 1. lilo -v

4. El archivo /etc/lilo.conf puede ser leido por todos los usuarios. Es esencial que solo permita al usuario root la lectura y escritura sobre dicho archivo.

1.6.2 GRUB

El gestor de arranque GRUB, permite la realización de operaciones que pueden comprometer nuestro sistema ante un atacante, por ejemplo: modificación del dispositivo de arranque sin contar con la contraseña de root. Para evitar este tipo de vulnerabilidades colocamos una contraseña a nuestro gestor de arranque que impida la modificación directa del mismo.

1. Escriba en la consola lo siguiente: grub-md5-crypt, luego tendrá que escribir la contraseña que empleará para GRUB. Luego de confirmar la contraseña se le devolverá un hash MD5 con la contraseña (puede utilizar la herramienta gpm para copiar con mayor facilidad el hash generado):

1. grub-md5-crypt 2. Abrimos el archivo menu.lst:

1. vim /boot/grub/menu.lst 3. Añadimos la siguiente línea para la habilitación de la contraseña para GRUB:

1. password -md5 HASH.GENERADO 4. Modificamos los permisos de menu.lst, de manera que los usuarios no privilegiados

accedan al hash: 1. chmod o-r /boot/grub/menu.lst

5. Hacemos efectivos los cambios: 1. update-grub

1.7 Configurando el Banner de AdvertenciaConfiguramos un mensaje personalizado que se mostrará en cada inicio de sesión en la consola, advirtiendo por ejemplo que el personal no autorizado será sancionado si ejecuta tareas maliciosas.

1. Abrimos el archivo issue y colocamos nuestro mensaje: 1. vim /etc/issue

1.8 Uso de vlockHerramienta que nos permite el bloqueo de las consolas de sistema y el intercambio de ellas. Muy necesario cuando tenemos unas gran cantidad de usuarios con acceso a la consola. Procederemos a instalar y ver las opciones de dicha herramienta:

1. Instalamos vlock:

Centro de Cómputo INFOUNI

Page 13: Seguridad Linux 1.1

13 Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

1. apt-get install vlock 2. Ejecutamos el comando vlock para bloquear la consola actual. 3. Si usamos la opción -a bloquearemos todas las consolas y el intercambio entre ellas

(switching).

1.9 Creación de Cuentas de UsuarioLa cuenta root debe ser utilizada únicamente para tareas de administración del sistema. Si el administrador necesita una cuenta para trabajar sobre el equipo puede crearse una cuenta de usuario con permisos para algunas tareas administrativas más comunes; además, debemos de especificar que usuarios necesitan acceso al servidor y que operaciones pueden estar permitidas para ellos (el manejo del comando sudo se especifica en el capítulo: 1.14. Uso de sudo).

1. Para la creación de cuentas de usario usaremos el comando adduser. Crearemos la cuenta para el usuario seglinux:

1. adduser seglinux 2. Luego se nos pide el ingreso de la contraseña para el usuario y su confirmación:

1. Introduzca la nueva contraseña de UNIX:2. Vuelva a escribir la nueva contraseña de UNIX:

3. Se nos presenta una serie de campos a rellenar de acuerdo a los requisitos. 4. Una vez finalizado se nos pide confirmación de la información ingresada.

1.10 Sincronización Horaria1. Verificamos la variable UTC en el archivo /etc/default/rcS (UTC=yes). 2. Configuramos nuestra zona horaria con el comando:

1. tzselect 3. Colocamos una hora referencial en el reloj del hardware con el siguiente comando (fecha

en formato inglés (mm/dd/aaaa)): 1. hwclock -set -date="07/25/2009 23:23:02"

4. Enviamos el reloj de hardware al reloj de software: 1. hwclock -hctosys

5. Instalamos el paquete ntpdate: 1. apt-get install ntpdate

6. Modificamos la siguiente opción NTPDATE_USE_NTP_CONF=yes aNTPDATE_USE_NTP_CONF=no del archivo de configuración de ntpdate:

1. vim /etc/default/ntpdate2. NTPDATE_USE_NTP_CONF=no

7. Luego sincronizamos la hora del sistema con el comando: 1. ntpdate-debian

8. Podemos añadir el proceso a crontab para que se ejecute de manera automática.

1.11 Restringiendo el Uso de Terminales para rootEl archivo securetty especifica a que consolas (TTY) puede acceder (login) el usuario root. Simplemente comentando las consolas que deseamos bloquear:

Centro de Cómputo INFOUNI

Page 14: Seguridad Linux 1.1

14 Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

1. Abrimos el archivo securetty: 1. vim /etc/securetty

2. Comentamos las consolas a las que deseamos restringir el acceso a el usuario root. Por ejemplo, permitimos el acceso a la consola 6:

#tty1#tty2#tty3#tty4#tty5tty6

1.12 Uso de sudoEs una herramienta que permite a los usuarios comunes realizar tareas que requieran privilegios de administración. Podremos configurar también:

1. La ejecución de acciones como otros usuarios. 2. Registro de acciones realizadas. 3. Restricciones horarias, etc.

Vamos ahora a instalar y configurar dicha herramienta:

1. Instalamos el paquete sudo: 1. apt-get install sudo

2. Abrimos el archivo sudoers (por defecto usa el editor nano, si deseamos usar vim debemos exportar la variable editor: export EDITOR=vim):

1. visudo 3. Ingresamos al final de archivo la siguiente línea:

1. usuario ALL=(ALL) NOPASSWD:/PASSWD: ALL/comando - usuario: Especifica a que usuario se le asignará los privilegios.- NOPASSWD:/PASSWD:: Indica si la ejecución del comando se hará sin o con la verificación de la contraseña del usuario .- ALL/comando: Permite todos los privilegios (no se reomienda) o solo la ejecución de el comando especificado.

4. Por ejemplo vamos a permitir al usuario INFOUNI la actualización de la base de datos de paquetes (apt-get update) con la verificación de su contraseña:

1. INFOUNI ALL=(ALL) PASSWD: /usr/bin/apt-get update

1.13 El Bit SUIDEl bir SUID permite a cualquier usuario tener permiso sobre la ejecución de un archivo como si fuese el usuario dueño. Si algún programa con el bit SUID llegase a tener un bug de programación podría ser explotado por el atacante que haya logrado ingresar a nuestro sistema.

1. Ubicamos todos los binarios que posean el bit SUID: 1. find / -path /proc -prune -o -typef -perm +6000 -ls

2. De toda esa lista los archivos totalmente necesarios con el bit SUID son: 1. passwd

Centro de Cómputo INFOUNI

Page 15: Seguridad Linux 1.1

15 Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

2. login3. unix_chkpwd

3. Para el resto se debería de evaluar los beneficios sobre los demás usuarios. 4. Retiramos el bit SUID de los demás binarios:

chmod ug-s /ruta/binario1 /ruta/binario2

1.14 Configuración de UMASKEs un comando que nos permite configurar los permisos por defecto a la hora de crear un archivo en el sistema, es el complemento octal de los permisos.

1. Abrimos el archivo profile del usuario root: 1. vim /etc/profile

2. Configuramos la opción UMASK: 1. umask 077

3. Con umask 077 deshabilitamos todos los permisos al resto de usuarios (grupo y otros) excepto para root que posee permisos de lectura, escritura y ejecución.

1.15 Monitoreando el Sistema de Archivos: integritIntegrit nos permite verificar que los archivos y binarios instalados en nuestro equipo no hayan sido cambiados por un atacante con el fin de esconder rootkits, ejecutar sniffers, etc. Funciona de la siguiente manera: crea una base de datos, en la que se almacena cada archivo de nuestro equipo con su respectivo checksum. En cualquier momento, nosotros podemos ejecutar una nueva verificación del sistema que comparará la información anterior con la actual, mostrando las diferencias existentes.

1. Instalamos integrit: 1. apt-get install integrit

2. Abrimos el archivo de configuración: 1. vim /etc/integrit/integrit.conf

3. Eliminamos los comentarios de las siguiente líneas: root=/

known=/var/lib/integrit/known.cdbcurrent=/var/lib/integrit/current.cdb

!/cdrom!/mnt

!/floppy!/dev!/etc

!/home!/lost+found

!/proc!/tmp!/var!/sys

Centro de Cómputo INFOUNI

Page 16: Seguridad Linux 1.1

16 Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

- root=/: Directorio padre desde donde se controlarán los cambios realizados en el sistema de archivos.- known=/var/lib/integrit/known.cdb: Ruta donde se almacena la base de datos de checksum de los archivos.- current=/var/lib/integrit/current.cdb: Ruta donde se generará la base de datos al hacer una actualización.- !/cdrom, !/mnt, !/floppy, !/dev, !/etc, !/home, !/lost+found, !/proc, !/tmp, !/var, !/sys: Directorios que no queremos verificar debido a su constante cambio.

4. Ahora creamos la base inicial de integrit: 1. integrit -C /etc/integrit/integrit.conf -u

5. Movemos la base de datos inicial creada: 1. mv /var/lib/integrit/current.cdb /var/lib/integrit/known.cdb

6. Para verificar la integridad de los archivos ejecutamos: 1. integrit -C /etc/integrit/integrit.conf -c

Capítulo 2 Seguridad en la Red

2.1 SSH - Shell SeguroInstalamos el servidor SSH para el acceso remoto al equipo de manera segura. Vamos a instalar y configurar el servicio:

1. Instalamos el servidor Openssh-server: 1. apt-get install openssh-server

2. Abrimos el archivo sshd_config: 1. vim /etc/ssh/sshd_config

3. Por defecto el servidor escucha sobre todas la redes, podemos configurarlo por ejemplo para que solo permita los accesos desde nuestra red local (considerando que nuestro servidor tiene configurado en su interfaz para la red local la IP: 192.168.50.1):

ListenAddress 0.0.0.0 Por:

ListenAddress 192.168.50.1 4. Podemos deshabilitar el logueo como root:

PermitRootLogin yes Cambiamos el yes por no:

PermitRootLogin no 5. Podemos también restringir el acceso de usuarios mediante el parámetro AllowUsers (en

caso de que no se encuentre en el archivo de configuración lo creamos al final): AllowUsers seglinux seglinux2

Adicionalmente restringimos el acceso de los usuarios solo desde sus terminales o ciertos host de la red:

AllowUsers [email protected] [email protected] 6. Reiniciamos nuestro servicio:

Centro de Cómputo INFOUNI

Page 17: Seguridad Linux 1.1

17 Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

1. /etc/init.d/ssh restart

2.1.1 Configurando el Banner de Advertencia

Configuramos un mensaje personalizado que se mostrará en cada inicio de sesión en red, advirtiendo por ejemplo que el personal no autorizado será sancionado si ejecuta tareas no autorizadas.

1. Abrimos el archivo issue.net y colocamos nuestro mensaje: 1. vim /etc/issue.net

2. Abrimos el archivo sshd_config: 1. vim /etc/ssh/sshd_config

3. Asociamos el archivo issue.net quitando el comentario a la siguiente línea: 1. # Banner /etc/issue.net2. Banner /etc/issue.net

4. Reiniciamos nuestro servicio: 1. /etc/init.d/ssh restart

2.2 Escaner de Red y Puertos: nmapNmap es un programa de código abierto que sirve para efectuar rastreo de puertos. Escrito originalmente por Gordon Lyon (más conocido por su alias Fyodor Vaskovich). Se usa para evaluar la seguridad de sistemas informáticos, así como para descubrir servicios o servidores en una red informática.

2.2.1 Características

1. Descubrimiento de servidores: Identifica computadoras en una red, por ejemplo listando aquellas que responden ping.

2. Identifica puertos abiertos en una computadora objetivo. 3. Determina qué servicios está ejecutando la misma. 4. Determinar qué sistema operativo y versión utiliza dicha computadora, (esta técnica es

también conocida como fingerprinting). 5. Obtiene algunas características del hardware de red de la máquina objeto de la prueba.

Fuente: http://es.wikipedia.org/

Realizaremos pequeñas pruebas con el software nmap:

1. Escaneamos la red 192.168.1.0 para : 1. nmap -sP 192.168.1.0/24

Centro de Cómputo INFOUNI

Page 18: Seguridad Linux 1.1

18 Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

Esto escaneará todas las direcciones de la red 192.168.1.0 El atributo -sP indica que será un escaneo mediante ping. Envia un ping (ICMP echo request) y un paquete TCP ACK al puerto 80. Si el destino contesta con otro ping o con un paquete TCP RST significa que se encuentra operativo.

2. Descubriendo servicios en un host: 1. nmap -p 25,80,1000-4000 192.168.1.254

Escaneamos el puerto 25,80 y del 1000 al 4000 del host 192.168.1.254.

3. Fingerprinting:

1. nmap -O 192.168.1.254

Nmap puede averiguar el sistema operativo del objetivo usando las pequeñas diferencias en la implementacion de los protocolos. Aunque siguen el mismo estandard al programar los sistemas, existen algunas variantes que usa Nmap para determinar el sistema operativo para ver como responde a ciertas secuencias TCP/IP. El atributo es -O.

Centro de Cómputo INFOUNI

Page 19: Seguridad Linux 1.1

19 Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

4. Fingerprinting comprobando el software instalado en el equipo: 1. nmap -sV -O -p 22,25,3306 localhost

Referencia: Manual de escaneo de redes para sistemas GNU/Linux y Windows - Marco A. Frias B.

Capítulo 3 Redundancia en Sistemas Informáticos

3.1 Arreglo Redundante de Discos Independientes - RAIDEn la actualidad es normal que los sistemas estén funcionando de forma permanente las 24 horas. Un fallo en un disco supone la pérdida de acceso a los datos hasta que éste ha sido repuesto y la información restaurada a través de la copia de seguridad. Una vez recuperado el sistema, toda la información generada en el tiempo transcurrido entre la última copia de seguridad y el instante del fallo, se ha perdido de forma irremediable. El coste del tiempo de no utilización del sistema, más el coste de la información perdida en dicho intervalo es muy elevado. La tecnología RAID asegura la integridad de los datos ante la eventual avería de uno de los discos, asegurando un funcionamiento continuo y permitiendo incluso la substitución de la unidad defectuosa sin necesidad de detener los procesos que se estén ejecutando.

RAID es un método de combinación de varios discos duros para formar una única unidad lógica en la que se almacenan los datos de forma redundante. Ofrece mayor tolerancia a fallos y más altos niveles de rendimiento que un sólo disco duro o un grupo de discos duros independientes. Una matriz consta de dos o más discos duros que ante el sistema principal funcionan como un único dispositivo. Un RAID, para el sistema operativo, aparenta ser un sólo disco duro lógico (LUN). Los datos se desglosan en fragmentos que se escriben en varias unidades de forma simultánea. En este método, la información se reparte entre varios discos, usando técnicas como el entrelazado de bloques (RAID nivel 0) o la duplicación de discos (RAID nivel 1) para proporcionar redundancia, reducir el tiempo de acceso, y/o obtener mayor ancho de banda para leer y/o escribir, así como la posibilidad de recuperar un sistema tras la avería de uno de los discos.

La tecnología RAID protege los datos contra el fallo de una unidad de disco duro. Si se produce un fallo, RAID mantiene el servidor activo y en funcionamiento hasta que se sustituya la unidad defectuosa. La tecnología RAID se utiliza también con mucha frecuencia para mejorar el rendimiento de servidores y estaciones de trabajo. Estos dos objetivos, protección de datos y mejora del rendimiento, no se excluyen entre sí. RAID ofrece varias opciones, llamadas niveles RAID, cada una de las cuales proporciona un equilibrio distinto entre tolerancia a fallos, rendimiento y coste. Todos los sistemas RAID suponen la pérdida de parte de la capacidad de almacenamiento de los discos, para conseguir la redundancia o almacenar los datos de paridad. Los sistemas RAID profesionales deben incluir los elementos críticos por duplicado: fuentes de alimentación y ventiladores redundantes y Hot Swap. De poco sirve disponer de un sistema tolerante al fallo de un disco si después falla por ejemplo una fuente de alimentación que provoca

Centro de Cómputo INFOUNI

Page 20: Seguridad Linux 1.1

20 Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

la caída del sistema. También cada vez es más recomendable, sobre todo en instalaciones de cluster, configuraciones de dos controladoras redundantes y Hot Swap, de manera que en el caso de fallo de una de ellas se puede proceder a su sustitución sin tener que detener el funcionamiento del sistema. Además, esta configuración con controladoras redundantes nos permite conectar el sistema RAID a diferentes servidores simultáneamente.

3.1.1 Ventajas de RAID

RAID proporciona tolerancia a fallos, mejora el rendimiento del sistema y aumenta la productividad.

1. Tolerancia a fallos: RAID protege contra la pérdida de datos y proporciona recuperación de datos en tiempo real con acceso interrumpido en caso de que falle un disco.

2. Mejora del Rendimiento/Velocidad: Una matriz consta de dos o más discos duros que ante el sistema principal funcionan como un único dispositivo. Los datos se desglosan en fragmentos que se escriben en varias unidades de forma simultánea. Este proceso, denominado fraccionamiento de datos, incrementa notablemente la capacidad de almacenamiento y ofrece mejoras significativas de rendimiento. RAID permite a varias unidades trabajar en paralelo, lo que aumenta el rendimiento del sistema.

3. Mayor Fiabilidad: Las soluciones RAID emplean dos técnicas para aumentar la fiabilidad: la redundancia de datos y la información de paridad. La redundancia implica el almacenamiento de los mismos datos en más de una unidad. De esta forma, si falla una unidad, todos los datos quedan disponibles en la otra unidad, de inmediato. Aunque este planteamiento es muy eficaz, también es muy costoso, ya que exige el uso de conjuntos de unidades duplicados. El segundo planteamiento para la protección de los datos consiste en el uso de la paridad de datos. La paridad utiliza un algoritmo matemático para describir los datos de una unidad. Cuando se produce un fallo en una unidad se leen los datos correctos que quedan y se comparan con los datos de paridad almacenados por la matriz. El uso de la paridad para obtener fiabilidad de los datos es menos costoso que la redundancia, ya que no requiere el uso de un conjunto redundante de unidades de disco.

4. Alta Disponibilidad: RAID aumenta el tiempo de funcionamiento y la disponibilidad de la red. Para evitar los tiempos de inactividad, debe ser posible acceder a los datos en cualquier momento. La disponibilidad de los datos se divide en dos aspectos: la integridad de los datos y tolerancia a fallos. La integridad de los datos se refiere a la capacidad para obtener los datos adecuados en cualquier momento. La mayoría de las soluciones RAID ofrecen reparación dinámica de sectores, que repara sobre la marcha los sectores defectuosos debidos a errores de software. La tolerancia a fallos, el segundo aspecto de la disponibilidad, es la capacidad para mantener los datos disponibles en caso de que se produzcan uno o varios fallos en el sistema.

3.1.2 Niveles de RAID

La elección de los diferentes niveles de RAID va a depender de las necesidades del usuario en lo que respecta a factores como seguridad, velocidad, capacidad, coste, etc. Cada nivel de RAID ofrece una combinación específica de tolerancia a fallos (redundancia), rendimiento y coste, diseñadas para satisfacer las diferentes necesidades de almacenamiento. La mayoría de los niveles RAID pueden satisfacer de manera efectiva sólo uno o dos de estos criterios. No hay un nivel de

Centro de Cómputo INFOUNI

Page 21: Seguridad Linux 1.1

21 Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

RAID mejor que otro; cada uno es apropiado para determinadas aplicaciones y entornos informáticos. De hecho, resulta frecuente el uso de varios niveles RAID para distintas aplicaciones del mismo servidor. Oficialmente existen siete niveles diferentes de RAID (0-6), definidos y aprobados por el el RAID Advisory Board (RAB). Luego existen las posibles combinaciones de estos niveles (10, 50, etc.). Los niveles RAID 0, 1, 0+1 y 5 son los más populares.

1. RAID 0: Disk Striping "La más alta transferencia, pero sin tolerancia a fallos": También conocido como ßeparación ó fraccionamiento/ Striping". Los datos se desglosan en pequeños segmentos y se distribuyen entre varias unidades. Este nivel de ärray" o matriz no ofrece tolerancia al fallo. Al no existir redundancia, RAID 0 no ofrece ninguna protección de los datos. El fallo de cualquier disco de la matriz tendría como resultado la pérdida de los datos y sería necesario restaurarlos desde una copia de seguridad. Por lo tanto, RAID 0 no se ajusta realmente al acrónimo RAID. Consiste en una serie de unidades de disco conectadas en paralelo que permiten una transferencia simultánea de datos a todos ellos, con lo que se obtiene una gran velocidad en las operaciones de lectura y escritura. La velocidad de transferencia de datos aumenta en relación al número de discos que forman el conjunto. Esto representa una gran ventaja en operaciones secuenciales con ficheros de gran tamaño. Por lo tanto, este array es aconsejable en aplicaciones de tratamiento de imágenes, audio, video o CAD/CAM, es decir, es una buena solución para cualquier aplicación que necesite un almacenamiento a gran velocidad pero que no requiera tolerancia a fallos. Se necesita un mínimo de dos unidades de disco para implementar una solución RAID 0.

2. RAID 1: Mirroring "Más rápido que un disco y más seguro": También llamado "Mirroring" o "Duplicación" (Creación de discos en espejo). Se basa en la utilización de discos adicionales sobre los que se realiza una copia en todo momento de los datos que se están modificando. RAID 1 ofrece una excelente disponibilidad de los datos mediante la redundancia total de los mismos. Para ello, se duplican todos los datos de una unidad o matriz en otra. De esta manera se asegura la integridad de los datos y la tolerancia al fallo, pues en caso de avería, la controladora sigue trabajando con los discos no dañados sin detener el sistema. Los datos se pueden leer desde la unidad o matriz duplicada sin que se produzcan interrupciones. RAID 1 es una alternativa costosa para los grandes sistemas, ya que las unidades se deben añadir en pares para aumentar la capacidad de almacenamiento. Sin embargo, RAID 1 es una buena solución para las aplicaciones que requieren redundancia cuando hay sólo dos unidades disponibles. Los servidores de archivos pequeños son un buen ejemplo. Se necesita un mínimo de dos unidades para implementar una solución RAID 1.

3. RAID 0+1/ RAID 0/1 ó RAID 10: Ämbos mundos": Combinación de los arrays anteriores que proporciona velocidad y tolerancia al fallo simultáneamente. El nivel de RAID 0+1 fracciona los datos para mejorar el rendimiento, pero también utiliza un conjunto de discos duplicados para conseguir redundancia de datos. Al ser una variedad de RAID híbrida, RAID 0+1 combina las ventajas de rendimiento de RAID 0 con la redundancia que aporta RAID 1. Sin embargo, la principal desventaja es que requiere un mínimo de cuatro unidades y sólo dos de ellas se utilizan para el almacenamiento de datos. Las unidades se deben añadir en pares cuando se aumenta la capacidad, lo que multiplica por dos los costes de almacenamiento. El RAID 0+1 tiene un rendimiento similar al RAID 0 y puede tolerar el fallo de varias unidades de disco. Una configuración RAID 0+1 utiliza un número par de discos (4,

Centro de Cómputo INFOUNI

Page 22: Seguridad Linux 1.1

22 Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

6, 8) creando dos bloques. Cada bloque es una copia exacta del otro, de ahí RAID 1, y dentro de cada bloque la escritura de datos se realiza en modo de bloques alternos, el sistema RAID 0. RAID 0+1 es una excelente solución para cualquier uso que requiera gran rendimiento y tolerancia a fallos, pero no una gran capacidad. Se utiliza normalmente en entornos como servidores de aplicaciones, que permiten a los usuarios acceder a una aplicación en el servidor y almacenar datos en sus discos duros locales, o como los servidores web, que permiten a los usuarios entrar en el sistema para localizar y consultar información. Este nivel de RAID es el más rápido, el más seguro, pero por contra el más costoso de implementar.

4. RAID 2: Äcceso paralelo con discos especializados. Redundancia a través del código Hamming": El RAID nivel 2 adapta la técnica comúnmente usada para detectar y corregir errores en memorias de estado sólido. En un RAID de nivel 2, el código ECC (Error Correction Code) se intercala a través de varios discos a nivel de bit. El método empleado es el Hamming. Puesto que el código Hamming se usa tanto para detección como para corrección de errores (Error Detection and Correction), RAID 2 no hace uso completo de las amplias capacidades de detección de errores contenidas en los discos. Las propiedades del código Hamming también restringen las configuraciones posibles de matrices para RAID 2, particularmente el cálculo de paridad de los discos. Por lo tanto, RAID 2 no ha sido apenas implementado en productos comerciales, lo que también es debido a que requiere características especiales en los discos y no usa discos estándares. Debido a que es esencialmente una tecnología de acceso paralelo, RAID 2 está más indicado para aplicaciones que requieran una alta tasa de transferencia y menos conveniente para aquellas otras que requieran una alta tasa de demanda I/O.

5. RAID 3: Äcceso síncrono con un disco dedicado a paridad": Dedica un único disco al almacenamiento de información de paridad. La información de ECC (Error Checking and Correction) se usa para detectar errores. La recuperación de datos se consigue calculando el O exclusivo (XOR) de la información registrada en los otros discos. La operación I/O accede a todos los discos al mismo tiempo, por lo cual el RAID 3 es mejor para sistemas de un sólo usuario con aplicaciones que contengan grandes registros. RAID 3 ofrece altas tasas de transferencia, alta fiabilidad y alta disponibilidad, a un coste intrínsicamente inferior que un Mirroring (RAID 1). Sin embargo, su rendimiento de transacción es pobre porque todos los discos del conjunto operan al unísono. Se necesita un mínimo de tres unidades para implementar una solución RAID 3.

6. RAID 4: Äcceso Independiente con un disco dedicado a paridad": Basa su tolerancia al fallo en la utilización de un disco dedicado a guardar la información de paridad calculada a partir de los datos guardados en los otros discos. En caso de avería de cualquiera de las unidades de disco, la información se puede reconstruir en tiempo real mediante la realización de una operación lógica de O exclusivo. Debido a su organización interna, este RAID es especialmente indicado para el almacenamiento de ficheros de gran tamaño, lo cual lo hace ideal para aplicaciones gráficas donde se requiera, además, fiabilidad de los datos. Se necesita un mínimo de tres unidades para implementar una solución RAID 4. La ventaja con el RAID 3 está en que se puede acceder a los discos de forma individual.

7. RAID 5: Äcceso independiente con paridad distribuida": Este array ofrece tolerancia al fallo, pero además, optimiza la capacidad del sistema permitiendo una utilización de hasta el 80 porciento de la capacidad del conjunto de discos. Esto lo consigue mediante el cálculo de información de paridad y su almacenamiento alternativo por bloques en todos los discos

Centro de Cómputo INFOUNI

Page 23: Seguridad Linux 1.1

23 Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

del conjunto. La información del usuario se graba por bloques y de forma alternativa en todos ellos. De esta manera, si cualquiera de las unidades de disco falla, se puede recuperar la información en tiempo real, sobre la marcha, mediante una simple operación de lógica de O exclusivo, sin que el servidor deje de funcionar.Así pues, para evitar el problema de cuello de botella que plantea el RAID 4 con el disco de comprobación, el RAID 5 no asigna un disco específico a esta misión sino que asigna un bloque alternativo de cada disco a esta misión de escritura. Al distribuir la función de comprobación entre todos los discos, se disminuye el cuello de botella y con una cantidad suficiente de discos puede llegar a eliminarse completamente, proporcionando una velocidad equivalente a un RAID 0.RAID 5 es el nivel de RAID más eficaz y el de uso preferente para las aplicaciones de servidor básicas para la empresa. Comparado con otros niveles RAID con tolerancia a fallos, RAID 5 ofrece la mejor relación rendimiento-coste en un entorno con varias unidades. Gracias a la combinación del fraccionamiento de datos y la paridad como método para recuperar los datos en caso de fallo, constituye una solución ideal para los entornos de servidores en los que gran parte del E/S es aleatoria, la protección y disponibilidad de los datos es fundamental y el coste es un factor importante. Este nivel de array es especialmente indicado para trabajar con sistemas operativos multiusuarios.Se necesita un mínimo de tres unidades para implementar una solución RAID 5.Los niveles 4 y 5 de RAID pueden utilizarse si se disponen de tres o más unidades de disco en la configuración, aunque su resultado óptimo de capacidad se obtiene con siete o más unidades. RAID 5 es la solución más económica por megabyte, que ofrece la mejor relación de precio, rendimiento y disponibilidad para la mayoría de los servidores.

8. RAID 6: Äcceso independiente con doble paridad": Similar al RAID 5, pero incluye un segundo esquema de paridad distribuido por los distintos discos y por tanto ofrece tolerancia extremadamente alta a los fallos y a las caídas de disco, ofreciendo dos niveles de redundancia. Hay pocos ejemplos comerciales en la actualidad, ya que su coste de implementación es mayor al de otros niveles RAID, ya que las controladoras requeridas que soporten esta doble paridad son más complejas y caras que las de otros niveles RAID. Así pues, comercialmente no se implementa.

Fuente: http://www.smdata.com

Nuestro escenario se desarrolla en una nueva máquina virtual con solo un disco duro (sda) al que configuraremos 3 particiones básicas (/boot, / y swap); cada una como miembro de un multidisco (MD) RAID 1. Una vez finalizada la configuración de las particiones y la instalacion del sistema operativo, se le agregará un segundo disco (sdb) que luego configuraremos para formar parte del RAID. Como prueba final debemos apagar el equipo (una vez realizado la sincronización de la información en el segundo disco y haber instalado GRUB), retirar el primer disco y encender el equipo.

1. Configuramos dentro de la BIOS de nuestro sistema la prioridad del dispositivo de arranque; asignando como principal a la lectora de discos.

2. Una vez que tengamos el disco de instalación introducido en nuestra lectora de discos o tengamos ya asignada la imagen en formato .iso en nuestra máquina virtual procedemos a reinciar el equipo (máquina virtual).

3. Procederá a cargar el disco (imagen) de instalación y nos mostrará el logo de Debian, que

Centro de Cómputo INFOUNI

Page 24: Seguridad Linux 1.1

24 Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

nos pedirá la pulsación de ENTER para continuar. 4. Ahora seleccionamos el idioma: Spanish (español). 5. Nuestro país: Perú. 6. La distribución del teclado: Latinoamericano. 7. Aquí se nos pedirá la configuración del interfaz de red del equipo, seleccionamos: No

configurar la red en este momento. 8. Introducimos el nombre de la máquina para la identificación en la red: seglinux. 9. En el tipo de particionado seleccionamos la opción: Manual y definimos cada partición

como volumen para RAID:

Figura 3.1: Seleccionamos el disco duro a particionar.

Figura 3.2: Creamos una nueva tabla de particiones en el disco.

Figura 3.3: Ahora seleccionamos el espacio libre del disco y Enter.

Centro de Cómputo INFOUNI

Page 25: Seguridad Linux 1.1

25 Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

Figura 3.4: Creamos la primera partición.

Figura 3.5: Creamos la partición con 256 MB para /boot.

Figura 3.6: En tipo de partición seleccionamos: Primaria.

Centro de Cómputo INFOUNI

Page 26: Seguridad Linux 1.1

26 Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

Figura 3.7: Ubicamos la partición al inicio del disco.

Figura 3.8: En la ventana Configuración de la Partición, seleccionamos la opción: Utilizar

como.

Figura 3.9: En la ventana siguiente seleccionamos: Volumen físico para RAID.

Figura 3.10: Activamos la marca de arranque.

Centro de Cómputo INFOUNI

Page 27: Seguridad Linux 1.1

27 Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

Figura 3.11: Seleccionamos el espacio libre en el disco y procedemos a crear la segunda

partición.

Figura 3.12: Seleccionamos: Crear nueva partición.

Figura 3.13: Elegimos un tamaño de 5 GB.

Figura 3.14: En tipo de partición seleccionamos: Lógica.

Centro de Cómputo INFOUNI

Page 28: Seguridad Linux 1.1

28 Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

Figura 3.15: Ubicamos la partición al inicio del espacio disponible.

Figura 3.16: En la ventana Configuración de la Partición, seleccionamos la opción: Utilizar como.

Figura 3.17: En la ventana siguiente seleccionamos: Volumen físico para RAID.

Centro de Cómputo INFOUNI

Page 29: Seguridad Linux 1.1

29 Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

Figura 3.18: Terminamos de definir la partición.

10. Una vez que ya tenemos todas nuestras particiones definidas, nos dirigimos a la opción: Configurar RAID por software.

Figura 3.19: Terminamos de definir la partición.

Centro de Cómputo INFOUNI

Page 30: Seguridad Linux 1.1

30 Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

Figura 3.20: Escribimos los cambios en el disco, seleccionamos: Sí.

Figura 3.21: Seleccionamos: Crear un dispositivo MD.

Centro de Cómputo INFOUNI

Page 31: Seguridad Linux 1.1

31 Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

Figura 3.22: Seleccionamos: RAID1.

Figura 3.23: Ingresamos el número de dispositivos activos para el RAID1: 2.

Figura 3.24: Ingresamos el número de dispositivos libres para el RAID1: 0.

Centro de Cómputo INFOUNI

Page 32: Seguridad Linux 1.1

32 Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

Figura 3.25: Seleccionamos una partición para el dispositivo multidisco: sda1.

Figura 3.26: Creamos otros dispositivos multidisco (MD) para las particiones restantes con los mismos pasos anteriormente seleccionados.

Figura 3.27: Una vez creados todos los dispositivos multidisco (MD), terminamos la configuración.

Centro de Cómputo INFOUNI

Page 33: Seguridad Linux 1.1

33 Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

Figura 3.28: Ahora seleccionamos los dispositivos RAID1 creados y modificamos los sistemas de archivos y los puntos de montaje.

Figura 3.29: Debemos haber creado 3 puntos de montaje: /boot, / y swap con su respectivo

sistema de archivos.

Centro de Cómputo INFOUNI

Page 34: Seguridad Linux 1.1

34 Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

Figura 3.30: Finalizamos el particionamiento y escribimos los cambios en el disco.

11. Luego completamos los pasos de instalación del sistema operativo y reiniciamos el equipo. 12. Nos logueamos como root y ejecutamos el siguiente comando:

1. watch -n 6 cat /proc/mdstat

13.14. Apagamos el equipo y agregamos el segundo disco (sdb) que debe ser de la misma

capacidad del primero o mayor. 15. Copiamos el esquema de particiones del primer disco con el comando:

1. sfdisk -d /dev/sda - sfdisk /dev/sdb

Centro de Cómputo INFOUNI

Page 35: Seguridad Linux 1.1

35 Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

16. Agregamos las nuevas particiones al RAID: 1. mdadm -add /dev/md0 /dev/sdb1 2. mdadm -add /dev/md1 /dev/sdb5 3. mdadm -add /dev/md2 /dev/sdb6

17. Podemos ver el progreso de la integración del nuevo disco al RAID con el comando: 1. watch -n 6 cat /proc/mdstat

18. Instalamos GRUB al segundo disco (sdb), ejecutamos el comando grub y luego: 1. root (hd1,0)2. setup (hd1)

19. Ahora podemos hacer pruebas: apagamos el equipo, retiramos el disco inicial y encendemos el equipo

3.2 Gestor de Volúmenes Lógicos - LVMEs una herramienta que se encuentra presente en los actuales sistemas Linux, inspirada en la implementación de la que disponían otros sistemas como AIX y HP-UX.

LVM introduce una separación entre la estructura típica de un sistema y los elementos discos, Particiones, Sistemas de ficheros a los que estamos habituados.

Una de las principales ventajas del sistema LVM sobre el sistema tradicional, es que LVM nos abstrae de los discos físicos y de las limitaciones de un disco, permitiendo tener sistemas de archivos sobre varios discos, redimensionar dichos sistemas de archivos según las necesidades y hacer un uso más eficiente del espacio del que disponemos, con independencia de su ubicación física. La estructura de LVM está compuesta por:

1. Volúmenes físicos: Un volumen físico es un disco o una parte del disco que habilitaremos para su inclusión en un grupo de volúmenes (particiones o discos duros completos).

2. Grupos de volumen: Agrupan uno o más volúmenes físicos tomando su capacidad entre los volúmenes físicos asignados al grupo de volumen.

3. Volúmenes lógicos: Los volúmenes lógicos se crean dentro de un grupo de volumen y son el equivalente a las particiones en otros sistemas para usarlo como almacén de información.

ConFiguramos ahora LVM en un sistema Debian:

1. Configuramos dentro de la BIOS de nuestro sistema la prioridad del dispositivo de arranque; asignando como principal a la lectora de discos.

2. Una vez que tengamos el disco de instalación introducido en nuestra lectora de discos o tengamos ya asignada la imagen en formato .iso en nuestra máquina virtual procedemos a reinciar el equipo (máquina virtual).

Centro de Cómputo INFOUNI

Page 36: Seguridad Linux 1.1

36 Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

3. Procederá a cargar el disco (imagen) de instalación y nos mostrará el logo de Debian, que nos pedirá la pulsación de ENTER para continuar.

4. Ahora seleccionamos el idioma: Spanish (español). 5. Nuestro país: Perú. 6. La distribución del teclado: Latinoamericano. 7. Aquí se nos pedirá la configuración del interfaz de red del equipo, seleccionamos: No

configurar la red en este momento. 8. Introducimos el nombre de la máquina para la identificación en la red: seglinux. 9. En el tipo de particionado seleccionamos la opción: Manual. 10. Debemos separar las particiones /boot y swap de los volúmenes LVM, creamos una

partición primaria para /boot con 100 MB de espacio en disco y marca de arranque, otra partición lógica con 1GB para swap.

11. Creamos una partición lógica a la que configuraremos como: Volumen físico para LVM.

12. Contamos ahora con las siguientes particiones: /boot, swap y un volumen LVM.

Adicionalmente contamos con espacio libre en el disco que más adelante uniremos al volumen LVM para aumentar su tamaño. Seleciconamos: Configurar el Gestor de Volúmenes Lógicos (LVM).

13. Guardamos el esquema de particiones, seleccionamos: Sí.

Centro de Cómputo INFOUNI

Page 37: Seguridad Linux 1.1

37 Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

Figura 3.31: Tenemos el resumen de la configuración LVM actual. Seleccionamos: Crear

grupo de volúmenes.

Centro de Cómputo INFOUNI

Page 38: Seguridad Linux 1.1

38 Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

Figura 3.32: Nombramos al primer grupo de volúmenes: grupo1.

Figura 3.33: Seleccionamos el dispositivo para el nuevo grupo de volúmenes: sda6.

Figura 3.34: Creamos un nuevo volumen lógico.

Centro de Cómputo INFOUNI

Page 39: Seguridad Linux 1.1

39 Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

Figura 3.35: Seleccionamos el grupo donde crearemos el volumen: grupo1.

Figura 3.36: Nombramos al primer volumen lógico: vol1.

Figura 3.37: Seleccionamos todo el espacio disponible para el volumen lógico.

Centro de Cómputo INFOUNI

Page 40: Seguridad Linux 1.1

40 Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

Figura 3.38: Terminamos la configuración de LVM, seleccionamos: Terminar.

Figura 3.39: Seleccionamos ahora la partición: grupo1 - vol1.

Figura 3.40: Configuramos la partición: sistema de archivos ext3, punto de montaje / y

Centro de Cómputo INFOUNI

Page 41: Seguridad Linux 1.1

41 Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

terminamos de definir la partición.

Figura 3.41: Finalizamos el particionado.

Figura 3.42: Escribimos los cambios en el disco, selecionamos: Sí.

14. Luego completamos los pasos de instalación del sistema operativo y reiniciamos el equipo. 15. Nos logueamos como root y ejecutamos el siguiente comando:

1. vgdisplay

Centro de Cómputo INFOUNI

Page 42: Seguridad Linux 1.1

42 Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

16. Verificamos el espacio actual: 1. df -h

17. Crearemos ahora la partición sda3 a partir del espacio libre del disco: 1. fdisk /dev/sda1

18. Para el correcto uso de la partición creada recientemente, debemos reiniciar el sistema. 19. Preparamos la partición creada para poder ser usada en LVM:

1. pvcreate /dev/sda3 20. Extendemos el grupo grupo1 con la partición nueva:

1. vgextend grupo1 /dev/sda3

Centro de Cómputo INFOUNI

Page 43: Seguridad Linux 1.1

43 Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

21. Ahora extendemos el volumen lógico en 2 GB: 1. lvextend -L +2G /dev/grupo1/vol1

22. Aplicamos los cambios: 1. resize2fs /dev/mapper/grupo1-vol1

23. Verificamos el nuevo espacio actual: 1. df -h

3.3 BondingTécnica que permite la agregación de varios interfaces de red físicos /esclavos) en uno único virtual. Asi podemos realizar un balanceo de carga entre los interfaces y conseguir un ancho de banda final igual a la suma de los anchos de banda de cada sclavo o la redundancia de la conexión. Si tenemos varios enlaces físicos a la red, perder uno de ellos implica una degradación de servicio pero no la pérdida completa de conexión.

1. Instalamos las interfaces necesarias al equipo. En nuestro caso contamos con 2 interfaces de red: eth0 y eth1.

2. Instalamos el paquete ifenslave-2.6: 1. apt-get install ifenslave-2.6

3. Desactivamos los interfaces activos: 1. ifdown eth0

4. Abrimos el archivo interfaces:

Centro de Cómputo INFOUNI

Page 44: Seguridad Linux 1.1

44 Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

1. vim /etc/network/interfaces 5. Borramos la configuración estatica del interfaz (si lo tuviera) y agregamos las siguientes

líneas: iface bond0 inet staticaddress 192.168.50.X

netmask 255.255.255.0network 192.168.50.0gateway 192.168.50.1

up /sbin/ifenslave bond0 eth0 eth1down /sbin/ifenslave -d bond0 eth0 eth1

6. Abrimos el archivo i386: 1. vim /etc/modprobe.d/arch/i386

7. Agregamos las siguientes líneas al final del archivo: alias bond0 bonding

options bonding mode=X miimon=100 - mode=X: Indica el algoritmo a usar.

a. balance-rr (modo 0):Emplea el algoritmo round robin. Permite el balance de carga entre los interfaces esclavos.

b. active-backup (modo 1): Usa sólo un esclavo y en caso de fallas, usa el siguiente disponible.

c. balance-xor (modo 2): Utiliza la MAC origen y ña MAC destino para la selección del interfaz por donde se transmitirán los paquetes.

d. broadcast (modo 3): Transmite la información por todos los interfacez. Provee tolerancia a fallos.

e. 802.3ad (modo 4): Utiliza el estándar IEEE 802.3ad. f. balance-tlb (modo 5): Balancea la carga de transmisión entre los esclavos

dependiendo de la velocidad de los mismos. - miimon: Indica cada cuántos milisegundos se va a comprobar el estado del enlace. Lo establecemos a 100.

Nota:Los modos active-backup y balance-tlb no requieren de configuración especial en el switch.

8. Reiniciamos el servicio de red: 1. /etc/init.d/networking restart

9. Activamos el bonding: 1. ifup bond0

Centro de Cómputo INFOUNI

Page 45: Seguridad Linux 1.1

45 Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

Apéndice A Monitor de Ancho de Banda - bwm-ngBwm-ng es un monitor de ancho de banda basado en consola.

1. Instalamos el paquete bwm-ng: 1. apt-get install bwm-ng

2. Ejecutamos bwm-ng: 1. bwm-ng

Apéndice B KONBOOTKonboot es un programa que nos permite entrar en las cuentas de cualquier PC sin tener la contraseña y con acceso total . Si por descuido hemos olvidado la contraseña que pusimos en windows ,con este programa podremos acceder a nuestro PC o al de otros sin necesidad de contraseña. Esta herramienta cambia el contenido del núcleo de Windows durante el arranque, de forma virtual sin modificar ningún fichero real, para tener acceso a cuentas windows como administrador y una vez allí modificar la contraseña crear un usuario o lo que quieras. No hay instrucciones de uso , no son necesarias, para los usuarios de Windows, basta con arrancar desde KonBoot CD o Disquet , seleccionar tu perfil y poner cualquier contraseña que se te ocurra. También funciona con algunos sistemas operativos Linux. Después de descargar el archivo tememos que grabarlo, bien en un cd o disket dependiendo del caso y recuerdo que esta en formato .iso.

Fuente: http://www.blogcatalog.com

Konboot nos demuestra lo vulnerable que puede ser un sistema si no configuramos correctamente las unidades de arranque en el BIOS y tenemos acceso físico al mismo.

1. Descargamos la imagen desde: http://piotrbania.com/all/kon-boot/. 2. Grabamos la imagen en CD, cambiamos el orden de booteo de los dispositivos en la BIOS,

introducimos el CD en la bandeja y booteamos el sistema. 3. Cuando nuestro sistema Linux se encuentre en la consola introducimos como login: kon-usr. 4. Para dejar nuestro sistema intacto introducimos como login: kon-fix.

Centro de Cómputo INFOUNI

Page 46: Seguridad Linux 1.1

46 Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

Apéndice C Restaurando Archivos Eliminados Accidentalmente

C.1 FAT (DOS/Windows) y Ext2 (Linux)1. Descargamos TestDisk desde: http://www.cgsecurity.org/wiki/TestDisk. 2. Descomprimimos con bzip2:

1. bzip2 -d testdisk-6.11.3.linux26.tar.bz2 3. Luego con tar:

1. tar xvf testdisk-6.11.3.linux26.tar 4. Ingresamos a la carpeta:

1. cd testdisk-6.11.3/linux 5. Ejecutamos TestDisk:

1. ./testdisk_static /ruta/del/disco.sin.montar 6. Pasos:

1. Procced - None - Advanced - Undelete - Seleccionar el archivo a recuperar y presionamos la tecla C - Indicamos la ruta donde se guardará el archivo - Presionamos la tecla Y

Nota:Si necesitamos formatear unidades en Linux debemos tener instalado el paquete dosfstools:

1. apt-get install dosfstools

Centro de Cómputo INFOUNI

Page 47: Seguridad Linux 1.1

47 Facultad de Ingeniería Mecánica – Universidad Nacional de Ingeniería

Bibliografía[]

Curso Preparatorio Parte I y II LPI 101/102 - LOGIC Linux - LOGIC Linux []

Administración de Sistemas Linux - Tom Adelstein, Bill Lubanovic - O'Reilly []

LINUX SERVER, Los Mejores Trucos - Bill von Hagen, Brian K. Jones - O'Reilly []

La Biblia de Linux - Hector Facundo Arena - USERS []

Debian GNU/Linux Bible - Steve Hunger - Hungry Minds []

Building Internet Firewalls - Elizabeth D. Zwicky, Simon Cooper, D. Brent Chapman - OREILLY []

Redes de Computadoras - Andrew S. Tanembaum - Pearson Educación []

Memoria del Proyecto Servidor Linux para Conexiones Seguras de una LAN a Internet - José Antonio Escartín Vigo

Centro de Cómputo INFOUNI