Debe introducir al menos 3 caracteres en el buscador.
Inicio / Wikis / Tutoriales / Seguridad en Unix y redes - El subsistema de red

Seguridad en Unix y redes - El subsistema de red

 ****- (7 opiniones)
GNU Free Documentation License Tutorial de Antonio Villalón Huerta - 28 de Febrero de 2006
Temas Relacionados: Seguridad informática
48. El subsistema de red
Antes de hablar de la seguridad del subsistema de red en Solaris quizás sea necesario introducir el comando `ndd'; esta orden permite tanto consultar (mediante el símbolo `?') como modificar la configuración de ciertos drivers del sistema, en concreto los que soportan la pila de protocolos TCP/IP:

anita:/# ndd -get /dev/tcp tcp_strong_iss 1 anita:/# ndd -set /dev/tcp tcp_strong_iss 2 anita:/# ndd -get /dev/tcp tcp_strong_iss 2 anita:/#

Si quisiéramos comprobar qué parámetros ofrece un determinado driver (por ejemplo /dev/tcp), lo haríamos con la orden siguiente:

anita:/# ndd -get /dev/tcp \?

El uso del carácter `' no es más que un escape del shell para el símbolo `?'. es importante conocer qué parámetros ofrece cada driver de nuestro sistema antes de planificar una modificación de sus valores, especialmente en Solaris 8, versión en la que ha cambiado ligeramente el nombre de alguno de ellos y además se han incluido algunos nuevos relativos a IPv6 (que no mostramos aquí).
Los primeros parámetros que nos interesará modificar para incrementar la seguridad de nuestro sistema pueden ser los relacionados con el forwarding, el reenvío de paquetes de cierto tipo que llegan a la máquina. En primer lugar, es importante evitar que nuestro equipo se convierta en un enrutador; aunque en algunas versiones de Solaris es suficiente con crear el fichero /etc/notrouter, lo más recomendable es deshabilitar por completo el IP Forwarding a nivel del subsistema de red, lo cual se consigue mediante la siguiente orden:
anita:/# ndd -set /dev/ip ip_forwarding 0 anita:/#

También es importante evitar que en hosts con múltiples tarjetas se reenvíen tramas entre ellas; con esto conseguimos hacer más difícil un ataque de IP Spoofing, ya que el sistema conoce en todo momento a través de que interfaz le llega un paquete, y si lo hace por una que no le corresponde, la trama se ignora. Para lograr este objetivo podemos modificar el valor del parámetro ip_strict_dst_multihoming:

anita:/# ndd -set /dev/ip ip_strict_dst_multihoming 1 anita:/#

Los últimos parámetros relacionados con el reenvío de tramas en la máquina afectan a los broadcasts y a los paquetes source routed (aquellos que contienen en su interior el camino a seguir, total o parcialmente, hasta su destino). Por supuesto, no es recomendable el forwarding de broadcasts dirigidos desde una estación fuera de una red hacia todos los equipos de esa red, algo que una máquina Solaris con el IP Forwarding activado hace por defecto; de la misma forma, no se deben reenviar tramas que marquen el camino a su destino, ya que en la mayor parte de redes no existen motivos válidos para la emisión de este tipo de paquetes, y muchos de ellos son denotativos de actividades sospechosas. Podemos evitar ambos reenvíos mediante las siguientes órdenes respectivamente:

anita:/# ndd -set /dev/ip ip_forward_directed_broadcasts 0 anita:/# ndd -set /dev/ip ip_forward_src_routed 0 anita:/#

Otros parámetros a tener en cuenta para incrementar nuestro nivel de seguridad son algunos relativos a ataques contra el protocolo ARP; para prevenir el ARP Spoofing es recomendable reducir el timeout que Solaris presenta por defecto y que marca la frecuencia de borrado de las entradas de la tabla ARP y de la tabla de rutado, fijando ambas en un minuto. Esto lo conseguimos mediante las órdenes siguientes (en las que especificamos el tiempo en milisegundos):

anita:/# ndd -get /dev/arp arp_cleanup_interval 60000 anita:/# ndd -get /dev/ip ip_ire_flush_interval 60000 anita:/#

Dentro del protocolo ICMP también existen parámetros del subsistema de red interesantes para nuestra seguridad; un grupo de ellos son los relacionados con los diferentes tipos de tramas ICMP que pueden implicar un broadcast: ICMP/SMALL>_ECHO/SMALL>_REQUEST, ICMP/SMALL>_TIMESTAMP e ICMP/SMALL>_ADDRESS/SMALL>_MASK. Todos ellos pueden ser utilizados para causar negaciones de servicio, por lo que una buena idea en la mayor parte de situaciones es simplemente ignorarlos; incluso en el segundo caso (ICMP/SMALL>_TIMESTAMP) Solaris ofrece la posibilidad de ignorar las tramas de este tipo aunque no sean broadcasts, simplemente paquetes dirigidos a un host deterinado, ya que pueden proporcionar información del sistema útil de cara a un ataque. Para conseguir ignorar todas estas tramas podemos ejecutar estas órdenes:

anita:/# ndd -get /dev/ip ip_respond_to_echo_broadcast 0 anita:/# ndd -get /dev/ip ip_respond_to_timestamp_broadcast 0 anita:/# ndd -get /dev/ip ip_respond_to_address_mask_broadcast 0 anita:/# ndd -get /dev/ip ip_respond_to_timestamp 0 anita:/#

Todavía dentro del protocolo ICMP, otro tipo de mensajes que nos pueden causar problemas son los ICMP/SMALL>_REDIRECT; es conveniente deshabilitar tanto su emisión (sólo un router tiene la necesidad de enviar este tipo de tramas) como su recepción, ya que pueden ser utilizados para generar rutas falsas en el subsistema de red de una máquina. Para lograr ambas cosas podemos ejecutar las siguientes órdenes:

anita:/# ndd -get /dev/ip ip_ignore_redirects 1 anita:/# ndd -get /dev/ip ip_send_redirects 0 anita:/#

La generación de los números iniciales de secuencia TCP es otro parámetro que seguramente nos interesará modificar en un sistema Solaris; por defecto esta generación se basa en incrementos pseudoaleatorios, lo que puede facilitar ataques de IP Spoofing contra el sistema. Podemos aumentar nuestro nivel de seguridad utilizando un esquema de generación más robusto, basado en [Bel96], simplemente modificando el fichero /etc/default/inetinit para asignarle al parámetro TCP/SMALL>_STRONG/SMALL>_ISS un valor de 2:

anita:/# cat /etc/default/inetinit # @(#)inetinit.dfl 1.2 97/05/08 # # TCP_STRONG_ISS sets the TCP initial sequence number generation parameters. # Set TCP_STRONG_ISS to be: # 0 = Old-fashioned sequential initial sequence number generation. # 1 = Improved sequential generation, with random variance in increment. # 2 = RFC 1948 sequence number generation, unique-per-connection-ID. # TCP_STRONG_ISS=2 anita:/#

Al contrario de lo que sucede con ndd, cuyos cambios se pierden al reiniciar el sistema y hay que planificar en el arranque si necesitamos hacerlos permanentes, la modificación del fichero anterior no tendrá efecto hasta que el sistema vuelva a arrancar; si no queremos detener la máquina, podemos conseguir lo mismo mediante la orden `ndd' sobre el núcleo en ejecución:

anita:/# ndd -set /dev/tcp tcp_strong_iss 2 anita:/#

También mediante ndd podemos modificar en Solaris las restricciones relativas a los puertos reservados (aquellos que sólo el root puede utilizar, por defecto los que están por debajo del 1024). En primer lugar, podemos definir el mínimo puerto no reservado, para que las conexiones al sistema o los procesos de usuario puedan utilizar sólo los que están por encima de él; si por ejemplo queremos que el rango de puertos reservados comprenda a todos los que están por debajo del 5000 podemos ejecutar la orden siguiente:

anita:/# ndd -set /dev/tcp tcp_smallest_nonpriv_port 5000 anita:/#

Además, desde su versión 2.6 Solaris permite marcar puertos individuales como reservados, tanto UDP como TCP, y también eliminar esta restricción de puertos que previamente hayamos reservado; por defecto, aparte de los primeros 1024 puertos, Solaris define como reservados - en TCP y UDP - los puertos 2049 (nfsd) y 4045 (lockd). En el siguiente ejemplo se muestra cómo consultar los puertos marcados de esta forma, cómo añadir un alguno a la lista, y cómo eliminarlo de la misma; aunque el ejemplo se aplica a TCP, el caso de UDP es completamente análogo pero sustituyendo el nombre del dispositivo contra el que ejecutamos la orden (que sería /dev/udp) y la cadena `tcp' del nombre de cada parámetro por `udp':

anita:/# ndd /dev/tcp tcp_extra_priv_ports 2049 4045 anita:/# ndd -set /dev/tcp tcp_extra_priv_ports_add 5000 anita:/# ndd /dev/tcp tcp_extra_priv_ports 2049 4045 5000 anita:/# ndd -set /dev/tcp tcp_extra_priv_ports_del 5000 anita:/# ndd /dev/tcp tcp_extra_priv_ports 2049 4045 anita:/#

Antes de finalizar este punto es importante insistir en que los cambios producidos por `ndd' sólo se mantienen hasta el siguiente reinicio del sistema; de esta forma, las modificaciones que hemos visto aquí se mantendrán sólo mientras la máquina no se pare, pero si esto sucede en el arranque todos los parámetros del subsistema de red tomarán sus valores por defecto. Por tanto, lo más probable es que nos interese planificar en el inicio del sistema las modificaciones estudiadas en este punto para que se ejecuten de forma automática; para conseguirlo, no tenemos más que crear el script correspondiente y ubicarlo en el directorio /etc/rc2.d/ con un nombre que comience por `S', con lo que hacemos que se ejecute siempre que la máquina entre en un runlevel 2:

anita:~# cat /etc/init.d/nddconf #!/sbin/sh # # Configuracion segura del subsistema de red de Solaris # ndd -set /dev/ip ip_forwarding 0 ndd -set /dev/ip ip_strict_dst_multihoming 1 ndd -set /dev/ip ip_forward_directed_broadcasts 0 ndd -set /dev/ip ip_forward_src_routed 0 ndd -get /dev/arp arp_cleanup_interval 60000 ndd -get /dev/ip ip_ire_flush_interval 60000 ndd -get /dev/ip ip_respond_to_echo_broadcast 0 ndd -get /dev/ip ip_respond_to_timestamp_broadcast 0 ndd -get /dev/ip ip_respond_to_address_mask_broadcast 0 ndd -get /dev/ip ip_respond_to_timestamp 0 ndd -get /dev/ip ip_ignore_redirects 1 ndd -get /dev/ip ip_send_redirects 0 ndd -set /dev/tcp tcp_strong_iss 2 # anita:~# chmod 744 /etc/init.d/nddconf anita:~# chown root:sys /etc/init.d/nddconf anita:~# ln /etc/init.d/nddconf /etc/rc2.d/S70nddconf anita:~#

Si queremos conocer mejor la configuración de seguridad del subsistema de red de Solaris una excelente obra que no debería faltar en la mesa de ningún administrador de sistemas es [NW99]; todo este punto está basado ampliamente en ella. Incluye, además de explicaciones claras sobre el porqué del valor de cada parámetro para prevenir posibles ataques, un shellscript para planificar en el inicio del sistema, muchísimo más completo que el presentado aquí, y aplicable a varias versiones de Solaris (incluyendo la 8); en sistemas en los que la seguridad es un factor a tener en cuenta (>todos?) es casi obligatorio utilizar esta planificación.
Tabla de contenidos
  1. 1 - Introducción y conceptos previos
  2. 2 - Sobre la seguridad
  3. 3 - Sobre las redes
  4. 4 - Seguridad física de los sistemas
  5. 5 - Protección del hardware
  6. 6 - Protección de los datos
  7. 7 - Radiaciones electromagnéticas
  8. 8 - Administradores, usuarios y personal
  9. 9 - Ataques potenciales
  10. 10 - Qué hacer ante estos problemas
  11. 11 - El atacante interno
  12. 12 - El sistema de ficheros
  13. 13 - Sistemas de ficheros
  14. 14 - Permisos de un archivo
  15. 15 - Los bits SUID, SGID y sticky
  16. 16 - Atributos de un archivo
  17. 17 - Listas de control de acceso: ACLs
  18. 18 - Recuperación de datos
  19. 19 - Almacenamiento seguro
  20. 20 - Programas seguros, inseguros y nocivos
  21. 21 - La base fiable de cómputo
  22. 22 - Errores en los programas
  23. 23 - Fauna y otras amenazas
  24. 24 - Programación segura
  25. 25 - Auditoría del sistema
  26. 26 - El sistema de log en Unix
  27. 27 - El demonio syslogd
  28. 28 - Algunos archivos de log
  29. 29 - Logs remotos
  30. 30 - Registros físicos
  31. 31 - Copias de seguridad
  32. 32 - Dispositivos de almacenamiento
  33. 33 - Algunas órdenes para realizar copias de seguridad
  34. 34 - Políticas de copias de seguridad
  35. 35 - Autenticación de usuarios
  36. 36 - Sistemas basados en algo conocido: contraseñas
  37. 37 - Sistemas basados en algo poseído: tarjetas inteligentes
  38. 38 - Sistemas de autenticación biométrica
  39. 39 - Autenticación de usuarios en Unix: autenticación clasi
  40. 40 - Autenticación de usuarios en Unix: mejora de la seguridad (II)
  41. 41 - PAM
  42. 42 - Solaris
  43. 43 - Seguridad física en SPARC
  44. 44 - Servicios de red
  45. 45 - Usuarios y accesos al sistema
  46. 46 - El sistema de parcheado
  47. 47 - Extensiones de la seguridad
  48. 48 - El subsistema de red
  49. 49 - Parametros del núcleo
  50. 50 - Linux
  51. 51 - Seguridad física en x86
  52. 52 - Usuarios y accesos al sistema
  53. 53 - El sistema de parcheado
  54. 54 - El subsistema de red
  55. 55 - El núcleo de Linux
  56. 56 - AIX
  57. 57 - Seguridad física en RS/6000
  58. 58 - Servicios de red
  59. 59 - Usuarios y accesos al sistema (I)
  60. 60 - Usuarios y accesos al sistema (II)
  61. 61 - El sistema de log
  62. 62 - El sistema de parcheado
  63. 63 - Extensiones de la seguridad: filtros IP
  64. 64 - El subsistema de red
  65. 65 - HP-UX
  66. 66 - Seguridad física en PA-RISC
  67. 67 - Usuarios y accesos al sistema
  68. 68 - El sistema de parcheado
  69. 69 - Extensiones de la seguridad
  70. 70 - El subsistema de red
  71. 71 - El núcleo de HP-UX
  72. 72 - Seguridad de la subred: el sistema de red
  73. 73 - Algunos ficheros importantes
  74. 74 - Algunas órdenes importantes
  1. 75 - Servicios
  2. 76 - Algunos servicios y protocolos
  3. 77 - Servicios basicos de red
  4. 78 - El servicio FTP
  5. 79 - El servicio TELNET
  6. 80 - El servicio SMTP
  7. 81 - Servidores WWW
  8. 82 - Los servicios r-
  9. 83 - XWindow
  10. 84 - Cortafuegos: Conceptos teóricos
  11. 85 - Características de diseño
  12. 86 - Componentes de un cortafuegos
  13. 87 - Arquitecturas de cortafuegos
  14. 88 - Firewall-1
  15. 89 - ipfwadm/ipchains/iptables
  16. 90 - IPFilter
  17. 91 - PIX Firewall (I)
  18. 92 - PIX Firewall (II)
  19. 93 - Escaneos de puertos
  20. 94 - Spoofing
  21. 95 - Negaciones de servicio
  22. 96 - Interceptación
  23. 97 - Ataques a aplicaciones
  24. 98 - Sistemas de detección de intrusos
  25. 99 - Clasificación de los IDSes
  26. 100 - Requisitos de un IDS
  27. 101 - IDSes basados en maquina
  28. 102 - IDSes basados en red
  29. 103 - Detección de anomalías
  30. 104 - Detección de usos indebidos
  31. 105 - Implementación real de un IDS (I)
  32. 106 - Implementación real de un IDS (II)
  33. 107 - Algunas reflexiones
  34. 108 - Kerberos
  35. 109 - Arquitectura de Kerberos
  36. 110 - Autenticación
  37. 111 - Problemas de Kerberos
  38. 112 - Criptología
  39. 113 - Criptosistemas
  40. 114 - Clasificación de los criptosistemas
  41. 115 - Criptografía clasica
  42. 116 - Un criptosistema de clave secreta: DES
  43. 117 - Criptosistemas de clave pública
  44. 118 - Funciones resumen
  45. 119 - Esteganografía
  46. 120 - Algunas herramientas de seguridad
  47. 121 - Titan (I)
  48. 122 - Titan (II)
  49. 123 - TCP Wrappers
  50. 124 - SSH
  51. 125 - Tripwire
  52. 126 - Nessus
  53. 127 - Crack
  54. 128 - Gestión de la seguridad
  55. 129 - Políticas de seguridad
  56. 130 - Analisis de riesgos
  57. 131 - Estrategias de respuesta
  58. 132 - Outsourcing
  59. 133 - El "Área de Seguridad"
  60. 134 - Apéndice 1: Seguridad basica para administradores (I)
  61. 135 - Apéndice 1: Seguridad basica para administradores (II)
  62. 136 - Apéndice 2: Normativa (I)
  63. 137 - Apéndice 2: Normativa (II)
  64. 138 - Apéndice 2: Normativa (III)
  65. 139 - Apéndice 2: Normativa (IV)
  66. 140 - Recursos de interés en INet
  67. 141 - Glosario de términos anglosajones
  68. 142 - Conclusiones
  69. 143 - Bibliografía (I)
  70. 144 - Bibliografía (II)
  71. 145 - Bibliografía (III)
  72. 146 - Bibliografía (IV)
  73. 147 - Bibliografía (V)
  74. 148 - libro
Autor y licencia de 'Seguridad en Unix y redes - El subsistema de red'
Antonio Villalón Huerta Extraído de: http://es.tldp.org/Manuales-LuCAS/doc-unixsec/unixsec-html/ GNU Free Documentation License
Licencia GNU Free Documentation License: http://www.gnu.org/copyleft/
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.

Wikis relacionados con 'Seguridad en Unix y redes - El subsistema de red'

Es muy fácil crear archivos en el sistema operativo UNIX. Por lo tanto, los usuarios... Más »
Hablar de redes de ordenadores siempre implica hablar de Unix. Por supuesto, Unix no es... Más »
Ken Thompson y Dennis Ritchie decidieron esbozar un sistema operativo que supliera las necesidades de... Más »
En particular el desarrollo de las telecomunicaciones y de los nuevos medios de comunicación basados... Más »
Esta guía no es un documento general de seguridad. Esta guía está específicamente orientada a... Más »
Gente Wiki
Blancas Campos Gilberto
Soy abogado y licenciado en administración, con estudios de post grado en maestría con mención en derecho constitucional, y el...
Paul Amoretti Ismodes
Economista, con maestria en administración tributaria, especialidad en tributación municipal, diplomado en proyectos y en finanzas, con estudios de derecho....
Asesoría jurídica, Control de costes,...
Miguel Angel Soto Vidal
Miguel angel soto vidal vicerrector académico instituto profesional libertador de los andes - chile consultor externo de funiber chile asesor académico adjunto...
Pedagogía
Camilo
Soy escultor trabajo en el programa de painter x sobre el arte digital de fotografía ademas estoy practicando...
Adriana
Arquitecta con un perfil profesional caracterizado por el desarrollo y la capacitación constantes, con amplia experiencia laboral, desarrollada en las...
Jose Manuel Vecino P.
Filósofo, especialista en recursos humanos y diplomado en gerencia de recursos humanos, docente universitario, gerente de gestión humana, gerente...
Cuadro de mando, Dirección de la producción,...
Suscribirse
¿Estás seguro de que deseas eliminar este capítulo?