PDA

View Full Version : [Guida] OpenBSD Firewall Faq (creiamo un firewall HW)


ER}M{AC
10-10-2008, 05:42
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

ER}M{AC
10-10-2008, 05:42
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

ER}M{AC
10-10-2008, 05:42
Installazione

In questo capitolo andremo ad affrontare quelle che sono le fasi di installazione: Ecco brevemente come sarà suddiviso il nostro lavoro:
Procurarsi OpenBSD.
Primi passi della installazione.
Configurare l'HDD.
DiskLabel.
HostName.
Rete.
Password.
Da dove installare.
Cosa installare.
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
Dopo aver riavviato la macchina con il cd che abbiamo scaricato e masterizzato, il pc si fermerà su tale scritta;
(I)nstall, (U)pgrade or (S)hell? i
Si risponderà digitando il tasto i e premendo invio
A questo punto verrà chiesto che tipo di terminale si voglia utilizzare;
Specify terminal type: [vt220] Enter
Lasciamo la scelta standard e pigiamo invio.
Verrà richiesto il layout della tastiera;
kbd(8) mapping? ('L for list) [none] it
Presupponendo di utilizzarne una italiana risponderemo digitando it e premendo invio.
A questo punto sarà richiesto se si desidera procedere con la installazione;
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.
Presupponendo che si abbia un singolo disco, alla domanda: “quale disco utilizzare”
Available disks are: wd0.
hich one is the root disk? (or done) [wd0] Enter
Lasciare la scelta standard e pigiare invio.
Ora sarà richiesto se si desidera dedicare tutto il disco a OpenBSD
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.
Digitare per avere la lista dei disklabel p e premere invio;

> 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.
Sarebbe consigliabile che oltre il disklabel c, non vi siano ulteriori disklabel; dunque per cancellarne di eventuali digitare:
> d a
Digitare d a, d b, d d ecc e cosi via finché non si elimineranno tutti.
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)

> 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 /
È 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)

> 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.
Appena tornati al prompt non si dovrà far altro che salvare le modifiche.

> q
Write new label?: [y] Enter

Digitare q seguito da un invio, e quindi una seconda volta per confermare; scrivere le modifiche.
Ora ci chiederà se siamo sicuri di voler cancellare tutto il contenuto del HDD

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;
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.
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)

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

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:

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

Consiglio di usare l'installazione standard suggerita (vedere sopra) eliminando solamente il pacchetto game; per fare questo basta digitare
Set name? (or 'done') [bsd.mp] -game45.tgz
Digitare -game45.tgz e pigiare invio
Quando ricomparirà
Set name? (or 'done') [bsd.mp] done
Digitare done e poi invio; partirà l'installazione delle cose selezionate
Per completare il tutto alla richiesta
Ready to install sets? [yes]
Pigiare invio per proseguire
Ci verrà chiesta di nuovo la posizione dei file di installazione
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
Per prima cosa ci chiederà se vogliamo abilitare SSH:
Start sshd(8) by default? [yes] y
Diremo di si digitando y e poi invio
Ci chiederà se vogliamo attivare ntpd (è un sistema che sincronizza l'ora); qui scegliete voi io personalmente l'ho abilitato
NTP server (or 'none' or 'default') [none] default
Se lo volete prima di premere invio digitate default
Chiederà se vi aspettate che parta X la risposta sarà ovviamente no
Do you expect to run the X Window System? [no] Enter
Premere semplicemente invio
Vi chiederà su quale porta desiderate far girare la console; lasciate la scelta standard
Change the default console to com0? [no] Enter
Quindi pigiate semplicemente invio
Vi sarà chiesto di qual'è time zone; immettete Italia quindi procedete come di seguito
What timezone are you in? ('?' for list) [Canada/Mountain] Europe/Rome
Digitare Europe/Rome mi raccomando alle maiuscole e alle minuscole)
A questo punto vi apparirà la scritta seguente:

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
Il computer ci dirà che il OS è stato stoppato

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

ER}M{AC
10-10-2008, 05:42
Configurazione sistema

In questo capito affronteremo la configurazione del sistema base, ovvero come istallare alcuni servizi che potrebbero esserci utili, quali:
Login
VI
Abilitazione servizi
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

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:
# vi /etc/rc.conf.local
digitiamo vi /etc/rc.conf.local
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:

ntpd_flags="" # enabled during install
sshd_flags="" # enabled during install
pf=YES # enable PF
ftpproxy_flags="" # enable ftp proxy

Salvate e uscite.

---------------------------------------


4) Forwarding

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:
# vi /etc/sysctl.conf
Digitiamo vi /etc/sysctl.conf
Ora cercare la riga all'inizio del file con scritto #net.inet.ip.forwarding=1 ed eliminare il commento # come nell'esempio qua sotto
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

ER}M{AC
10-10-2008, 05:42
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
Configurazione schede di rete
Configurazione gateway e dns

http://img142.imageshack.us/img142/139/72669820.png
---------------------------------------


1) Configurazione schede di rete

Andiamo a settare gli indirizzi ip delle nostre schede di rete:
Innanzitutto cerchiamo di capire come sono state nominate digitando ifconfig -a
Per prima cosa settiamo la scheda di rete che va verso il router/lan esterna:
# 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
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
dhcp
Salviamo e usciamo.
Secondariamente settiamo la scheda di rete che va verso la nostra rete locale:
# 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
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

Impostiamo il default gateway andando ad editare mygate che si trova in etc
# vi /etc/mygate
All'interno di questo file inseriamo l'indirizzo ip del nostro default gateway
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.
Impostiamo i server DNS per risolvere gli indirizzi di rete esterna quindi andiamo ad editare
resolv.conf che si trova in etc:
# vi /etc/resolv.conf
All'interno di questo file inseriamo gli indirizzi ip dei server dns:

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

ER}M{AC
10-10-2008, 05:42
Firewall

In questo capitolo verrà spiegato come configurare PacketFilter
Introduzione a PacketFilter
Macro
Opzioni
Scrub
Nat e riindirizzamento
Regole
Regole: piccolo ufficio
Regole: casa senza blocchi

http://img142.imageshack.us/img142/139/72669820.png
---------------------------------------


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
# pfctl -e
Disabilita PacketFilter
# pfctl -d
Carica il file pf.conf
# pfctl -f /etc/pf.conf
Analizza il file, ma non lo carica
# pfctl -nf /etc/pf.conf
Carica solo le regole della NAT dal file
# pfctl -Nf /etc/pf.conf
Carica solo le regole di filtraggio dal file
# pfctl -Rf /etc/pf.conf
Mostra le attuali regole di NAT
# pfctl -sn
Mostra le attuali regole di filtraggio
# pfctl -sr
Mostra la tabella di stato attuale
# pfctl -ss
Mostra i contatori e le statistiche di filtraggio
# pfctl -si
Mostra tutto ciò che si può mostrare
# 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
Andiamo ad editare il file di configurazione di PF; per fare questo dobbiamo digitare:
# 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).
Questo è un esempio di macro molto semplice ma allo stesso tempo utile:

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:

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.
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:

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.
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.
[B]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)
:peer - 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.

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.
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

#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.

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;
anchor "ftp-proxy/*"
Questa regola permette di utilizzare ftp-proxy;
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;
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;
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;
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;
pass in on $int_if proto udp from any to any port 53 keep state
Queste regole permettono la risoluzione nomi (DNS);
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;
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

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:

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.
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

#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.

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;
anchor "ftp-proxy/*"
Questa regola permette di utilizzare ftp-proxy;
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;
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;
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

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

ER}M{AC
10-10-2008, 05:42
Varie

In questo capitolo spiegherò brevemente come installare e configurare alcuni software aggiuntivi
Installare SCREEN, BASH e VIM
DHCP
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.
Per installare bisogna prima di tutto esportare una variabile d'ambiente che permette al Packet Manager di scaricare e installare i file che servono:
# export PKG_PATH=ftp://ftp.openbsd.org/pub/OpenBSD/4.5/
Digitiamo export PKG_PATH=ftp://ftp.openbsd.org/pub/OpenBSD/4.5/
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:
# pkg_add -iv screen
Digitiamo pkg_add -iv screen
Dato questo comando dovreste ricevere un output simile a questo:

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
Per prima cosa dobbiamo controllare che nel file /etc/rc.conf.local sia presente la seguente riga e se è presente che sia senza # davanti.
dhcpd_flags="rl1"
Al posto di rl1 va inserito il nome della vostra interfaccia di rete interna
Per modificare il file di configurazione del dhcp digitiamo
# 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.

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.

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
# pkg_add -iv isc-dhcp-server
Digitiamo pkg_add -iv isc-dhcp-server
Andiamo a modificare il file /etc/rc.conf.local e assicuriamoci che non sia presente questa una riga simile a questa
dhcpd_flags="" # enable dhcp deamon
Il in caso affermativo cancellarla e salvare.
Modifichiamo il file /etc/rc.local
# vim /etc/rc.local
Aggiungiamo alla fine del file queste righe
if [ -x /usr/local/sbin/dhcpd ]; then
echo -n ' dhcpd'; /usr/local/sbin/dhcpd
fi

echo '.'
Salviamo e usciamo da quest'ultimo
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
Ora dobbiamo creare il file di configurazione principale del nostro dns server e per fare questo:
# vim /var/named/etc/named.conf
Per fare questo digitiamo vim /var/named/etc/named.conf
Una volta aperto il file eliminiamo le eventuali righe presenti e editiamolo come segue
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; };
};

Creiamo il primo file zone, per fare questo digitiamo vi /var/named/master/tuodominio
Una volta all'interno modifichiamolo come segue

$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
Creiamo il secondo file zone, per fare questo digitiamo vi /var/named/master/1.168.192.in-addr.arpa

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

ER}M{AC
10-10-2008, 05:42
EDIT

ER}M{AC
10-10-2008, 05:42
EDIT

pegasolabs
10-10-2008, 05:55
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.

G30
10-10-2008, 16:49
Intanto un bel grazie all'autore :)

Hal2001
07-11-2008, 16:34
Grazie, la sto leggendo ;)

EDESMO
02-12-2008, 09:02
il download mi da errore,
è un problema mio o si può verificare?
grazie

pegasolabs
02-12-2008, 12:47
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

ER}M{AC
02-12-2008, 13:51
Corretto comunque appena ho un po di tempo faccio un po di mirror

G30
02-12-2008, 14:13
Grazie, Ermac ;)

EDESMO
02-12-2008, 16:37
ho scaricato, grazie,
ma grazie ER}M{AC sopratutto per l'ottimo lavoro messoci a disposizione

eve
31-01-2009, 16:14
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.

ER}M{AC
31-01-2009, 17:19
E aggiungerei sicuramente + complete perché in questa guida ho solo elencato il minimo indispensabile per renderla il più semplice possibile

ER}M{AC
11-06-2009, 19:17
UP

eve
11-06-2009, 19:23
non si riesce a scaricarla...potresti metterlo da qualche altra parte?

ER}M{AC
13-06-2009, 15:20
Sinceramente non saprei dove metterla rapidshare va giù subito per i limiti questo era il migliore ma che problemi ti da a me funziona perfettamente...

eve
13-06-2009, 15:52
Sinceramente non saprei dove metterla rapidshare va giù subito per i limiti questo era il migliore ma che problemi ti da a me funziona perfettamente...

su megaupload

ER}M{AC
07-08-2009, 08:57
up

ER}M{AC
04-10-2009, 07:47
UP

krazyk
12-06-2010, 23:59
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.

Quanto detto non è per nulla corretto.
I due prodotti citati sono basati su FreeBSD.
pfSense usa pf (siamo però a livello della versione presente su OpenBSD 4.0)
m0n0wall usa ipf, che tutt'altro prodotto.

eve
13-06-2010, 19:30
Quanto detto non è per nulla corretto.
I due prodotti citati sono basati su FreeBSD.
pfSense usa pf (siamo però a livello della versione presente su OpenBSD 4.0)
m0n0wall usa ipf, che tutt'altro prodotto.

mi cambia poco. sono sempre ottimi entrambi.

Giacomo.56
21-02-2012, 18:39
Per forza in un pc si installa il Firewall? Se si volesse metterlo in un router è possibile?

ER}M{AC
21-02-2012, 18:51
ni potresti una sbc come le pcengines o soekris in aggiunta ti consiglio un modem tipo il digicom combocx e con una cifra tuttosommato contenuta cavartela...

comunque a breve farò una guida basata su debian e aggirnata... sigsob tempo permettendo...

Giacomo.56
21-02-2012, 20:01
ni potresti una sbc come le pcengines o soekris in aggiunta ti consiglio un modem tipo il digicom combocx e con una cifra tuttosommato contenuta cavartela...

comunque a breve farò una guida basata su debian e aggirnata... sigsob tempo permettendo...

Ho capito ben poco in questa risposta. Cosa dovrei usare? Mi serve solo un router dove mettere openbsd come firewall.

Giacomo.56
21-02-2012, 20:07
Mi pare di aver capito che i citati Pcengines e Soekris vendono apparati router "vergini". Non vi è nessun firmware installato come avviene al contrario in quelli commerciali. Per caso è così?

ER}M{AC
21-02-2012, 20:48
diciamo che sono dei veri e propri pc con architettura i386 su cui puoi fare girare un po di tutto (ipcop, pfsense, openbsd, linux, ecc ecc)

http://en.wikipedia.org/wiki/Single-board_computer

Giacomo.56
21-02-2012, 23:04
diciamo che sono dei veri e propri pc con architettura i386 su cui puoi fare girare un po di tutto (ipcop, pfsense, openbsd, linux, ecc ecc)

http://en.wikipedia.org/wiki/Single-board_computer

Ma quanto costano?

nightborn
05-03-2012, 09:59
mi cambia poco. sono sempre ottimi entrambi.

Mi associo a tale commento. A parte il caso in cui servano soluzioni elevatamente specifiche e su misura per cui si debba costruire il firewall passo
passo, ed, in tal caso, reputo ottima la scelta su openbsd e molto valida la guida qui presente, gran parte delle volte pfsense/monowall/zeroshell fanno bene il loro mestiere.