¿Cómo se bloquea un servidor OS X usando el firewall PF?

4

Supongamos que tengo bloques de ip para China, Rusia, Corea del Norte, etc. ¿Cómo configuraría pf para permitir que ¿Las direcciones IP solo tienen acceso a los puertos 80 y 443, y se les deniega 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. Por lo tanto, no hay firewalls de hardware, etc. para proteger al servidor contra usuarios malintencionados.

Mirando a través de los registros, noté numerosos intentos fallidos de países como China, Rusia a los servicios necesarios para que yo administre el servidor de forma remota. Además, noté que los puertos se abrían innecesariamente a Internet.

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

El "tutorial de firewall pf" de Google revela tutoriales dirigidos a NetBSD, FreeBSD y OpenBSD. El filtrado adicional en "OS X" en esa consulta revela tutoriales para "OS X", pero parece que los autores asumen algunos conocimientos previos.

    
pregunta bloudraak 28.10.2012 - 04:28

3 respuestas

7

Deberías:

  1. entienda lo básico de pf: aquí hay muchas guías en Internet, puede leer con seguridad cualquier guía BSD abierta / gratuita. Debes entender algunas cosas básicas:

    • con PF, la última regla gana (a diferencia de las "primeras reglas de IPFW")
    • el registro está en el dispositivo pflog si el formato 'tcpdump'
    • compruebe el comando pfctl usando man pfctl
    • también verifica man pf.conf
    • puede crear muchos archivos de texto simples que contienen direcciones IP (denominadas tablas) y usarlos en las reglas de filtrado; consulte el ejemplo a continuación.
  2. DESPUÉS de esto, puedes usar dos interfaces GUI

PF no es demasiado difícil si tienes algún conocimiento sobre cómo funciona el 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 la interfaz y algunos puertos
  • definición de dos tablas, noroute para direcciones no enrutables (RFC 1918) y el segundo badips que puede contener sus direcciones IP basadas en Geo IP
  • regla de filtrado: bloquear cualquier cosa de estas tablas
  • permitiendo los puertos 80 y 443 de badips (la última regla gana)
respondido por el jm666 28.10.2012 - 08:48
2

¿El serveradmin en 10.8 no le permite 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, use /Applications/Server.app/Contents/ServerRoot/usr/sbin/serveradmin .

    
respondido por el Pro Backup 28.10.2012 - 08:27
0

Pruebe WaterRoof, es IPFW con GUI: enlace

    
respondido por el tquang 28.10.2012 - 05:01

Lea otras preguntas en las etiquetas