Siguiente: HP-UX
Subir: AIX
Anterior: Extensiones de la seguridad:
Índice General
Igual que en Solaris hemos visto, antes de comentar aspectos relativos a la
seguridad del subsistema de red del operativo, la orden `ndd', en AIX es
necesario introducir el comando `no' (Network Options), encargado
de configurar (y visualizar) parámetros del subsistema de red de AIX. Y de la
misma forma que hemos dicho que la gestión de seguridad de los usuarios
(contraseñas,
restricciones de acceso, límites...) es en AIX excelente, y que otros
Unices deberían tomar nota, es justo decir ahora que la configuración de
parámetros del núcleo relativos a la seguridad en AIX es más pobre que en
Solaris, aunque no por ello deba considerarse débil o inadecuada.
Como en cualquier Unix, una norma básica en la seguridad del subsistema de
red para prevenir ataques de spoofing es no reenviar paquetes a no
ser que nuestro equipo trabaje como un router o una pasarela; por tanto,
es una buena idea desactivar el IP Forwarding tanto de tramas IP como de
tramas IPv6:
bruja:/# no -o ipforwarding=0
bruja:/# no -o ip6forwarding=0
bruja:/#
Para evitar ataques de SYN Flooding es interesante el parámetro clean_partial_conns, que define si se van a eliminar aleatoriamente
conexiones incompletas (aquellas en las que no se ha completado el protocolo a
tres bandas) de la cola del servidor para dejar hueco a nuevas entradas:
bruja:/# no -o clean_partial_conns=1
bruja:/#
Respecto a algunos aspectos del protocolo ICMP, es recomendable no
responder a los pings lanzados a direcciones de broadcast, ya que
si lo hacemos podemos llegar a saturar una red, facilitando ataques de
negación de servicio; esto se consigue asignando a la directiva bcastping un valor falso (`0'). De la misma forma, es también interesante
no permitir broadcasts dirigidos a una pasarela para que sean emitidos en
el otro extremo de la misma, para lo que debemos asignar a directed_broadcast un valor `0'. Además podemos hacer que nuestra
máquina no responda a peticiones ICMP del tipo ICMP/SMALL>_MASK/SMALL>_REQUEST, asignando a la directiva icmpaddressmask el
valor `0' (el que tiene por defecto):
bruja:/# no -o bcastping=0
bruja:/# no -o directed_broadcast=0
bruja:/# no -o icmpaddressmask=0
bruja:/#
También relacionados con el protocolo ICMP, es necesario comentar
aspectos relativos a las tramas ICMP/SMALL>_REDIRECT; podemos restringir la
emisión de estos paquetes (recordemos que sólo un router debería
poder enviarlos) mediante la directiva ipsendredirects,
mientras que para deshabilitar la recepción de los mismos podemos utilizar
ipignoreredirects:
bruja:/# no -o ipsendredirects=0
bruja:/# no -o ipignoreredirects=1
bruja:/#
Como ya vimos, la gestión de paquetes source routed también puede
presentar serias amenazas a nuestra seguridad; en AIX tenemos varios
parámetros relativos al manejo de este tipo de tramas. En primer lugar es
necesario desactivar tanto la generación como la recepción y el reenvío
de las mismas, mediante los parámetros ipsrcroutesend, ipsrcrouterecv e ipsrcrouteforward respectivamente, asignandoles a todos
valores de `0' (falso); el último de ellos tiene un equivalente especial para
IPv6 denominado ip6srcrouteforward. Además,
otro parámetro importante es nonlocsrcroute, que indica que sólo los
paquetes source routed estrictos (strict source routed, paquetes en
los que se especifica el camino concreto que ha de seguir la trama, a
diferencia de los paquetes loose source routed, en los que sólo se
marca un nodo por el que la trama ha de pasar y no el camino completo) pueden
ser reenviados a través del host; su valor también ha de ser falso12.3:
bruja:/# no -o ipsrcroutesend=0
bruja:/# no -o ipsrcrouterecv=0
bruja:/# no -o ipsrcrouteforward=0
bruja:/# no -o ip6srcrouteforward=0
bruja:/# no -o nonlocsrcroute=0
bruja:/#
Respecto al timeout de la caché ARP del que ya hemos hablado en
Solaris y Linux, en AIX este parámetro viene definido por la variable arpt_killc; no obstante, su valor afecta tanto a entradas ARP no
utilizadas como a entradas activas, por lo que nos debemos plantear con cuidado
la conveniencia de modificarlo; en cualquier caso, podemos definir en minutos
el timeout también mediante la orden no:
bruja:/# no -o arpt_killc=1
bruja:/#
Además de la orden `no', otro comando que nos permite configurar
parámetros interesantes para nuestra seguridad a nivel del subsistema de red
- especialmente si administramos un servidor NFS - es `nfso', que
configura y visualiza diferentes parámetros relacionados con este sistema de
ficheros; su sintaxis es bastante similar a la de `no' (en cualquier caso,
como sucede con todas las órdenes de un sistema Unix, es recomendable
consultar la página de manual correspondiente), y entre los parámetros que
permite configurar existen también algunos relacionados con la seguridad del
sistema. Quizás el más importante es portcheck, que define el
comportamiento del servidor ante peticiones provenientes de puertos no
privilegiados: si su valor es 0 (por defecto es así) no se efectúa
ningún tipo de comprobación, mientras que si es 1 se realiza el port
checking y sólo se admiten peticiones desde puertos remotos privilegiados;
por ejemplo, si queremos que esto sea así debemos ejecutar la siguiente
orden (recordamos que, al igual que sucedía con `no', los cambios
sólo tienen efecto sobre el kernel que se encuentra en ejecución, por
lo que si se produce un reinicio de la máquina el comportamiento será el
definido por defecto):
bruja:/# nfso -o portcheck
portcheck= 0
bruja:/# nfso -o portcheck=1
bruja:/# nfso -o portcheck
portcheck= 1
bruja:/#
Existen otros parámetros configurables mediante nfso que nos pueden
resultar interesantes para incrementar nuestra seguridad; por ejemplo, nfs_use_reserve_ports puesto a 0 (por defecto) especificará que se
utilicen puertos no reservados para las comunicaciones entre cliente y servidor
NFS, nfs_max_connections y nfs_max_threads definen
respectivamente límites al número de conexiones simultáneas y de hilos
servidores que se van a aceptar en un sistema AIX, etc. Como siempre, es
imprescindible consultar la página de manual correspondiente en la versión
de AIX que estemos ejecutando para conocer todos los parámetros sintonizables
mediante `nfso' y sus repercusiones en nuestra seguridad.
Tal y como sucedía con `ndd', los cambios efectuados con `no' tienen efecto sobre el kernel que se está ejecutando en un cierto
momento, por lo que si el sistema se reinicia deberemos volver a dar el valor
que nos interese a ciertos parámetros ejecutando la orden en el arranque de
la máquina. En AIX este arranque es más peculiar que en otros entornos, y
si queremos añadir estas instrucciones en cada inicio del sistema debemos
crear el script correspondiente y planificarlo para que se ejecute desde
/etc/inittab ([Bha01]):
bruja:/# cat /etc/rc.securenet
/usr/sbin/no -o ipforwarding=0
/usr/sbin/no -o ip6forwarding=0
/usr/sbin/no -o clean_partial_conns=1
/usr/sbin/no -o bcastping=0
/usr/sbin/no -o directed_broadcast=0
/usr/sbin/no -o icmpaddressmask=0
/usr/sbin/no -o ipsendredirects=0
/usr/sbin/no -o ipignoreredirects=1
/usr/sbin/no -o ipsrcroutesend=0
/usr/sbin/no -o ipsrcrouterecv=0
/usr/sbin/no -o ipsrcrouteforward=0
/usr/sbin/no -o ip6srcrouteforward=0
/usr/sbin/no -o arpt_killc=1
/usr/sbin/nfso -o portcheck=1
bruja:/# chmod 700 /etc/rc.securenet
bruja:/# mkitab "rcsecurenet:2:once:/etc/rc.securenet 2>&1 >/dev/console"
bruja:/#
Siguiente: HP-UX
Subir: AIX
Anterior: Extensiones de la seguridad:
Índice General
2003-08-08