Torna indietro   Hardware Upgrade Forum > Networking e sicurezza > Networking > Guide e thread ufficiali

Tre giorni in Finlandia con OnePlus Watch 2 Nordic Blue. La nostra prova a temperature estreme
Tre giorni in Finlandia con OnePlus Watch 2 Nordic Blue. La nostra prova a temperature estreme
Siamo volati a Helsinki, in Finlandia, per testare a fondo il nuovo OnePlus Watch 2 Nordic Blue Edition. L'orologio ci ha convinti durante gli i test invernali ad Helsinki, grazie al design raffinato, alle prestazioni impeccabili, alla resistenza agli ambienti estremi e all'ottima autonomia garantita dalla modalità intelligente.
Lenovo Factory Tour: siamo entrati nella fabbrica ungherese che produce PC, storage e server
Lenovo Factory Tour: siamo entrati nella fabbrica ungherese che produce PC, storage e server
Edge9 ha visitato lo stabilimento produttivo di Lenovo nei pressi di Budapest in Ungheria, che serve tutta la zona EMEA per i prodotti “business”: PC, storage e server. Un impianto all’avanguardia, con altissimi tassi di efficienza ma anche una grande attenzione alle condizioni lavorative dei dipendenti e alla sostenibilità ambientale
Acer Nitro V 15, alla prova il notebook gaming essenziale con RTX 4050 Laptop
Acer Nitro V 15, alla prova il notebook gaming essenziale con RTX 4050 Laptop
Acer Nitro V 15 è un notebook gaming che punta sul rapporto prezzo-prestazioni per garantire a chi ha un budget intorno o persino inferiore ai 1000€ di giocare abbastanza bene in Full HD grazie alla RTX 4050 Laptop di NVIDIA e la compatibilità con il DLSS 3.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 10-10-2008, 05:42   #1
ER}M{AC
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
__________________
In vendita ora:

Guide:OpenBSD Firewall Faq (creiamo un firewall HW)

Ultima modifica di ER}M{AC : 13-05-2010 alle 11:10.
ER}M{AC è offline   Rispondi citando il messaggio o parte di esso
Old 10-10-2008, 05:42   #2
ER}M{AC
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:
  • Un computer possibilmente con una configurazione simile o superiore cioè processore a 166mhz, almeno 64mb di ram e un disco rigido da 1,5 GB e se possibile che disponga di un lettore cd per facilitare le procedure di installazione.
  • Due o più schede di rete a seconda delle esigenze.
  • Uno o più switch a seconda delle esigenze.
  • Cavi di rete ecc...
Fonti bibliografiche da cui ho preso aspirazione e materiale sono OpenBSD Official Faq e PF Official Faq
__________________
In vendita ora:

Guide:OpenBSD Firewall Faq (creiamo un firewall HW)

Ultima modifica di ER}M{AC : 06-08-2009 alle 11:04.
ER}M{AC è offline   Rispondi citando il messaggio o parte di esso
Old 10-10-2008, 05:42   #3
ER}M{AC
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. Procurarsi OpenBSD.
  2. Primi passi della installazione.
  3. Configurare l'HDD.
  4. DiskLabel.
  5. HostName.
  6. Rete.
  7. Password.
  8. Da dove installare.
  9. Cosa installare.
  10. Le ultime fasi.
---------------------------------------



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
  1. Dopo aver riavviato la macchina con il cd che abbiamo scaricato e masterizzato, il pc si fermerà su tale scritta;
    Codice:
    (I)nstall, (U)pgrade or (S)hell? i
    Si risponderà digitando il tasto i e premendo invio
  2. A questo punto verrà chiesto che tipo di terminale si voglia utilizzare;
    Codice:
    Specify terminal type: [vt220] Enter
    Lasciamo la scelta standard e pigiamo invio.
  3. Verrà richiesto il layout della tastiera;
    Codice:
    kbd(8) mapping? ('L for list) [none] it
    Presupponendo di utilizzarne una italiana risponderemo digitando it e premendo invio.
  4. A questo punto sarà richiesto se si desidera procedere con la installazione;
    Codice:
    Proceed with install? [no] y
    Si dovrà rispondere digitando y e premere invio.
---------------------------------------



3) Configurazione del HDD

Se si è superato senza intoppi la prima parte introduttiva all'installazione possiamo passare alla configurazione del HDD.
  1. Presupponendo che si abbia un singolo disco, alla domanda: “quale disco utilizzare”
    Codice:
    Available disks are: wd0.
    hich one is the root disk? (or done) [wd0] Enter
    Lasciare la scelta standard e pigiare invio.
  2. Ora sarà richiesto se si desidera dedicare tutto il disco a OpenBSD
    Codice:
    Do you want to use all of wd0 for OpenBSD? [no] yes
    Dato che non sarà necessario installare ulteriori sistemi operativi, digitare yes e premere invio
---------------------------------------



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.
  1. Digitare per avere la lista dei disklabel p e premere invio;
    Codice:
    > p
         size        offset        fstype        [fsize bsize cpg]
    a:   17593.2M    1498.7M       unused0                0
    c:   19092.9M    0.0M          unused0                0
    i:   1498.7M     0.0M          MSDOS
    Il comando p dovrebbe dare un valore di ritorno simile a quello sopra indicato.
  2. Sarebbe consigliabile che oltre il disklabel c, non vi siano ulteriori disklabel; dunque per cancellarne di eventuali digitare:
    Codice:
    > d a
    Digitare d a, d b, d d ecc e cosi via finché non si elimineranno tutti.
  3. Per prima si creerà la root (i valori in “offset: [3069360]”, “size: [36030960]”, “Rounding to nearest cylinder: 307440” sono riguardanti la mia configurazione i vostri saranno diversi)
    Codice:
    > a a
    offset: [3069360] Enter
    size: [36030960] 90%
    Rounding to nearest cylinder: 307440
    FS type: [4.2BSD] Enter
    mount point: [none] /
    Digitare a a; con questo comando si dirà al pc di utilizzare la prima parte di partizione per creare la root; quindi come valore di dimensione daremo 90% e come mount point /
  4. È il momento di creare la swap (i valori in “offset: [3069360]”, “size: [36030960]”, “Rounding to nearest cylinder: 307440” sono riguardanti la mia configurazione i vostri saranno diversi)
    Codice:
    > a b
    offset: [3376800] Enter
    size: [35723520] Enter
    Rounding to nearest cylinder: 614880
    FS type: [swap] Enter
    Digitare a b e premere invio; teoricamente quando sarà ora di creare il secondo disklabel i valori standard dovrebbero essere già quelli giusti quindi, pigiare semplicemente invio finché non si torna al prompt.
  5. Appena tornati al prompt non si dovrà far altro che salvare le modifiche.
    Codice:
    > q
    Write new label?: [y] Enter
    Digitare q seguito da un invio, e quindi una seconda volta per confermare; scrivere le modifiche.
  6. Ora ci chiederà se siamo sicuri di voler cancellare tutto il contenuto del HDD
    Codice:
    The next step DESTROYS all existing data on these partitions!
    Are you really sure that you're ready to proceed? [no] y
    Digitare yes per poter proseguire nella installazione;
---------------------------------------



5) Hostname

Ora verrà chiesto quale nome si vuole dare al pc;
Codice:
Enter system hostname (short form, e.g. 'foo'): grandepuffo
è una procedura piuttosto intuitiva; basterà semplicemente immettere un nome e premere invio.
---------------------------------------



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
Dato che la configurazione delle schede di rete avverrà in seguito risponderemo no alla domanda che compare.
---------------------------------------



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
Io per comodità ho usato una password semplice voi non fatelo.
---------------------------------------



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
Si risponderà lasciando la scelta standard in tutti i campi premendo quindi semplicemente invio.
---------------------------------------



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
  1. Consiglio di usare l'installazione standard suggerita (vedere sopra) eliminando solamente il pacchetto game; per fare questo basta digitare
    Codice:
    Set name? (or 'done') [bsd.mp] -game45.tgz
    Digitare -game45.tgz e pigiare invio
  2. Quando ricomparirà
    Codice:
    Set name? (or 'done') [bsd.mp] done
    Digitare done e poi invio; partirà l'installazione delle cose selezionate
  3. Per completare il tutto alla richiesta
    Codice:
    Ready to install sets? [yes]
    Pigiare invio per proseguire
  4. Ci verrà chiesta di nuovo la posizione dei file di installazione
    Codice:
    Location of sets? (cd disk ftp http or 'done') [cd] done
    Si risponderà con done e premendo invio.
Per chi volesse installare solo il minimo necessario per fare da firewall basta che lasciate questi pacchetti
  • bsd = richiesto
  • bsd.mp = da installare solamente in caso abbiate bprocessori o multicore
  • base45.tgz = richiesto
  • etc45.tgz = richiesto
---------------------------------------



10) Le ultime fasi

Si è quasi terminata l'installazione; a breve si potrà avviare il nostro sistema OpenBSD
  1. Per prima cosa ci chiederà se vogliamo abilitare SSH:
    Codice:
    Start sshd(8) by default? [yes] y
    Diremo di si digitando y e poi invio
  2. Ci chiederà se vogliamo attivare ntpd (è un sistema che sincronizza l'ora); qui scegliete voi io personalmente l'ho abilitato
    Codice:
    NTP server (or 'none' or 'default') [none] default
    Se lo volete prima di premere invio digitate default
  3. Chiederà se vi aspettate che parta X la risposta sarà ovviamente no
    Codice:
    Do you expect to run the X Window System? [no] Enter
    Premere semplicemente invio
  4. Vi chiederà su quale porta desiderate far girare la console; lasciate la scelta standard
    Codice:
    Change the default console to com0? [no] Enter
    Quindi pigiate semplicemente invio
  5. Vi sarà chiesto di qual'è time zone; immettete Italia quindi procedete come di seguito
    Codice:
    What timezone are you in? ('?' for list) [Canada/Mountain] Europe/Rome
    Digitare Europe/Rome mi raccomando alle maiuscole e alle minuscole)
  6. A questo punto vi apparirà la scritta seguente:
    Codice:
    CONGRATULATIONS! Your OpenBSD install has been successfully completed!
    To boot the new system, enter halt at the command prompt. Once the
    system has halted, reset the machine and boot from the disk.
    # halt
    Digitiamo halt e poi invio
  7. Il computer ci dirà che il OS è stato stoppato
    Codice:
    The operating system has halted.
    Please press any key to reboot.
    Tiriamo fuori il cd e premiamo invio per riavviare; se tutto è andato a buon fine il sistema sarà pronto ad essere configurato come firewall

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
__________________
In vendita ora:

Guide:OpenBSD Firewall Faq (creiamo un firewall HW)

Ultima modifica di ER}M{AC : 06-08-2009 alle 11:18.
ER}M{AC è offline   Rispondi citando il messaggio o parte di esso
Old 10-10-2008, 05:42   #4
ER}M{AC
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
  2. VI
  3. Abilitazione servizi
  4. Forwarding
---------------------------------------



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:
  • Per poter scrivere nell'editor è necessario premere i non appena parte;
  • Per cancellare una riga in modalità scrittura (cioè dopo aver premuto i) posizionarsi sulla riga, pigiare il tasto esc e poi premere dd. Per scrivere di nuovo premere i;
  • Per salvare premere il tasto esc poi digitare :w e premere invio. Se si vuole salvare e uscire digitare :wq e premere invio. Se salvate e basta per tornare in modalità scrittura premete i;
  • Per uscire da un file che si è modificato, ma non si vuole salvare, premere esc, digitare :q! e premere invio.
---------------------------------------



3) Abilitazione servizi
  1. Per prima cosa bisogna abilitare i servizi; per fare questo bisogna andare a modificare il seguente file: rc.conf.local che si trova nella cartella etc quindi:
    Codice:
    # vi /etc/rc.conf.local
    digitiamo vi /etc/rc.conf.local
  2. Ora si aprirà una schermata che dovrebbe avere poche linee di testo a cui noi dobbiamo aggiungere queste righe o modificare quelle già presenti come segue:
    Codice:
    ntpd_flags=""        # enabled during install
    sshd_flags=""        # enabled during install
    pf=YES                # enable PF
    ftpproxy_flags=""   # enable ftp proxy
    Salvate e uscite.
---------------------------------------



4) Forwarding
  1. Ora è necessario istruire OpenBSD a passare i dati da un'interfaccia all'altra; e per fare questo dobbiamo modificare il file sysctl.conf presente nella cartella etc, quindi:
    Codice:
    # vi /etc/sysctl.conf
    Digitiamo vi /etc/sysctl.conf
  2. Ora cercare la riga all'inizio del file con scritto #net.inet.ip.forwarding=1 ed eliminare il commento # come nell'esempio qua sotto
    Codice:
    net.inet.ip.forwarding=1        # 1=Permit forwarding (routing) of IPv4 packet
    salvate e uscite

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
__________________
In vendita ora:

Guide:OpenBSD Firewall Faq (creiamo un firewall HW)

Ultima modifica di ER}M{AC : 06-08-2009 alle 11:21.
ER}M{AC è offline   Rispondi citando il messaggio o parte di esso
Old 10-10-2008, 05:42   #5
ER}M{AC
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
  2. Configurazione gateway e dns
---------------------------------------



1) Configurazione schede di rete

Andiamo a settare gli indirizzi ip delle nostre schede di rete:
  1. Innanzitutto cerchiamo di capire come sono state nominate digitando ifconfig -a
  2. Per prima cosa settiamo la scheda di rete che va verso il router/lan esterna:
    Codice:
    # vi /etc/hostname.rl0
    Digitando vi /etc/hostname.rl0 (l'estensione rl0 è data dal fatto che la scheda utilizza un chip realtek; se usasse un altro tipo di chip l'estensione, probabilmente, sarebbe diversa comunque fondamentalmente il nome della scheda lo avrete ottenuto col comando ifconfig -a).
    Una volta aperto il file eliminiamo qualsiasi riga presente e inseriamo i dati di configurazione
    ES. questo è basato sullo schema mostrato all'inizio
    Codice:
    inet       192.168.0.1       255.255.255.0
    (il valore inet spiega a OpenBSD che si tratta di un ipv4; se fosse invece inet6 significherebbe ipv6).
    Se volessimo che fosse gestita dal dhcp a monte (esempio hag di fastweb o router con dhcp attivo) invece di inserire inet 192.168.0.1 255.255.255.0 inseriamo solo: questo
    Codice:
    dhcp
    Salviamo e usciamo.
  3. Secondariamente settiamo la scheda di rete che va verso la nostra rete locale:
    Codice:
    # vi /etc/hostname.rl1
    Digitando vi /etc/hostname.rl1 (l'estensione rl1 è data dal fatto che la scheda utilizza un chip realtek; se usasse un altro tipo di chip l'estensione, probabilmente, sarebbe diversa comunque fondamentalmente il nome della scheda lo avrete ottenuto col comando ifconfig -a).
    Una volta aperto il file eliminiamo qualsiasi riga presente e inseriamo i dati di configurazione
    ES. questo è basato sullo schema mostrato all'inizio. Dato che utilizziamo uno switch da 28 porte “subnetteremo” la rete; per cui ogni rete sarà composta da 30 indirizzi per eventuali host
    Codice:
    inet        192.168.1.30       255.255.255.224
    Salviamo e usciamo. (il valore inet spiega a OpenBSD che si tratta di un ipv4; se fosse invece inet6 significherebbe ipv6).
---------------------------------------



2) Configurazione gateway e dns
  1. Impostiamo il default gateway andando ad editare mygate che si trova in etc
    Codice:
    # vi /etc/mygate
    All'interno di questo file inseriamo l'indirizzo ip del nostro default gateway
    Codice:
    192.168.0.254
    Nell'esempio che compare qui sopra ho messo l'ip del router dello schema che avevo disegnato in
    precedenza; se invece decidiamo di usare il dhcp non serve modificare il suddetto file.
  2. Impostiamo i server DNS per risolvere gli indirizzi di rete esterna quindi andiamo ad editare
    resolv.conf che si trova in etc:
    Codice:
    # vi /etc/resolv.conf
    All'interno di questo file inseriamo gli indirizzi ip dei server dns:
    Codice:
    lookup file bind
    nameserver  208.67.222.222
    nameserver  208.67.220.220
    Nell'esempio superiore ho utilizzato gli indirizzi ip ORSN.

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
__________________
In vendita ora:

Guide:OpenBSD Firewall Faq (creiamo un firewall HW)

Ultima modifica di ER}M{AC : 07-08-2009 alle 06:57.
ER}M{AC è offline   Rispondi citando il messaggio o parte di esso
Old 10-10-2008, 05:42   #6
ER}M{AC
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
  2. Macro
  3. Opzioni
  4. Scrub
  5. Nat e riindirizzamento
  6. Regole
  7. Regole: piccolo ufficio
  8. Regole: casa senza blocchi
---------------------------------------



1) Introduzione a PacketFilter

PF salva le varie configurazioni nel file pf.conf che si trova in etc; questo file è suddiviso in 7 parti:
  • Macro: Variabili definite dall'utente che possono essere costituite da indirizzi IP, nomi di interfacce, ecc.
  • Tabelle: Una struttura usata per conservare liste di indirizzi IP.
  • Opzioni: Varie opzioni per controllare come lavora PF.
  • Scrub: Fase di riprocesso dei pacchetti per normalizzarli e deframmentarli.
  • Queueing: Fornisce un controllo sulla banda passante e sulla priorità di traffico dei pacchetti.
  • Translation: Controlla la Network Address Translation (NAT) e la packet redirection.
  • Filter Rules: Permette il selettivo filtraggio o blocco dei pacchetti nel passaggio attraverso ogni interfaccia di rete.
Alcuni comandi che potrebbero servirci
  • Abilita PacketFilter
    Codice:
    # pfctl -e
  • Disabilita PacketFilter
    Codice:
    # pfctl -d
  • Carica il file pf.conf
    Codice:
    # pfctl -f /etc/pf.conf
  • Analizza il file, ma non lo carica
    Codice:
    # pfctl -nf /etc/pf.conf
  • Carica solo le regole della NAT dal file
    Codice:
    # pfctl -Nf /etc/pf.conf
  • Carica solo le regole di filtraggio dal file
    Codice:
    # pfctl -Rf /etc/pf.conf
  • Mostra le attuali regole di NAT
    Codice:
    # pfctl -sn
  • Mostra le attuali regole di filtraggio
    Codice:
    # pfctl -sr
  • Mostra la tabella di stato attuale
    Codice:
    # pfctl -ss
  • Mostra i contatori e le statistiche di filtraggio
    Codice:
    # pfctl -si
  • Mostra tutto ciò che si può mostrare
    Codice:
    # pfctl -sa
---------------------------------------



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
  1. Andiamo ad editare il file di configurazione di PF; per fare questo dobbiamo digitare:
    Codice:
    # vi /etc/pf.conf
    Una volta aperto il file eliminiamo tutte le varie righe già presenti (questo serve per evitare di fare confusione con gli esempi già scritti nel file in precedenza).
  2. Questo è un esempio di macro molto semplice ma allo stesso tempo utile:
    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 }"
    Il significato di queste scritte è semplicissimo. Spiegano a PF che quando quest'ultimo trova una regola con ad esempio: $ext_if deve creare delle regole in memoria, automaticamente, sostituendo la parola $ext_if con ciò che è scritto all'interno delle virgolette dopo l'uguale.
    La macro priv_nets corrisponde a tutte le reti private non routabili e la useremo solo se collegati direttamente a internet come ad esempio Fastweb. Ovviamente le desinenze delle schede di rete cambiano a seconda del chip esattamente come i file hostname.* che abbiamo utilizzato per configurare gli ip in precedenza
---------------------------------------



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
Le scritte sovrastanti servono a OpenBSD per diverse funzioni; La prima riga ordina che quando un pacchetto viene bloccato deve essere semplicemente scartato; la seconda riga abilita le statistiche sulla interfaccia esterna (la rl0); la terza istruisce PF a non filtrare le comunicazioni sulle interfacce di loopback (tali interfacce servono ad alcuni programmi per comunicare tra loro); la quarta riga può essere utile per connessioni che ogni tanto hanno delle latenze; la quinta riga ordina al firewall di lasciar filtrare solo i pacchetti che sono stati generati dall'interno dell'interfaccia.
---------------------------------------



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
La prima riga spiega a PF che deve “nattare” le connessioni che vanno dalla rl1 verso la rete esterna (rl0); la seconda, la terza e la quarta riga sono delle regole che permettono a PF di utilizzare ftp-proxy cioè un sistema che permette a i client di collegarsi ad eventuali ftp server su rete esterna anche in modalità attiva oltre che passiva. Da notare che se un ftp usa una porta diversa dalla 21 (che è la standard) andrà aggiunta a mano usando una dicitura tipo questa: port { 21, 7849, o_altra_porta }
---------------------------------------



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]
  • action = L'azione da intraprendere per i pacchetti per i quali c'è una corrispondenza sarà pass o block. L'azione di pass porta il pacchetto al kernel per processarlo ulteriormente mentre l'azione di block sarà dettata dalle opzioni stabilite nella block-policy. L'azione di default può essere esclusa specificando block drop o block return.
  • direction = La direzione con la quale il pacchetto si muove attraverso l'interfaccia, in oppure out.
  • [b]logSpecifica che il pacchetto dovrebbe essere loggato con pflogd. Se la regola crea uno stato solo il pacchetto che stabilisce lo stato viene loggato. Per effettuare il log di tutti i pacchetti usare log-all.
  • quick = Se un pacchetto ha una corrispondenza con una regola che specifica quick, quella regola viene considerata l'ultima regola di confronto e viene intrapresa quella specifica azione.
  • interface = Il nome o il gruppo di interfaccia di rete attraverso la quale il pacchetto si sta muovendo. Le interfacce possono essere aggiunte a gruppi arbitrari usando il comando: ifconfig. Alcuni gruppi vengono creati automaticamente anche dal kernel:
    • Il gruppo egress, che ospita le interfaccie che contengono le rotte di default.
    • Il gruppo di famiglia di interfaccia per le copie di interfaccie. Per esempio: ppp o carp.
    Questo permetterebbe di avere regole con corrispondenza a ogni pacchetto che attraversa qualsiasi interfaccia ppp o carp.
  • af = La famiglia di indirizzi del pacchetto, inet per IPv4 oppure inet6 per IPv6. Di solito PF è in grado di determinare questo parametro basandosi sull'indirizzo sorgente e/o destinazione.
  • protocol = Il protocollo del Layer 4 del pacchetto:
    • tcp
    • udp
    • icmp
    • icmp6
    • Un nome di protocollo valido da /etc/protocols
    • Un numero di protocollo compreso tra 0 e 255
    • Un insieme di protocolli usando una lista.
  • src_addr, dst_addr = L'indirizzo sorgente/destinazione dell'header IP. Gli indirizzi possono essere specificati come:
    • In singolo indirizzo IPv4 e IPv6.
    • Un blocco di CIDR network.
    • Un nome di dominio assegnato che viene risolto via DNS quando vengono caricate le regole di configurazione. Tutti gli indirizzi IP corrispondenti saranno sostituiti nelle regole.
    • Il nome di un'interfaccia di rete o di un gruppo di interfaccie. Ogni indirizzo IP assegnato all'interfaccia sarà sostituito nella regola.
    • Il nome di un'interfaccia di rete seguita da /netmask (per esempio, /24). Ogni indirizzo IP di un'interfaccia è associata con la netmask per formare un blocco CIDR network sostituito nelle regole.
    • Il nome di un'interfaccia di rete tra parentesi ( ). Questo suggerisce a PF di aggiornare le regole se dovessero cambiare gli indirizzi dell'interfaccia. E' utile per un'interfaccia che ottiene il suo indirizzo IP via DHCP o in dial-up così da evitare di ricaricare le regole di configurazione ogni volta che cambia l'indirizzo.
    • Il nome di un'interfaccia di rete seguita da uno di questi parametri:
      • :network - sostituisce il blocco di CIDR network (per esempio, 192.168.0.0/24)
      • :broadcast - sostituisce l'indirizzo di broadcast (per esempio, 192.168.0.255)
      • eer - sostituisce l'indirizzo peer IP in un collegamento point-to-point Inoltre il parametro :0 può seguire sia il nome di un'interfaccia oppure ognuno dei parametri visti precedentemente e indica che PF non dovrebbe includere indirizzi IP alias nella sostituzione. Questi parametri possono anche essere usati quando l'interfaccia è contenuta tra parentesi. Esempio: fxp0:network:0
    • Una tabella.
    • La keyword urpf-failed può essere usata per un indirizzo sorgente ad indicare che dovrebbe essere eseguita attraverso il controllo uRPF.
    • Ognuno dei parametri precedenti ma negati usando il parametro ! ("not").
    • Un set di indirizzi usando una lista.
    • La keyword any ad indicare tutti gli indirizzi
    • La keyword all che indica from any to any cioè da ovunque a ovunque.
  • src_port, dst_port = La porta sorgente/destinazione nell'header dell'Layer 4. Le porte possono essere specificate come:
    • Un numero tra 1 e 65535
    • Un nome di servizio valido da /etc/services
    • Un set di porte usando una lista
    • Un range:
      • != (diverso)
      • < (minore)
      • > (maggiore)
      • <= (minore o uguale)
      • >= (maggiore o uguale)
      • >< (range)
      • <> (range inverso) Gli ultimi due operatori sono binari (prendono due argomenti) e non includono gli argomenti nel range.
      • : (range inclusivo) Anche l'operatore di range inclusivo è un operatore binario e include gli argomenti nel range.
  • tcp_flags = Specifica i flag che devono essere settati nel TCP header quando si usa un protocollo tcp. I flag sono definiti come flags check/mask. Per esempio:flags S/SA - questo istruisce PF a cercare solo pacchetti con flag S e A (SYN e ACK) e a considerare una corrispondenza solo quando il flag SYN è "on". In OpenBSD 4.1 e successivi, i flag di default S/SA sono applicati a tutte le regole di filtraggio.
  • state = Specifica se informazioni di stato sono conservate per pacchetti che hanno corrispondenza con questa regola.
    • keep state - funziona con TCP, UDP, e ICMP. In OpenBSD 4.1 e successivi, questa opzione è di default per tutte le regole di filtraggio.
    • modulate state - funziona solo con TCP. PF genera un numero di sequenza iniziale (ISNs) non facilmente prevedibile per pacchetti che hanno una corrispondenza con questa regola.
    • synproxy state - connessioni proxy TCP in ingresso per proteggere il server da flood TCP SYN contraffatti. Questa opzione include la funzionalità keep state e modulate 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
La regola sovrastante blocca tutto il traffico per e da il firewall sia nel protocollo ipv4 che ipv6.
Codice:
antispoof log quick for { $int_if, $ext_if }
Con questa regola diciamo a PF di abilitare l'antispoof sulle interfacce scritte tra le graffe; l'antispoof non
è 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
Queste regole spiegano a PF di bloccare direttamente i pacchetti che hanno ip sorgente e di destinazione
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
Questa regola permette al firewall di comunicare verso l'esterno;
Codice:
anchor "ftp-proxy/*"
Questa regola permette di utilizzare ftp-proxy;
Codice:
pass in on $int_if proto tcp from any to any port { 80, 443 } modulate state flags S/SA
Questa serie di regole permette il traffico web;
Codice:
pass in on $int_if proto tcp from any to any port { 110, 25 } modulate state flags S/SA
Queste regole permettono di utilizzare i protocolli di posta pop3 e smtp;
Codice:
pass in on $int_if proto tcp from any to any port { 20, 21, 8021 } modulate state flags S/SA
Queste regole permettono l'utilizzo del ftp;
Codice:
pass in on $int_if proto tcp from any to any port 22 modulate state flags S/SA
Queste regola permettono l'utilizzo di ssh per settare il firewall da remoto nella rete locale;
Codice:
pass in on $int_if proto udp from any to any port 53 keep state
Queste regole permettono la risoluzione nomi (DNS);
Codice:
pass in on $int_if proto udp from any to any port 123 keep state
Queste regole servono per permettere la sincronizzazione dell'orario tramite internet;
Codice:
pass in on $int_if proto icmp from any to any keep state
Queste regole servono per poter utilizzare gli icmp ad esempio come ad esempio il ping;
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
La regola sovrastante blocca tutto il traffico per e da il firewall sia nel protocollo ipv4 che ipv6.
Codice:
antispoof log quick for { $int_if, $ext_if }
Con questa regola diciamo a PF di abilitare l'antispoof sulle interfacce scritte tra le graffe; l'antispoof non
è 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
Queste regole spiegano a PF di bloccare direttamente i pacchetti che hanno ip sorgente e di destinazione
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
Questa regola permette al firewall di comunicare verso l'esterno;
Codice:
anchor "ftp-proxy/*"
Questa regola permette di utilizzare ftp-proxy;
Codice:
pass in on $int_if proto udp from $int_if:network to any keep state
Questa regola permette a tutti i pc collegati all'interfaccia interna (appartenenti alla stessa rete) di comunicare col protocollo UDP verso l'esterno;
Codice:
pass in on $int_if proto tcp from $int_if:network to any modulate state flags S/SA
Questa regola permette a tutti i pc collegati all'interfaccia interna (appartenenti alla stessa rete) di comunicare col protocollo TCP verso l'esterno;
Codice:
pass in on $int_if proto icmp from $int_if:network to any keep state
Questa regola permette a tutti i pc collegati all'interfaccia interna (appartenenti alla stessa rete) di comunicare col protocollo ICMP verso l'esterno;
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
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
__________________
In vendita ora:

Guide:OpenBSD Firewall Faq (creiamo un firewall HW)

Ultima modifica di ER}M{AC : 07-08-2009 alle 07:14.
ER}M{AC è offline   Rispondi citando il messaggio o parte di esso
Old 10-10-2008, 05:42   #7
ER}M{AC
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
  2. DHCP
  3. DNS locale Incompleto
---------------------------------------



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.
  • VIM è un editor di testo simile a VI (quello installato per default) però più completo e a mio avviso più comodo ed accessibile
  • SCREEN permette di creare delle sessioni virtuali a cui ci si può staccare e attaccare a piacimento senza cosi interrompere l'esecuzione di un programma complesso come ad esempio la ricompilazione del kernel
  • BASH è la shell di default della maggioranza dei sistemi Linux la ritengo molto più comoda di quella di OpenBSD
Bene dopo questa piccola introduzione ecco in pratica la spiegazione di come fare ad installarli.
  1. Per installare bisogna prima di tutto esportare una variabile d'ambiente che permette al Packet Manager di scaricare e installare i file che servono:
    Codice:
    # export PKG_PATH=ftp://ftp.openbsd.org/pub/OpenBSD/4.5/
    Digitiamo export PKG_PATH=ftp://ftp.openbsd.org/pub/OpenBSD/4.5/
  2. In questo esempio installeremo screen ma fondamentalmente il comportamento da eseguire è lo stesso per tutti cambiando semplicemente il nome del pacchetto in BASH, VIM ecc ecc:
    Codice:
    # pkg_add -iv screen
    Digitiamo pkg_add -iv screen
  3. Dato questo comando dovreste ricevere un output simile a questo:
    Codice:
    Ambiguous: screen could be screen-4.0.3p0 screen-4.0.3p0-shm screen-4.0.3p0-static
    Choose one package
    0: <None>
    1: screen-4.0.3p0
    2: screen-4.0.3p0-shm
    3: screen-4.0.3p0-static
    Your choice: 1
    A questo punto non resta altro che digitare il numero di fianco alla versione di pacchetto che vogliamo installare e premere invio.
Piccola nota aggiuntiva nel caso voi installiate Bash per renderla la default shell per l'utente root dovrete dare questo comando usermod -s /usr/local/bin/bash root
---------------------------------------



2) DHCP

Configuriamo un server DHCP
  1. Per prima cosa dobbiamo controllare che nel file /etc/rc.conf.local sia presente la seguente riga e se è presente che sia senza # davanti.
    Codice:
    dhcpd_flags="rl1"
    Al posto di rl1 va inserito il nome della vostra interfaccia di rete interna
  2. Per modificare il file di configurazione del dhcp digitiamo
    Codice:
    # vi /etc/dhcpd.conf
    Una volta entrati nel file potrebbe esserci già una configurazione di esempio. Cancellarla e sostituirla con questa qua di seguito, ovviamente la potete modificare come meglio credete in base alle vostre esigenze.
    Codice:
     
    shared-network LOCAL-NET {
            option domain-name "tuodominio";
            option domain-name-servers  208.67.222.222, 208.67.220.220;
            subnet 192.168.1.0 netmask 255.255.255.224 {
            option routers 192.168.1.30;
            range 192.168.1.1 192.168.1.29;
            }
    }
---------------------------------------



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.
  1. Per fare questo abbiamo bisogno di avere l'ultima versione del demone DHCP, per farlo basterà installarlo esattamente come abbiamo fatto per screen ecc; partendo dal presupposto di avere già esportato la variabile di sistema
    Codice:
    # pkg_add -iv isc-dhcp-server
    Digitiamo pkg_add -iv isc-dhcp-server
  2. Andiamo a modificare il file /etc/rc.conf.local e assicuriamoci che non sia presente questa una riga simile a questa
    Codice:
     dhcpd_flags=""          # enable dhcp deamon
    Il in caso affermativo cancellarla e salvare.
  3. Modifichiamo il file /etc/rc.local
    Codice:
    # vim /etc/rc.local
    Aggiungiamo alla fine del file queste righe
    Codice:
    if [ -x /usr/local/sbin/dhcpd ]; then
                 echo -n ' dhcpd';       /usr/local/sbin/dhcpd
    fi
    
    echo '.'
    Salviamo e usciamo da quest'ultimo
  4. La prossima operazione che faremo sarà creare una chiave di autenticazione per aggiornare il nostro server DNS tramite DHCP. Per fare questo basta che diamo questo comando rndc-confgen -b 128 -ac /var/named/etc/dhcpd.key -k dhcpdkey && chmod 640 /var/named/etc/dhcpd.key && chown root:named /var/named/etc/dhcpd.key && ln -s /var/named/etc/dhcpd.key /etc/dhcpd.key
  5. Ora dobbiamo creare il file di configurazione principale del nostro dns server e per fare questo:
    Codice:
    # vim /var/named/etc/named.conf
    Per fare questo digitiamo vim /var/named/etc/named.conf
  6. Una volta aperto il file eliminiamo le eventuali righe presenti e editiamolo come segue
    Codice:
    acl clients {
            localnets;
            ::1;
    };
    
    options {
            version "";     // remove this to allow version queries
    
            listen-on    { any; };
            listen-on-v6 { none; };
    
            empty-zones-enable yes;
    
            allow-recursion { clients; };
    
            forwarders { 208.67.222.222; 208.67.220.220; };
    };
    
    include "/etc/dhcpd.key"
    
    // Standard zones
    //
    
    zone "localhost" {
            type master;
            file "standard/localhost";
            allow-transfer { localhost; };
    };
    
    zone "127.in-addr.arpa" {
            type master;
            file "standard/loopback";
            allow-transfer { localhost; };
    };
    
    zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" {
            type master;
            file "standard/loopback6.arpa";
            allow-transfer { localhost; };
    };
    
    // Master zones
    //
    
    // Al posto di tuo dominio bisogna mettere il nome del proprio dominio locale
    // ad esempio paperino
    zone "tuodominio" {
            type master;
            file "master/tuodominio";
            allow-update { key dhcpdkey; };
    };
    
    // Il nome 1.168.192.in-addr.arpa è dato dall'inversione del idirizzo ip della rete
    // con aggiunta della desinenza .in-addr.arpa
    zone "1.168.192.in-addr.arpa" {
            type master;
            file "master/1.168.192.in-addr.arpa";
            allow-update { key dhcpdkey; };
    };
  7. Creiamo il primo file zone, per fare questo digitiamo vi /var/named/master/tuodominio
    Una volta all'interno modifichiamolo come segue
    Codice:
    $TTL 86400      ; 1 day
    @              IN SOA  tuonomepc.tuodominio. root.tuodominio. (
                                    0        ; serial
                                    3600       ; refresh (1 hour)
                                    300        ; retry (5 minutes)
                                    172800     ; expire (2 days)
                                    7200       ; minimum (2 hours)
                                    )
                            NS      tuonomepc.earthrealm.
    tuonomepc                 A       192.168.1.30
    mi raccomando mettere al posto dell'indirizzo ip 192.168.1.30 il proprio indirizzo ip della interfaccia interna
  8. Creiamo il secondo file zone, per fare questo digitiamo vi /var/named/master/1.168.192.in-addr.arpa
    Codice:
    $TTL 86400      ; 1 day
    @ IN SOA  tuonomepc.tuodominio. root.tuodominio. (
                                    0        ; serial
                                    3600       ; refresh (1 hour)
                                    300        ; retry (5 minutes)
                                    172800     ; expire (2 days)
                                    7200       ; minimum (2 hours)
                                    )
                            NS      tuonomepc.tuodominio.
    30                      PTR     tuonomepc.tuodominio.
    Ricordarsi di di variare il valore 1.168.192 se diverso dalla propria rete e la desinenza 30 se il nostro pc ha un indirizzo ip diverso da xxx.xxx.xxx.30
  9. Ora rimane solo da settare il server dhcp per fare questo digitiamo vim /etc/dhcpd.conf ed eliminiamo tutto il contenuto presente. Modifichiamolo come segue
    Codice:
    option domain-name "tuodominio";
    authoritative;
    ddns-update-style interim;
    update-static-leases on;
    max-lease-time 3600;
    default-lease-time 1440;
    ddns-domainname = "tuodominio";
    
    include "/etc/dhcpd.key"
    
    zone tuodominio. {
            primary tuonomepc;
            key dhcpdkey;
    }
    
    zone 1.168.192.in-addr.arpa. {
            primary tuonomepc;
            key dhcpdkey;
    }
    
    
    subnet 192.168.1.0 netmask 255.255.255.224 {
            option subnet-mask 255.255.255.224;
            option routers 192.168.1.30;
            option domain-name-servers 192.168.1.30;
            range 192.168.1.1 192.168.1.29;
    }
    Come nei passaggi precedenti modificate i valori per renderlo conforme alla vostra rete. Riavviamo il pc e se tutto è configurato correttamente ecco a voi un server dns locale che si aggiorna tramite le richieste dhcp.
    Ultima precisazione se i vostri pc sono linux ricordatevi di modificare il file /etc/dhcp3/dhclient.conf modificando o aggiungendo la riga send "host-name "nomepc";"


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
__________________
In vendita ora:

Guide:OpenBSD Firewall Faq (creiamo un firewall HW)

Ultima modifica di ER}M{AC : 13-06-2010 alle 09:36.
ER}M{AC è offline   Rispondi citando il messaggio o parte di esso
Old 10-10-2008, 05:42   #8
ER}M{AC
Senior Member
 
Iscritto dal: Sep 2002
Messaggi: 344
[Guida] OpenBSD Firewall Faq (creiamo un firewall HW)

EDIT
__________________
In vendita ora:

Guide:OpenBSD Firewall Faq (creiamo un firewall HW)

Ultima modifica di pegasolabs : 05-08-2009 alle 07:31.
ER}M{AC è offline   Rispondi citando il messaggio o parte di esso
Old 10-10-2008, 05:42   #9
ER}M{AC
Senior Member
 
Iscritto dal: Sep 2002
Messaggi: 344
[Guida] OpenBSD Firewall Faq (creiamo un firewall HW)

EDIT
__________________
In vendita ora:

Guide:OpenBSD Firewall Faq (creiamo un firewall HW)

Ultima modifica di pegasolabs : 05-08-2009 alle 07:31.
ER}M{AC è offline   Rispondi citando il messaggio o parte di esso
Old 10-10-2008, 05:55   #10
pegasolabs
Senior Member
 
L'Avatar di pegasolabs
 
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.

Ultima modifica di pegasolabs : 10-10-2008 alle 05:58.
pegasolabs è offline   Rispondi citando il messaggio o parte di esso
Old 10-10-2008, 16:49   #11
G30
Senior Member
 
L'Avatar di G30
 
Iscritto dal: Jan 2007
Città: Martinsicuro (Te)
Messaggi: 4796
Intanto un bel grazie all'autore
__________________
Trattative ok con piu' di 100 utenti, cercate tra i miei messaggi! EVITATE VALERIAA
G30 è offline   Rispondi citando il messaggio o parte di esso
Old 07-11-2008, 16:34   #12
Hal2001
Senior Member
 
L'Avatar di Hal2001
 
Iscritto dal: Aug 2004
Messaggi: 19256
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
Hal2001 è offline   Rispondi citando il messaggio o parte di esso
Old 02-12-2008, 09:02   #13
EDESMO
Senior Member
 
L'Avatar di EDESMO
 
Iscritto dal: May 2003
Città: Roma-provincia
Messaggi: 958
il download mi da errore,
è un problema mio o si può verificare?
grazie
EDESMO è offline   Rispondi citando il messaggio o parte di esso
Old 02-12-2008, 12:47   #14
pegasolabs
Senior Member
 
L'Avatar di pegasolabs
 
Iscritto dal: May 2004
Città: Salerno
Messaggi: 21185
Quote:
Originariamente inviato da EDESMO Guarda i messaggi
il download mi da errore,
è un problema mio o si può verificare?
grazie
Segnaliamo ad ERMAC, che ringrazio per il lavoro che sta portando avanti. Probabilmente lo spider dei motori di ricerca uniti ai download degli utenti fanno esaurire ben presto il servizio free a disposizione.
In alternativa si può hostare su mediafire, 4shared, filefactory, boxst
pegasolabs è offline   Rispondi citando il messaggio o parte di esso
Old 02-12-2008, 13:51   #15
ER}M{AC
Senior Member
 
Iscritto dal: Sep 2002
Messaggi: 344
Corretto comunque appena ho un po di tempo faccio un po di mirror
__________________
In vendita ora:

Guide:OpenBSD Firewall Faq (creiamo un firewall HW)

Ultima modifica di ER}M{AC : 02-12-2008 alle 13:55.
ER}M{AC è offline   Rispondi citando il messaggio o parte di esso
Old 02-12-2008, 14:13   #16
G30
Senior Member
 
L'Avatar di G30
 
Iscritto dal: Jan 2007
Città: Martinsicuro (Te)
Messaggi: 4796
Grazie, Ermac
__________________
Trattative ok con piu' di 100 utenti, cercate tra i miei messaggi! EVITATE VALERIAA
G30 è offline   Rispondi citando il messaggio o parte di esso
Old 02-12-2008, 16:37   #17
EDESMO
Senior Member
 
L'Avatar di EDESMO
 
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
EDESMO è offline   Rispondi citando il messaggio o parte di esso
Old 31-01-2009, 16:14   #18
eve
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
eve è offline   Rispondi citando il messaggio o parte di esso
Old 31-01-2009, 17:19   #19
ER}M{AC
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
__________________
In vendita ora:

Guide:OpenBSD Firewall Faq (creiamo un firewall HW)
ER}M{AC è offline   Rispondi citando il messaggio o parte di esso
Old 11-06-2009, 19:17   #20
ER}M{AC
Senior Member
 
Iscritto dal: Sep 2002
Messaggi: 344
UP
__________________
In vendita ora:

Guide:OpenBSD Firewall Faq (creiamo un firewall HW)
ER}M{AC è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Tre giorni in Finlandia con OnePlus Watch 2 Nordic Blue. La nostra prova a temperature estreme Tre giorni in Finlandia con OnePlus Watch 2 Nord...
Lenovo Factory Tour: siamo entrati nella fabbrica ungherese che produce PC, storage e server Lenovo Factory Tour: siamo entrati nella fabbric...
Acer Nitro V 15, alla prova il notebook gaming essenziale con RTX 4050 Laptop Acer Nitro V 15, alla prova il notebook gaming e...
Stellar Blade: l'action RPG di Shift Up sfoggia uno stile (quasi) unico su PS5 - Recensione Stellar Blade: l'action RPG di Shift Up sfoggia ...
Recensione Zenfone 11 Ultra: il flagship ASUS ritorna a essere un 'padellone' Recensione Zenfone 11 Ultra: il flagship ASUS ri...
Samsung dirà addio alle GPU AMD p...
PlayStation Plus: a maggio regala EA Spo...
Intel ha ricevuto 30 milioni di euro dal...
Offerte Amazon del Weekend: super prezzi...
I Google Pixel Watch 2 sono crollati a 2...
Creator digitali, c'è un PC LG Gr...
La sindrome da inseguimento ad OpenAI st...
Da non credere: questo TV Nokia UHD da 6...
Senza precedenti: portatile Medion Full ...
Torna disponibile il super tablet da 109...
Torna in scorte il portatile low cost 16...
Open RAN: Nokia e Vodafone hanno complet...
Google: licenziamenti in California e nu...
Il Gusto delle cose: un'ode alla passion...
Emergono dettagli sull'attacco informati...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 22:25.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Served by www3v