Guía de administración del sistema: servicios IP

Creación y edición de archivos de configuración del filtro IP de Oracle Solaris

Debe editar directamente los archivos de configuración para crear y modificar conjuntos de reglas y agrupaciones de direcciones. Los archivos de configuración siguen reglas de sintaxis de UNIX estándar:

ProcedureCómo crear un archivo de configuración para el filtro IP de Oracle Solaris

El procedimiento siguiente describe cómo configurar:

  1. Asuma un rol que incluya el perfil con derechos de administración del filtro IP, o conviértase en superusuario.

    Puede asignar el perfil con derechos de administración del filtro IP a un rol que cree. Para crear el rol y asignarlo a un usuario, consulte Configuring RBAC (Task Map) de System Administration Guide: Security Services.

  2. Inicie el editor de archivos que prefiera. Cree o edite el archivo de configuración para la función que desee configurar.

    • Para crear un archivo de configuración para las reglas de filtros de paquetes, edite el archivo ipf.conf.

      El filtro IP de Oracle Solaris utiliza las reglas de filtros de paquetes que se colocan en el archivo ipf.conf. Si coloca las reglas para los filtros de paquetes en el archivo /etc/ipf/ipf.conf, dicho archivo se carga al iniciar el sistema. Si no desea que las reglas de filtros se carguen durante el inicio, colóquelas en el archivo que prefiera. A continuación, puede activar las reglas con el comando ipf, tal como se describe en Cómo activar un conjunto de reglas de filtros de paquetes diferente o actualizado.

      Consulte Uso de la función de filtros de paquetes del filtro IP de Oracle Solaris para obtener información sobre cómo crear reglas de filtros de paquetes.


      Nota –

      Si el archivo ipf.conf está vacío, no se aplica ningún filtro. Un archivo ipf.conf vacío equivale a tener un conjunto de reglas como el siguiente:


      pass in all
      pass out all

    • Para crear un archivo de configuración para las reglas NAT, edite el archivo ipnat.conf.

      El filtro IP de Oracle Solaris utiliza las reglas NAT que se colocan en el archivo ipnat.conf. Si coloca las reglas para NAT en el archivo /etc/ipf/ipnat.conf, dicho archivo se carga al iniciar el sistema. Si no desea que las reglas NAT se carguen durante el inicio, coloque el archivo ipnat.conf en la ubicación que prefiera. A continuación, puede activar las reglas NAT con el comando ipnat.

      Consulte Uso de la función NAT del filtro IP de Oracle Solaris para obtener información sobre cómo crear reglas para la NAT.

    • Para crear un archivo de configuración para las agrupaciones de direcciones, edite el archivo ippool.conf.

      El filtro IP de Oracle Solaris utiliza la agrupación de direcciones que se coloca en el archivo ippool.conf. Si coloca las reglas para la agrupación de direcciones en el archivo /etc/ipf/ippool.conf, dicho archivo se carga al iniciar el sistema. Si no desea que la agrupación de direcciones se cargue durante el inicio, coloque el archivo ippool.conf en la ubicación que prefiera. A continuación, puede activar la agrupación de direcciones con el comando ippool.

      Consulte Uso de la función de agrupaciones de direcciones del filtro IP de Oracle Solaris para obtener información sobre la creación de agrupaciones de direcciones.

Ejemplos de archivos de configuración del filtro IP de Oracle Solaris

Los ejemplos siguientes ilustran las reglas de filtros de paquetes que se utilizan en las configuraciones de filtros.


Ejemplo 26–25 Configuración de host del filtro IP de Oracle Solaris

Este ejemplo muestra una configuración en un equipo host con una interfaz de red elxl.


# pass and log everything by default
pass in log on elxl0 all
pass out log on elxl0 all

# block, but don't log, incoming packets from other reserved addresses
block in quick on elxl0 from 10.0.0.0/8 to any
block in quick on elxl0 from 172.16.0.0/12 to any

# block and log untrusted internal IPs. 0/32 is notation that replaces 
# address of the machine running Solaris IP Filter.
block in log quick from 192.168.1.15 to <thishost>
block in log quick from 192.168.1.43 to <thishost>

# block and log X11 (port 6000) and remote procedure call 
# and portmapper (port 111) attempts
block in log quick on elxl0 proto tcp from any to elxl0/32 port = 6000 keep state
block in log quick on elxl0 proto tcp/udp from any to elxl0/32 port = 111 keep state

Este conjunto de reglas comienza con dos reglas sin restricciones que permiten la transferencia de todos los datos con la interfaz elxl. El segundo conjunto de reglas bloquea todos los paquetes entrantes de los espacios de direcciones privadas 10.0.0.0 y 172.16.0.0 mediante el cortafuegos. El siguiente conjunto de reglas bloquea direcciones internas específicas del equipo host. Finalmente, el último conjunto de reglas bloquea los paquetes que provienen de los puertos 6000 y 111.



Ejemplo 26–26 Configuración de servidor del filtro IP de Oracle Solaris

Este ejemplo muestra una configuración para un equipo host que actúa como servidor Web. Este equipo cuenta con una interfaz de red eri.


# web server with an eri interface
# block and log everything by default; then allow specific services
# group 100 - inbound rules
# group 200 - outbound rules
# (0/32) resolves to our IP address)
*** FTP proxy ***


# block short packets which are packets fragmented too short to be real.
block in log quick all with short


# block and log inbound and outbound by default, group by destination
block in log on eri0 from any to any head 100
block out log on eri0 from any to any head 200


# web rules that get hit most often
pass in quick on eri0 proto tcp from any \
to eri0/32 port = http flags S keep state group 100
pass in quick on eri0 proto tcp from any \
to eri0/32 port = https flags S keep state group 100


# inbound traffic - ssh, auth
pass in quick on eri0 proto tcp from any \
to eri0/32 port = 22 flags S keep state group 100
pass in log quick on eri0 proto tcp from any \
to eri0/32 port = 113 flags S keep state group 100
pass in log quick on eri0 proto tcp from any port = 113 \
to eri0/32 flags S keep state group 100


# outbound traffic - DNS, auth, NTP, ssh, WWW, smtp
pass out quick on eri0 proto tcp/udp from eri0/32 \
to any port = domain flags S keep state group 200
pass in quick on eri0 proto udp from any port = domain to eri0/32 group 100

pass out quick on eri0 proto tcp from eri0/32 \
to any port = 113 flags S keep state group 200
pass out quick on eri0 proto tcp from eri0/32 port = 113 \
to any flags S keep state group 200

pass out quick on eri0 proto udp from eri0/32 to any port = ntp group 200
pass in quick on eri0 proto udp from any port = ntp to eri0/32 port = ntp group 100

pass out quick on eri0 proto tcp from eri0/32 \
to any port = ssh flags S keep state group 200

pass out quick on eri0 proto tcp from eri0/32 \
to any port = http flags S keep state group 200
pass out quick on eri0 proto tcp from eri0/32 \
to any port = https flags S keep state group 200

pass out quick on eri0 proto tcp from eri0/32 \
to any port = smtp flags S keep state group 200


# pass icmp packets in and out
pass in quick on eri0 proto icmp from any to eri0/32  keep state group 100
pass out quick on eri0 proto icmp from eri0/32 to any keep state group 200


# block and ignore NETBIOS packets
block in quick on eri0 proto tcp from any \
to any port = 135 flags S keep state group 100

block in quick on eri0 proto tcp from any port = 137 \
to any flags S keep state group 100
block in quick on eri0 proto udp from any to any port = 137 group 100
block in quick on eri0 proto udp from any port = 137 to any group 100

block in quick on eri0 proto tcp from any port = 138 \
to any flags S keep state group 100
block in quick on eri0 proto udp from any port = 138 to any group 100

block in quick on eri0 proto tcp from any port = 139 to any flags S keep state
group 100
block in quick on eri0 proto udp from any port = 139 to any group 100


Ejemplo 26–27 Configuración de enrutador del filtro IP de Oracle Solaris

El ejemplo siguiente muestra una configuración para un enrutador con una interfaz interna (ce0) y otra externa (ce1).


# internal interface is ce0 at 192.168.1.1
# external interface is ce1 IP obtained via DHCP
# block all packets and allow specific services
*** NAT ***
*** POOLS ***


# Short packets which are fragmented too short to be real.
block in log quick all with short


# By default, block and log everything.
block in log on ce0 all
block in log on ce1 all
block out log on ce0 all
block out log on ce1 all


# Packets going in/out of network interfaces that aren't on the loopback
# interface should not exist.
block in log quick on ce0 from 127.0.0.0/8 to any
block in log quick on ce0 from any to 127.0.0.0/8
block in log quick on ce1 from 127.0.0.0/8 to any
block in log quick on ce1 from any to 127.0.0.0/8


# Deny reserved addresses.
block in quick on ce1 from 10.0.0.0/8 to any
block in quick on ce1 from 172.16.0.0/12 to any
block in log quick on ce1 from 192.168.1.0/24 to any
block in quick on ce1 from 192.168.0.0/16 to any


# Allow internal traffic
pass in quick on ce0 from 192.168.1.0/24 to 192.168.1.0/24
pass out quick on ce0 from 192.168.1.0/24 to 192.168.1.0/24


# Allow outgoing DNS requests from our servers on .1, .2, and .3
pass out quick on ce1 proto tcp/udp from ce1/32 to any port = domain keep state
pass in quick on ce0 proto tcp/udp from 192.168.1.2 to any port = domain keep state
pass in quick on ce0 proto tcp/udp from 192.168.1.3 to any port = domain keep state


# Allow NTP from any internal hosts to any external NTP server.
pass in quick on ce0 proto udp from 192.168.1.0/24 to any port = 123 keep state
pass out quick on ce1 proto udp from any to any port = 123 keep state


# Allow incoming mail
pass in quick on ce1 proto tcp from any to ce1/32 port = smtp keep state
pass in quick on ce1 proto tcp from any to ce1/32 port = smtp keep state
pass out quick on ce1 proto tcp from 192.168.1.0/24 to any port = smtp keep state


# Allow outgoing connections: SSH, WWW, NNTP, mail, whois
pass in quick on ce0 proto tcp from 192.168.1.0/24 to any port = 22 keep state
pass out quick on ce1 proto tcp from 192.168.1.0/24 to any port = 22 keep state

pass in quick on ce0 proto tcp from 192.168.1.0/24 to any port = 80 keep state
pass out quick on ce1 proto tcp from 192.168.1.0/24 to any port = 80 keep state
pass in quick on ce0 proto tcp from 192.168.1.0/24 to any port = 443 keep state
pass out quick on ce1 proto tcp from 192.168.1.0/24 to any port = 443 keep state

pass in quick on ce0 proto tcp from 192.168.1.0/24 to any port = nntp keep state
block in quick on ce1 proto tcp from any to any port = nntp keep state
pass out quick on ce1 proto tcp from 192.168.1.0/24 to any port = nntp keep state

pass in quick on ce0 proto tcp from 192.168.1.0/24 to any port = smtp keep state

pass in quick on ce0 proto tcp from 192.168.1.0/24 to any port = whois keep state
pass out quick on ce1 proto tcp from any to any port = whois keep state


# Allow ssh from offsite
pass in quick on ce1 proto tcp from any to ce1/32 port = 22 keep state


# Allow ping out
pass in quick on ce0 proto icmp all keep state
pass out quick on ce1 proto icmp all keep state


# allow auth out
pass out quick on ce1 proto tcp from ce1/32 to any port = 113 keep state
pass out quick on ce1 proto tcp from ce1/32 port = 113 to any keep state


# return rst for incoming auth
block return-rst in quick on ce1 proto tcp from any to any port = 113 flags S/SA


# log and return reset for any TCP packets with S/SA
block return-rst in log on ce1 proto tcp from any to any flags S/SA


# return ICMP error packets for invalid UDP packets
block return-icmp(net-unr) in proto udp all