4 votos

¿Cómo se puede bloquear OS X Server utilizando el firewall de PF?

Supongamos que tengo bloqueos de ip para China, Rusia, Corea del Norte, etc. ¿Cómo puedo configurar pf para permitir que esas direcciones IP sólo accedan a los puertos 80 y 443, y se les niegue el acceso a otros puertos?

Tengo una instancia de OS X Server 2.1.1 (también conocido como Mountain Lion) que se ejecuta en un centro de datos con una dirección ip estática expuesta a Internet. Así que no hay cortafuegos de hardware, etc para proteger el servidor contra los usuarios maliciosos.

Mirando los registros, me di cuenta de numerosos intentos fallidos de países como China, Rusia a los servicios necesarios para mí para gestionar de forma remota el servidor. Además, me di cuenta de que los puertos estaban innecesariamente abiertos a Internet.

Desde OS X 10.6 Snow Leopard Server, utilizaba el Server Admin para gestionar el firewall (ipfw). Esto ha sido eliminado en OS X Server 2.1.1 (Mountain Lion). Y para hacer las cosas más interesantes, el Documentación de Apple indica que ipfw está obsoleto y que hay que utilizar pf en su lugar. Después de leer la página de manual, estoy un poco perdido cómo configurar pf.

Si se busca en Google "pf firewall tutorial" se encuentran tutoriales dirigidos a NetBSD, FreeBSD y OpenBSD. Si se filtra "OS X" en esa consulta, aparecen tutoriales para "OS X", pero parece que los autores asumen algún conocimiento previo.

7voto

jm666 Puntos 4489

Deberías hacerlo:

  1. entender lo básico de pf - hay muchas guías en Internet, puedes leer con seguridad cualquier guía de BSD abierto/libre. Usted debe entender algunas cosas básicas:

    • con PF, la última regla gana (lo contrario de "la primera regla gana" de IPFW)
    • El registro está en el dispositivo pflog si el formato 'tcpdump'
    • compruebe el pfctl con el comando man pfctl
    • también compruebe man pf.conf
    • puede crear muchos archivos de texto simples que contengan direcciones IP (llamados tablas) y utilizarlos en las reglas de filtrado - vea el ejemplo siguiente.
  2. Después de esto, puede utilizar dos interfaces gráficas de usuario

La FP no es demasiado difícil si se tienen algunos conocimientos sobre el funcionamiento de los cortafuegos en general.

Fragmento de pf.conf para el filtrado basado en tablas:

interface = "en0"
allowed_ports = "{ 80, 443 }"
table <badips> persist
table <noroute> const { 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8 }
block in on $interface from { <noroute>, <badips> } to any
pass in on $interface inet proto tcp from <badips> to $interface port $allowed_ports

El ejemplo anterior contiene:

  • algunas definiciones básicas, como el nombre de su interfaz y algunos puertos
  • definición para dos tablas, noroute para direcciones no enrutables (RFC 1918) y la segunda badips que puede contener sus direcciones IP basadas en la Geo IP
  • regla de filtrado - bloquear cualquier cosa de estas tablas
  • permitiendo los puertos 80 y 443 desde badips (la última regla gana)

2voto

Pro Backup Puntos 2314

¿No permite serveradmin en 10.8 cargar grupos de direcciones desde la línea de comandos? Como, por ejemplo:

$ sudo serveradmin settings < eu.txt

eu.txt:

ipfilter:ipAddressGroupsWithRules:_array_id:eu = create
ipfilter:ipAddressGroupsWithRules:_array_id:eu:allowAll = no
ipfilter:ipAddressGroupsWithRules:_array_id:eu:readOnly = no
ipfilter:ipAddressGroupsWithRules:_array_id:eu:name = "eu - Austria, Belgium, Croatia, Cyprus, Czech Republic, Denmark, European Union, Finland, France, Germany, Gibraltar, Greece, Holy See, Ireland, Italy, Luxembourg, Monaco, Netherlands, Norway, Poland, Slovakia, Slovenia, Spain, Sweden, Switzerland, United Kingdom"
ipfilter:ipAddressGroupsWithRules:_array_id:eu:addresses:_array_index:0 = "192.168.100.0/16"
ipfilter:ipAddressGroupsWithRules:_array_id:eu:addresses:_array_index:1 = "192.168.200.0/24"

Editar:

Cuando serveradmin falla, utilice /Applications/Server.app/Contents/ServerRoot/usr/sbin/serveradmin .

0voto

Dennis Puntos 33

Prueba WaterRoof, es IPFW con GUI: http://www.hanynet.com/waterroof/

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X