SafeChildren Banner

Havoc Oracle Solaris Experts

viernes, 9 de abril de 2010

Cómo Configurar IPFilter en Solaris 10 Paso a Paso

Introducción
Muchas veces a lo largo de los post, he ido hablando de IPFilter, también he creado algunos con pequeños tips de cómo Activar el Log de IPFilter, Cómo Activar IPFilter para Hadoop, pero, no había creado uno dedicado exclusivamente a Configurar IPFilter para Solaris 10 Paso a Paso.

En esta ocasión, vamos a ver los pasos necesarios para activar IPFilter en Solaris 10 de forma sencilla y rápida. Antes de comenzar con la configuración vamos a tener un par de cosas en cuenta.

Antes de Empezar
IPFilter puede activarse sobre una zona no global siempre que la tarjeta de red esté como <excl>, si está como <shared> no se podrá.

Para comprobar el tipo de asignación de IP que tenemos en la zona, simplemente ejecutaremos el comando <zoneadm> con las opciones <list -cv> y comprobaremos el valor de IP

# zoneadm list -cv
  ID NAME             STATUS     PATH                           BRAND    IP
   0 global           running    /                              native   shared
   1 zion             running    /opt/zones/zion                native   excl
  12 logos            running    /opt/zones/logos               native   shared
   - andatza          installed  /opt/zones/andatza             native   excl
Por ejemplo, si queremos activar IPFilter sobre una zona que tiene la red en modo <shared> -que ya hemos comentado que no se puede- el sistema nos mostrará el siguiente error:

# svcadm enable ipfilter
# svcs -x ipfilter
svc:/network/ipfilter:default (IP Filter)
 Estado: maintenance desde  9 de abril de 2010 10:17:33 CEST
Motivo: Iniciar método salió con $SMF_EXIT_ERR_CONFIG.
   Consulte: http://sun.com/msg/SMF-8000-KS
   Consulte: ipfilter(5)
   Consulte: /var/svc/log/network-ipfilter:default.log
Impacto: Este servicio no está funcionando.

# tail /var/svc/log/network-ipfilter:default.log
[ abr  9 10:17:33 Executing start method ("/lib/svc/method/ipfilter start") ]
open device: No such file or directory
SIOCFRENB: Bad file number
open device: No such file or directory
User/kernel version check failed
/lib/svc/method/ipfilter: load of /etc/ipf/ipf.conf into alternate set failed
Not switching config due to load error.
[ abr  9 10:17:33 Method "start" exited with status 96 ]

# svcadm disable ipfilter

Si tenemos todas nuestras zonas con la red en modo <shared>, no os preocupeis, editaremos la configuración desde la zona global, y no hay más problema.

Activar IPFilter
La activación de IPFilter depende de la Versión de Solaris que tenemos instalada, ya que hasta la versión 10 8/07 era necesario activar el módulo <pfil>, sin embargo, a partir de esta versión, ya no es necesario.

- Versión 10 11/06 o Anterior -
Primero deberemos activar el módulo de <pfil> con autopush, para ello, editaremos/crearemos el archivo </etc/ipf/pfil.ap> con el nombre de nuestra tarjeta de red -sobre la cuál activaremos pfil-, en mi caso es <ce0>, y activaremos el FRMI <svc:/network/pfil>
# vi /etc/ipf/pfil.ap
   #major  minor   lastminor       modules
   ce0     -1      0               pfil
:wq
# svcadm restart svc:/network/pfil
Una vez activado pfil podemos activar ipfilter,  es necesario hacer un reboot para que los cambios tengan efecto
# svcadm enable ipfilter
# reboot
- Versión 10 8/07 o Superior -
Para activar IPFilter deberemos poner en enabled el FRMI <svc:/network/ipfilter:default>, como podéis ver, se ha simplificado muchísimo la configuración y no es necesario hacer un reboot
# svcadm enable ipfilter
# svcs ipfilter
STATE          STIME    FMRI
online         10:05:16 svc:/network/ipfilter:default
Configuración de Reglas de IPFilter
Una vez activado, ya podemos empezar a introducir reglas en el archivo </etc/ipf/ipf.conf>, recordar que si no existe o está vacío es como poner las siguientes reglas:
pass in all
pass out all
Al principio del post hemos comentado que no podemos activar IPFilter en las zonas si tienen la red asignada como shared, bien, para poder hacer firewalling sobre ellas, deberemos declarar sus IPs -la de las zonas- y configurar las reglas en la zona global, por ejemplo, imaginemos que tenemos una zona -Zion- con la IP 192.168.1.200/24 y no quiero que conteste a paquetes ICMP que no vengan de la LAN, la configuración de IPFilter quedaría así:
# zonename
global

# vi /etc/ipf/ipfilter.conf
  # Interfaces
  int_if = "ce0";

  # Zonas
  zone_zion = "192.168.1.200/32";

  # Configuracion RED
  our_net = "192.168.0.0/16";

  # eliminamos los paquetes peque!nos
  block in log quick from any with ipopts
  block in log quick proto tcp from any to any with short

  # permitir SSH desde - hacia
  pass in quick on $int_if from $our_net port=22 to any
  pass out quick on $int_if from $our_net port=22 to any
 
  # LocalHost
  pass in quick from 127.0.0.1/32 to 127.0.0.1/32
 
  # Zone Zion, no Responde a ICMP
  block in log quick icmp from any to $zone_zion
  block out log quick icmp from $zone_zion to any
 
  # Permitir ICMP solo LAN menos ZONE1
  pass in quick proto icmp from $our_net to $our_net
  pass out quick proto icmp from $our_net to $our_net
 
  # todo lo demás bloqueado
  block in log quick proto icmp from any to any
  block out log quick proto icmp from any to any
 
:wq
# svcadm restart ipfilter

Configurar el Log de IPFilter
Para que IPFilter registre los accesos, debemos utilizar la opción <log> en nuestrar reglas, además, debemos activar en nuestra configuración de syslog y reiniciar el demonio.

Recordar que la separación entre y el nombre del fichero debe ser tabuladores y no espacios

# vi /etc/syslog.conf
  ############################################
  ## IPFilter Log
  ############################################
  local0.debug                              /var/log/ipfilter.log
:wq
# touch /var/log/ipfilter.log
# chmod 600 /var/log/ipfilter.log
# svcadm restart system-log

Conclusiones
La verdad es que a partir de la versión 10 8/07 se ha simplificado en gran medida la activación y mantenimiento, además de no requerir un reboot, ya tenemos una excusa más para tener Solaris actualizado a la última release, xD

Espero que con esta agrupación tengáis más sencillo ver los pasos para la Instalación de IPFilter sobre Solaris 10, de todas formas, os dejo en referencias los post separados, por si queréis mayor detalle.


Referencias

No hay comentarios:

Publicar un comentario en la entrada