Come si blocca OS X Server usando il firewall PF?

4

Supponiamo di avere blocchi ip per Cina, Russia, Corea del Nord ecc. Come configurare pf per consentire a coloro Gli indirizzi IP possono accedere solo alle porte 80 e 443 e non possono accedere ad altre porte?

Ho un'istanza di OS X Server 2.1.1 (aka Mountain Lion) in esecuzione in un centro dati con un indirizzo IP statico esposto a Internet. Quindi non ci sono firewall hardware ecc. Per proteggere il server da utenti malintenzionati.

Guardando attraverso i log, ho notato numerosi tentativi falliti da paesi come la Cina, la Russia ai servizi necessari per gestire da remoto il server. Inoltre, ho notato che le porte erano inutilmente aperte su Internet.

Dal momento che OS X 10.6 Snow Leopard Server, ho usato il Server Admin per gestire il firewall (ipfw). Questo è stato rimosso in OS X Server 2.1.1 (Mountain Lion). E per rendere le cose più interessanti, la documentazione Apple afferma che ipfw è deprecato e che invece usa pf. Avendo letto la pagina man, sono un po 'perso come configurare pf.

Effettuare il googlling di "tutorial firewall pf" rivela tutorial diretti a NetBSD, FreeBSD e OpenBSD. Ulteriore filtraggio su "OS X" in quella query rivela tutorial per "OS X", ma sembra che gli autori assumano qualche conoscenza precedente.

    
posta bloudraak 28.10.2012 - 04:28
fonte

3 risposte

7

Dovresti:

  1. capisci le basi della pf - qui ci sono molte guide su Internet, puoi tranquillamente leggere qualsiasi guida BSD Open / Free. Devi capire alcune cose basilari:

    • con PF, l'ultima regola vince (al contrario della "prima regola vince" di IPFW)
    • la registrazione è nel dispositivo pflog se il formato 'tcpdump'
    • controlla il comando pfctl utilizzando man pfctl
    • controlla anche man pf.conf
    • puoi creare molti semplici file di testo che contengono indirizzi IP (chiamati tabelle) e utilizzarli nelle regole di filtraggio - vedi l'esempio sotto.
  2. DOPO questo puoi usare due frontend GUI

PF non è troppo difficile se hai qualche conoscenza su come funziona il firewall in generale.

Frammento di pf.conf per il filtraggio basato su tabella:

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

L'esempio sopra contiene:

  • alcune definizioni di base, come il nome dell'interfaccia e alcune porte
  • definizione per due tabelle, noroute per indirizzi nonroutable (RFC 1918) e il secondo badips che può contenere gli indirizzi IP basati su Geo IP
  • regola di filtraggio - che blocca qualsiasi cosa da queste tabelle
  • che consente le porte 80 e 443 da badips (l'ultima regola vince)
risposta data 28.10.2012 - 08:48
fonte
2

Non serveradmin in 10.8 consente di caricare gruppi di indirizzi dalla riga di comando? Ad esempio,

$ 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"

Modifica:

Quando serveradmin fallisce, usa /Applications/Server.app/Contents/ServerRoot/usr/sbin/serveradmin .

    
risposta data 28.10.2012 - 08:27
fonte
0

Prova WaterRoof, è IPFW con GUI: link

    
risposta data 28.10.2012 - 05:01
fonte

Leggi altre domande sui tag