|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Sep 2002
Messaggi: 344
|
[Guida] OpenBSD Firewall Faq (creiamo un firewall HW)
Ciao questa guida è dedicata a tutte quelle persone che hanno bisogno di un firewall di rete, oppure che hanno Fastweb e vogliono poter collegare più di tre computer creando una rete locale.
Per qualsiasi chiarimento non esitate a contattarmi Avviso: 1) la procedura di installazione della nuova versione 4.6 di OpenBSD ha cambiato l'ordine di di alcune operazioni ma fondamentalmente è rimasta quasi invariata 2) Nella versione 4.6 di OpenBSD sono cambiate un paio di regole in PF per ulteriori dettagli http://www.openbsd.org/faq/upgrade46.html#newPF 3) Come mi è stato fatto notare da un utente la guida presenta delle inesattezze causate dai cambi di versione il problema è che non ho più il tempo di aggiornarla come facevo una volta quindi se me ne segnalate delle altre cercherò di aggiustarle appena ne avrò tempo Cambiamenti: ## 2009/10/04 ## Aggiunto DNS locale che si auto aggiorna da DHCP (la guida è completa ma però per il momento non è spiegata molto bene quindi in caso di problemi contattatemi pure) ## 2009/08/07 ## Finita la conversione dalla vecchia versione originale in PDF che costringeva a scaricarla per intero alla nuova versione leggibile direttamente da qui (se doveste trovare qualche errore per piavere avvertitemi) ## 2009/06/11 - 0.3.1 ## Portata alla versione 4.5 di OpenBSD Aggiunte le istruzioni per installare Vim, Screen, Bash ## 2008/12/25 - 0.2.1 ## Correzione grossolano errore nelle regole antispoof ## 2008/11/22 - V0.2 ## Aggiornato alla versione 4.4 di OpenBSD (uniche modifiche per il momento il file di configurazione /etc/rc.conf.local e comunque riguardanti solo l'avvio del server DHCPD) ## 2008/10/16 - V0.1.1 ## Aggiustate alcune spiegazioni delle regole Ultima modifica di ER}M{AC : 13-05-2010 alle 11:10. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Sep 2002
Messaggi: 344
|
[Guida] OpenBSD Firewall Faq (creiamo un firewall HW)
Introduzione In questa quida cercherò di spiegare nel modo più comprensibile e semplice possibile come crearsi un firewall riciclando un vecchio computer e utilizzando il sistema operativo OpenBSD. Dopo questa piccola introduzione iniziamo col dire che inizialmente potrà sembrare complicato ma dedicandoci un po d’impegno sia la scrittura delle regole che l'utilizzo del firewall diventerà semplicissimo, fermo restando che questa guida si limiterà a un livello di configurazione base anche perché quello che permette di fare PF (il vero cuore del firewall presente nel kernel di OpenBSD) è veramente vasto e per affrontarlo tutto richiederebbe delle conoscenze non troppo di base. Per la stesura di questa guida ho utilizzato sia la documentazione originale che le faq di OpenBSD. AVVISO: LA SEGUENTE GUIDA È RILASCIATA SOTTO LICENZA CREATIVE COMMONS E SENZA ALCUNA GARANZIA! L'AUTORE NON SI ASSUME NESSUNA RESPONSABILITÀ PER L'USO PROPRIO O IMPROPRIO DI QUEST'ULTIMA Ora veniamo al materiale che ci servirà per creare questo semplice ma utile firewall:
Ultima modifica di ER}M{AC : 06-08-2009 alle 11:04. |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Sep 2002
Messaggi: 344
|
[Guida] OpenBSD Firewall Faq (creiamo un firewall HW)
Installazione In questo capitolo andremo ad affrontare quelle che sono le fasi di installazione: Ecco brevemente come sarà suddiviso il nostro lavoro:
--------------------------------------- 1) Procuriamoci OpenBSD Per cominciare ci serve il sistema operativo da installare quindi rechiamoci sul ftp di OpenBSD ftp://ftp.openbsd.org e scarichiamo il cd. Dunque riavviamo il pc col cd che abbiamo scaricato e masterizzato nel lettore e facciamo partire l'installazione. --------------------------------------- 2) Primi passi della installazione Ora passo per passo installiamo OpenBSD
--------------------------------------- 3) Configurazione del HDD Se si è superato senza intoppi la prima parte introduttiva all'installazione possiamo passare alla configurazione del HDD.
--------------------------------------- 4) DiskLabel Arrivati a questo punto il mio suggerimento è di cancellare tutti i disklabel creati in automatico durante la fase precedente e ricrearne di nuovi.
--------------------------------------- 5) Hostname Ora verrà chiesto quale nome si vuole dare al pc; Codice:
Enter system hostname (short form, e.g. 'foo'): grandepuffo --------------------------------------- 6) Rete Trattandosi di un firewall di rete, non essendo quindi dotato di alcun tipo di modem, si procederà come segue. Codice:
Configure the network? [yes] no --------------------------------------- 7) Password QUESTA È UNA FASE IMPORTANTISSIMA: RICORDATEVI DI IMPOSTARE UNA PASSWORD FORTE, POSSIBILMENTE GENERATA IN MODO CASUALE, O ALTRIMENTI, UNA FRASE CHE SIA ABBASTANZA COMPLESSA. (NON UNA PAROLA) Codice:
Password for root account? (will not echo) pAssWOrd Password for root account? (again) pAssWOrd --------------------------------------- 8) Da dove installare Ora inizieremo l'installazione vera e propria, ci verrà chiesta la posizione dei file di installazione Codice:
Let's install the sets! Location of sets? (cd disk ftp http or 'done') [cd] Enter Available CD ROMs are: cd0. Which one contains the install media? (or 'done') [cd0] Enter Pathname to the sets? (or 'done') [4.5/i386] Enter --------------------------------------- 9) Cosa installare Al momento dell'installazione si può scegliere se optare per una installazione minimale oppure per una più completa in base alle proprie necessità. Nel secondo caso hai la possibilità di installare eventuali patch del OS o programmi. Questa sarà è la modalità che ho preso in esame. Vi apparirà un elenco come quello sottostaste: Codice:
Select sets by entering a set name, a file name pattern or 'all'. De select sets by prepending a '-' to the set name, file name pattern or 'all'. Selected sets are labeled '[x]'. [X] bsd [X] bsd.rd [ ] bsd.mp [X] base45.tgz [X] etc45.tgz [X] misc45.tgz [X] comp45.tgz [X] man45.tgz [ ] game45.tgz [ ] xbase45.tgz [ ] xetc45.tgz [ ] xshare45.tgz [ ] xfont45.tgz [ ] xserv45.tgz
--------------------------------------- 10) Le ultime fasi Si è quasi terminata l'installazione; a breve si potrà avviare il nostro sistema OpenBSD
AVVISO: LA SEGUENTE GUIDA È RILASCIATA SOTTO LICENZA CREATIVE COMMONS E SENZA ALCUNA GARANZIA! L'AUTORE NON SI ASSUME NESSUNA RESPONSABILITÀ PER L'USO PROPRIO O IMPROPRIO DI QUEST'ULTIMA Ultima modifica di ER}M{AC : 06-08-2009 alle 11:18. |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Sep 2002
Messaggi: 344
|
[Guida] OpenBSD Firewall Faq (creiamo un firewall HW)
Configurazione sistema In questo capito affronteremo la configurazione del sistema base, ovvero come istallare alcuni servizi che potrebbero esserci utili, quali:
--------------------------------------- 1) Login Per prima cosa dobbiamo accedere al sistema, quindi quando ci chiederà il login inseriremo come user root e come password quella che abbiamo messo durante l'installazione. --------------------------------------- 2) VI & VIM Velocissime istruzioni per l'utilizzo di vi o vim (l'editor che ci servirà per tutte le configurazioni). Ecco i comandi principali:
--------------------------------------- 3) Abilitazione servizi
--------------------------------------- 4) Forwarding
AVVISO: LA SEGUENTE GUIDA È RILASCIATA SOTTO LICENZA CREATIVE COMMONS E SENZA ALCUNA GARANZIA! L'AUTORE NON SI ASSUME NESSUNA RESPONSABILITÀ PER L'USO PROPRIO O IMPROPRIO DI QUEST'ULTIMA Ultima modifica di ER}M{AC : 06-08-2009 alle 11:21. |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Sep 2002
Messaggi: 344
|
[Guida] OpenBSD Firewall Faq (creiamo un firewall HW)
Configurazione sistema In questo capitolo verrà spiegato come configurare le interfacce di rete. Per fare questo ho inserito il disegno della rete di esempio che useremo in queste pagine
![]() --------------------------------------- 1) Configurazione schede di rete Andiamo a settare gli indirizzi ip delle nostre schede di rete:
--------------------------------------- 2) Configurazione gateway e dns
AVVISO: LA SEGUENTE GUIDA È RILASCIATA SOTTO LICENZA CREATIVE COMMONS E SENZA ALCUNA GARANZIA! L'AUTORE NON SI ASSUME NESSUNA RESPONSABILITÀ PER L'USO PROPRIO O IMPROPRIO DI QUEST'ULTIMA Ultima modifica di ER}M{AC : 07-08-2009 alle 06:57. |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Sep 2002
Messaggi: 344
|
[Guida] OpenBSD Firewall Faq (creiamo un firewall HW)
Firewall In questo capitolo verrà spiegato come configurare PacketFilter
![]() --------------------------------------- 1) Introduzione a PacketFilter PF salva le varie configurazioni nel file pf.conf che si trova in etc; questo file è suddiviso in 7 parti:
--------------------------------------- 2) Macro Per iniziare dovremo impostare delle macro che ci permetteranno da un lato di scrivere le regole in modo più pratico e veloce e dall'altro di riuscire ad avere un'interpretazione delle regole scritte migliore alla lettura
--------------------------------------- 3) Opzioni Ora setteremo le opzioni; quindi scriviamo queste righe come segue: Codice:
set block-policy drop set loginterface $ext_if set skip on lo set optimization conservative set state-policy if-bound --------------------------------------- 4) Scrub Lo scrub serve ad evitare che ci siano pacchetti malformati per il ricevente e a proteggere da eventuali attacchi i sistemi operativi che soffrono di vulnerabilità riguardo a flag malformati nel pacchetto tcp. Codice:
scrub in all fragment reassemble --------------------------------------- 5) Nat e riindirizzamento Settiamo il nat ed eventuali port forwarding per la nostra rete. Per fare questo, sempre all'interno del solito file pf.conf , dobbiamo aggiungere le seguenti righe: Codice:
nat on $ext_if from ! ($ext_if) to any > ($ext_if) nat-anchor "ftp-proxy/*" rdr-anchor "ftp-proxy/*" rdr on $int_if proto tcp from $int_if:network to any port ftp > 127.0.0.1 port 8021 --------------------------------------- 6) Regole Eccoci arrivati finalmente alla scrittura delle regole del firewall; per fare questo dobbiamo distinguere 2 tipi di utilizzo dello stesso. Prima di tutto analizzerò una tipica configurazione da ufficio molto restrittiva; secondariamente analizzerò un'altra configurazione a uso casalingo cercando di evitare i classici problemi delle porte in uscita. Prima di tutto ecco la sintassi semplificata delle regole: action [direction] [log] [quick] [on interface] [af] [proto protocol] [from src_addr [port src_port]] [to dst_addr [port dst_port]] [flags tcp_flags] [state]
--------------------------------------- 7) Regole: piccolo ufficio Ecco come si presenteranno le regole più restrittive per il piccolo ufficio. Codice:
block log all block log inet6 all Codice:
antispoof log quick for { $int_if, $ext_if } è altro che un sistema per bloccare pacchetti mascherati che altrimenti passerebbero Codice:
#block in quick on $ext_if from $priv_nets to any #block out quick on $ext_if from any to $priv_nets privata. Tali regole non vanno usate se la configurazione è come quella nello schema. Sostanzialmente evita l'entrata e l'uscita di pacchetti non “routabili”. Come detto in precedenza queste regole vanno inserite solo nel caso si fosse collegati a una rete diretta su internet (ad esempio Fastweb) togliendo il carattere # a ogni inizio riga. Codice:
pass out on $ext_if proto tcp from any to any modulate state flags S/SA pass out on $ext_if proto udp from any to any keep state pass out on $ext_if proto icmp from any to any keep state Codice:
anchor "ftp-proxy/*" Codice:
pass in on $int_if proto tcp from any to any port { 80, 443 } modulate state flags S/SA Codice:
pass in on $int_if proto tcp from any to any port { 110, 25 } modulate state flags S/SA Codice:
pass in on $int_if proto tcp from any to any port { 20, 21, 8021 } modulate state flags S/SA Codice:
pass in on $int_if proto tcp from any to any port 22 modulate state flags S/SA Codice:
pass in on $int_if proto udp from any to any port 53 keep state Codice:
pass in on $int_if proto udp from any to any port 123 keep state Codice:
pass in on $int_if proto icmp from any to any keep state Ecco il listato completo di ciò che troveremo scritto nel file pf.conf per il piccolo ufficio Codice:
ext_if = "rl0" int_if = "rl1" priv_nets = "{ 127.0.0.0/8, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, 224.0.0.0/4 }" set block-policy drop set loginterface $ext_if set skip on lo set optimization conservative set state-policy if-bound scrub in all fragment reassemble nat on $ext_if from ! ($ext_if) to any > ($ext_if) nat-anchor "ftp-proxy/*" rdr-anchor "ftp-proxy/*" rdr on $int_if proto tcp from any to any port 21 > 127.0.0.1 port 8021 block log all block log inet6 all antispoof log quick for { $int_if, $ext_if } #block in quick on $ext_if from $priv_nets to any #block out quick on $ext_if from any to $priv_nets pass out on $ext_if proto tcp from any to any modulate state flags S/SA pass out on $ext_if proto udp from any to any keep state pass out on $ext_if proto icmp from any to any keep state anchor "ftp-proxy/*" pass in on $int_if proto tcp from any to any port { 80, 443 } modulate state flags S/SA pass in on $int_if proto tcp from any to any port { 20, 21, 8021 } modulate state flags S/SA pass in on $int_if proto tcp from any to any port 22 modulate state flags S/SA pass in on $int_if proto udp from any to any port 53 keep state pass in on $int_if proto udp from any to any port 123 keep state pass in on $int_if proto icmp from any to any keep state --------------------------------------- 8) Regole: casa senza blocchi L'ultima serie di regole sono quelle relative a un utilizzo casalingo senza problemi di porte: Codice:
block log all block log inet6 all Codice:
antispoof log quick for { $int_if, $ext_if } è altro che un sistema per bloccare pacchetti mascherati che altrimenti passerebbero Codice:
#block in quick on $ext_if from $priv_nets to any #block out quick on $ext_if from any to $priv_nets privata. Tali regole non vanno usate se la configurazione è come quella nello schema. Sostanzialmente evita l'entrata e l'uscita di pacchetti non “routabili”. Come detto in precedenza queste regole vanno inserite solo nel caso si fosse collegati a una rete diretta su internet (ad esempio Fastweb) togliendo il carattere # a ogni inizio riga. Codice:
pass out on $ext_if proto tcp from any to any modulate state flags S/SA pass out on $ext_if proto udp from any to any keep state pass out on $ext_if proto icmp from any to any keep state Codice:
anchor "ftp-proxy/*" Codice:
pass in on $int_if proto udp from $int_if:network to any keep state Codice:
pass in on $int_if proto tcp from $int_if:network to any modulate state flags S/SA Codice:
pass in on $int_if proto icmp from $int_if:network to any keep state Ecco il listato completo di quello che dovrà essere scritto nel file pf.conf Codice:
ext_if = "rl0" int_if = "rl1" priv_nets = "{ 127.0.0.0/8, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, 224.0.0.0/4 }" set block-policy drop set loginterface $ext_if set skip on lo set optimization conservative set state-policy if-bound scrub in all fragment reassemble nat on $ext_if from ! ($ext_if) to any > ($ext_if) nat-anchor "ftp-proxy/*" rdr-anchor "ftp-proxy/*" rdr on $int_if proto tcp from any to any port 21 > 127.0.0.1 port 8021 block log all block log inet6 all antispoof log quick for { $int_if, $ext_if } #block in quick on $ext_if from $priv_nets to any #block out quick on $ext_if from any to $priv_netqs pass out on $ext_if proto tcp from any to any modulate state flags S/SA pass out on $ext_if proto udp from any to any keep state pass out on $ext_if proto icmp from any to any keep state anchor "ftp-proxy/*" pass in on $int_if proto udp from $int_if:network to any keep state pass in on $int_if proto tcp from $int_if:network to any modulate state flags S/SA pass in on $int_if proto icmp from $int_if:network to any keep state Ultima modifica di ER}M{AC : 07-08-2009 alle 07:14. |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Sep 2002
Messaggi: 344
|
[Guida] OpenBSD Firewall Faq (creiamo un firewall HW)
Varie In questo capitolo spiegherò brevemente come installare e configurare alcuni software aggiuntivi
--------------------------------------- 1) Installare SCREEN, BASH e VIM Installare programmi aggiuntivi presenti nei ports in OpenBSD è una cosa molto semplice, personalmente vi consiglio caldamente di installare questi tre che elencherò qui sotto dandone una descrizione brevissima.
--------------------------------------- 2) DHCP Configuriamo un server DHCP
--------------------------------------- 3) DNS Locale completo ma da spiegare meglio Per chi avesse bisogno di poter risolvere i nomi delle macchine presenti nella propria rete è possibile crearsi un piccolo server DNS locale.
AVVISO: LA SEGUENTE GUIDA È RILASCIATA SOTTO LICENZA CREATIVE COMMONS E SENZA ALCUNA GARANZIA! L'AUTORE NON SI ASSUME NESSUNA RESPONSABILITÀ PER L'USO PROPRIO O IMPROPRIO DI QUEST'ULTIMA Ultima modifica di ER}M{AC : 13-06-2010 alle 09:36. |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Sep 2002
Messaggi: 344
|
[Guida] OpenBSD Firewall Faq (creiamo un firewall HW)
EDIT
Ultima modifica di pegasolabs : 05-08-2009 alle 07:31. |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Sep 2002
Messaggi: 344
|
[Guida] OpenBSD Firewall Faq (creiamo un firewall HW)
EDIT
Ultima modifica di pegasolabs : 05-08-2009 alle 07:31. |
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: May 2004
Città: Salerno
Messaggi: 21185
|
La sticco per un pò in modo da porla all'attenzione degli utenti, anche per eventuali correzioni da apportare semmai ve ne fossero. Poi passerà nelle guide.
Grazie ![]() Nel frattempo di do qualche post iniziale in previsione della pubblicazione su post multipli.
__________________
Leggi qui PRIMA DI POSTARE in Networking! | Accesso abusivo a reti e condivisione ADSL: è ILLEGALE! | Guida ad Antenne, Ponti Radio e Normativa di riferimento | Guida ai N.A.S. Ultima modifica di pegasolabs : 10-10-2008 alle 05:58. |
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Jan 2007
Città: Martinsicuro (Te)
Messaggi: 4802
|
Intanto un bel grazie all'autore
![]()
__________________
Trattative ok con piu' di 100 utenti, cercate tra i miei messaggi! EVITATE VALERIAA ![]() |
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: Aug 2004
Messaggi: 19344
|
Grazie, la sto leggendo
![]()
__________________
"Le statistiche sono come le donne lascive: se riesci a metterci le mani sopra, puoi farci quello che ti pare" Walt Michaels |
![]() |
![]() |
![]() |
#13 |
Senior Member
Iscritto dal: May 2003
Città: Roma-provincia
Messaggi: 958
|
il download mi da errore,
è un problema mio o si può verificare? grazie
__________________
news: Dell Inspiron 2200 - Celeron M350 - Pentium M735, OverClock si può ??? <<>> HD3450 <<>> Powerex_display_MOD |
![]() |
![]() |
![]() |
#14 | |
Senior Member
Iscritto dal: May 2004
Città: Salerno
Messaggi: 21185
|
Quote:
In alternativa si può hostare su mediafire, 4shared, filefactory, boxst |
|
![]() |
![]() |
![]() |
#15 |
Senior Member
Iscritto dal: Sep 2002
Messaggi: 344
|
Corretto comunque appena ho un po di tempo faccio un po di mirror
Ultima modifica di ER}M{AC : 02-12-2008 alle 13:55. |
![]() |
![]() |
![]() |
#16 |
Senior Member
Iscritto dal: Jan 2007
Città: Martinsicuro (Te)
Messaggi: 4802
|
Grazie, Ermac
![]()
__________________
Trattative ok con piu' di 100 utenti, cercate tra i miei messaggi! EVITATE VALERIAA ![]() |
![]() |
![]() |
![]() |
#17 |
Senior Member
Iscritto dal: May 2003
Città: Roma-provincia
Messaggi: 958
|
ho scaricato, grazie,
ma grazie ER}M{AC sopratutto per l'ottimo lavoro messoci a disposizione
__________________
news: Dell Inspiron 2200 - Celeron M350 - Pentium M735, OverClock si può ??? <<>> HD3450 <<>> Powerex_display_MOD |
![]() |
![]() |
![]() |
#18 |
Senior Member
Iscritto dal: Apr 2005
Città: Padova
Messaggi: 1156
|
Complimenti all'autore di questa guida però vorrei dirvi che esistono soluzioni molto più semplici da mettere in pratica e valide come per esempio pfSense o m0n0.
Si basano sempre su BSD e quind pf.
__________________
THUG-LIFE |
![]() |
![]() |
![]() |
#19 |
Senior Member
Iscritto dal: Sep 2002
Messaggi: 344
|
E aggiungerei sicuramente + complete perché in questa guida ho solo elencato il minimo indispensabile per renderla il più semplice possibile
|
![]() |
![]() |
![]() |
#20 |
Senior Member
Iscritto dal: Sep 2002
Messaggi: 344
|
UP
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:09.