STRONG/SMALL>_ISS de Solaris: si su valor es 0 (por defecto es 
así), la generación de números iniciales de secuencia TCP es
bastante débil, si es 1 es algo más robusta, y si es 2 (el valor 
recomendado) se adapta al esquema definido en [Bel96], que como ya 
sabemos es más robusto que los anteriores.
Aparte de los dos anteriores, existe otro parámetro configurable vía 
nettune que es interesante para nuestra seguridad: 
hp_syn_protect, introducido en HP-UX 10.x, y que protege a una 
máquina de ataques SYN Flood si su valor es `1' (por defecto está a 
0, desactivado), algo con un objetivo similar a las SYN Cookies del 
núcleo de Linux:
marta:/# /usr/contrib/bin/nettune -l hp_syn_protect
hp_syn_protect = 0 default = 0 min = 0 max = 1
marta:/# /usr/contrib/bin/nettune -s hp_syn_protect 1
marta:/# /usr/contrib/bin/nettune -l hp_syn_protect
hp_syn_protect = 0 default = 0 min = 0 max = 1
marta:/#
No todos los parámetros importantes para la seguridad del subsistema de red
de HP-UX son accesibles a través de nettune; un buen ejemplo es ip_block_source_routed, que como su nombre indica bloquea las tramas
source routed que llegan a los interfaces de red cuando su valor es 
verdadero (`1'), enviando ante la recepción de una de ellas un paquete ICMP de destino inalcanzable hacia el origen de la misma ([Ste98b]). 
Otro ejemplo interesante es lanc_outbound_promisc_flag, que
permite a las aplicaciones que utilizan el modo promiscuo de un interfaz 
capturar tanto los paquetes inbound (los `vistos' por el sistema) como 
los outbound (los transmitidos por el propio sistema); por defecto el
valor de este parámetro es `0', lo que provoca que aplicaciones como tcpdump puedan no funcionar correctamente al ver sólo el tráfico no 
generado por el propio host. Para asignarle el valor true a ambos
parámetros no podemos utilizar nettune, sino que tenemos que escribir
directamente sobre el núcleo en ejecución:
marta:/# echo 'ip_block_source_routed/W1'|adb -w /stand/vmunix /dev/kmem
marta:/# echo 'lanc_outbound_promisc_flag/W1'|adb -w /stand/vmunix /dev/kmem
marta:/#
Como hemos dicho al principio de este punto, en HP-UX 11 se introduce un comando
ndd, similar al que existe en Solaris, que facilita enormemente el ajuste 
de parámetros de la seguridad del subsistema de red. Para obtener un listado
de cada parámetro configurable a través de este interfaz podemos ejecutar
`ndd -h', y para hacernos una idea de cuales de estos parámetros son
los más importantes para nuestra seguridad una excelente referencia es 
[Ste00]; en cualquier caso, el nombre de los mismos, así como la
sintaxis de la orden, es muy similar a la que existe en Solaris.
Como siempre, nos va a interesar deshabilitar diferentes tipos de forwarding en nuestro sistema: el IP Forwarding, el reenvío de 
paquetes con opciones de source routing, y los broadcasts; para 
conseguirlo podemos ejecutar `ndd -set':
marta11:/# ndd -set /dev/ip ip_forwarding 0
marta11:/# ndd -set /dev/ip ip_forward_src_routed 0
marta11:/# ndd -set /dev/ip ip_forward_directed_broadcasts 0
marta11:/#
Como ya sabemos, el protocolo ICMP puede ser fuente de diferentes 
problemas de seguridad en el sistema, por lo que en ocasiones conviene modificar
algunos de sus parámetros; es importante no responder a broadcasts de
tramas ICMP/SMALL>_ECHO/SMALL>_REQUEST, ICMP/SMALL>_ADDRESS/SMALL>_MASK/SMALL>_REQUEST
o ICMP/SMALL>_TIMESTAMP/SMALL>_REQUEST, así como tampoco hacerlo a 
peticiones ICMP/SMALL>_TIMESTAMP/SMALL>_REQUEST dirigidas directamente a la 
máquina (no en broadcast). En este orden, los parámetros del interfaz
ndd son los siguientes:
marta11:/# ndd -set /dev/ip ip_respond_to_echo_broadcast 0
marta11:/# ndd -set /dev/ip ip_respond_to_address_mask_broadcast 0
marta11:/# ndd -set /dev/ip ip_respond_to_timestamp_broadcast 0
marta11:/# ndd -set /dev/ip ip_respond_to_timestamp 0
marta11:/#
El envio de tramas ICMP/SMALL>_REDIRECT e ICMP/SMALL>_SOURCE/SMALL>_QUENCH se
puede evitar también mediante ndd, así como la activación de la
defensa contra el SYN flood que proporciona HP-UX:
marta11:/# ndd -set /dev/ip ip_send_redirects 0
marta11:/# ndd -set /dev/ip ip_send_source_quench 0
marta11:/# ndd -set /dev/tcp tcp_syn_rcvd_max 500
marta11:/#
Al igual que sucedía en Solaris (o en AIX con la orden no), los 
cambios efectuados por ndd tienen efecto sólo mientras no se reinicia 
el sistema, por lo que si queremos hacerlos permanentes hemos de ejecutarlos 
automáticamente en el arranque de la máquina. HP-UX ejecuta en uno de sus
scripts de arranque la orden `ndd -c', que inicializa los valores 
por defecto de cada parámetro, para lo que lee el archivo /etc/rc.config.d/nddconf. En este fichero (de texto), podemos definir las 
entradas correspondientes a los valores de cada parámetro que nos interesen,
de forma que en cada reinicio del sistema se asignen automáticamente; 
no se trata de un simple shellscript, sino de un fichero de 
configuración con tres entradas por parámetro a configurar, que definen el
componente sobre el que se aplica (tcp, ip, arp...), el
nombre del parámetro, y el valor que queremos darle. Es conveniente, tras
modificar el fichero, que comprobemos que efectivamente todo ha funcionado como
habíamos definido tras un reinicio del sistema (es decir, que cada uno de 
los parámetros tiene el valor que nosotros queremos), ya que, como se cita en 
[Ste00], existen algunos problemas relacionados con esta forma de 
trabajar; si no fuera así, en la misma obra se explica una sencilla 
modificación del sistema que hará que todo funcione correctamente.
© 2002 Antonio Villalón Huerta