Sign in to follow this  
fish

Creare regole "a tempo" per il firewall di mac os x

Recommended Posts

Mi servirebbe creare regole di accesso su certe porte "a tempo" cioe' dalle ore xx alle ore yy.

Che file di configurazione bisogna editare e come?

Oppure esiste un'interfaccia grafica per gestire il tutto?

Grazie

Share this post


Link to post
Share on other sites

Si può fare usando cron. Bisogna scrivere uno script che aggiunge al firewall le regole volute, e un altro che le cancella; poi con crontab se ne imposta l'esecuzione agli orari voluti. Inoltre bisogna aggiungere uno StartupItem che all'avvio del sistema controlli l'ora ed esegua lo script di attivazione o disattivazione.

Può darsi che ci siano anche delle soluzioni con interfaccia grafica, ma non le conosco. Puoi cercare su VT e su macosxhints.com.

Share this post


Link to post
Share on other sites

Grazie Ottimio.

Ho fatto un po' di ricerche sperando in un'interfaccia grafica che mi semplificasse la vita, ma non ho trovato nulla di cosi' specifico.

A questo punto partirei armato di textwrangler e di buona volonta' a smanettare i vari files...ma :

0- che files devo toccare che tanto per iniziare ne faccio un back up

1- regole firewall - in che file sono scritte?

2- script che aggiunge regole - che linguaggio conviene usare (il piu' semplice possibile)

3- bisogna essere un sistemista unix o basta una buona cultura informatica?

Share this post


Link to post
Share on other sites

1) nessuno già esistente...li devi fare tu

2) le devi scrivere tu nel file di script (mac os x usa ipfw come firewall quindi devi studiarti come funziona)

3) bash script direi

Quando crei il tuo file di script con le regole del firewall devi usare crontab -e per impostare gli orari di partenza/fine (quindi una studiata anche a crontab :))

Anche io non ne conosco grafici

Share this post


Link to post
Share on other sites

ho gia' capito che mi sono trovato i compiti delle vacanze...

Presumo che dovro' lavorare come amministratore visto il tipo di files che devo modificare. E'possibile lavorare come User per potere fare esperienza con cron e con ipfw, senza incasinare la configurazione globale del sistema?

Share this post


Link to post
Share on other sites

Scusa il ritardo, sono dovuto andar via per un po'.

0) devi aggiungere dei file, non modificarne, quindi niente backup

1) in nessuno, le regole vengono modificate usando il comando ipfw

2) bash

3) non serve essere sistemisti :)

Preferenze di Sistema inserisce le sue regole a partire dal numero 2000, con incrementi di 10; inoltre fra le prime regole c'è "allow tcp from any to any out". Siccome le regole vengono verificate in ordine numerico, e la ricerca termina quando viene trovato un allow o un deny, se vuoi bloccare delle connessioni TCP uscenti devi inserire le tue regole prima di quelle usate da Pref di Sis. Ad esempio, puoi usare il numero 1000.

Mettiamo che tu voglia limitare l'uso di un programma di chat. All'ora in cui vuoi bloccare l'accesso, esegui qualcosa di questo genere:

ipfw add 1000 deny tcp from any to 1.2.3.4 dst-port 5700

# poniamo che 1.2.3.4 sia l'indirizzo di un server a cui il programma di chat si collega usando la porta TCP 5700

ipfw add 1000 deny udp from any to any dst-port 8464 in

# poniamo che il programma di chat riceva i messaggi tramite UDP sulla porta 8464

Puoi usare lo stesso numero per tutte le regole, e verranno verificate nell'ordine in cui le hai aggiunte. Naturalmente devi informarti sul protocollo usato dal programma per sapere quali porte bloccare. Guarda anche man ipfw per ulteriori dettagli.

Quando vuoi rimuovere il blocco, esegui:

ipfw delete 1000

La cosa migliore, probabilmente, è fare un unico script che accetta un parametro che indica se permettere l'accesso, bloccarlo o verificare l'ora.

In questo modo puoi eseguire semplicemente "/path/to/your/script allow" quando è ora di attivare l'accesso, "/path/to/your/script deny" quando è ora di disattivarlo, e "/path/to/your/script check" all'avvio; in quest'ultimo caso lo script verifica l'ora e sceglie se attivare o disattivare il blocco.

Per eseguire i comandi a orari specifici puoi usare cron (man cron, man crontab) o launchd; per eseguire lo script all'avvio puoi usare uno StartupItem o launchd. Ti consiglio di dare un'occhiata a Lingon.

Share this post


Link to post
Share on other sites
Sign in to follow this