Transparent Firewall – parte 1 – Installazione OpenBSD

Lo scopo di questo articolo è di installare un firewall OpenBSD, che ha 3 schede di rete: una per la gestione e le altre due configurate in bridge. Quali sono i vantaggi di questa soluzione? Che il firewall non sarà in nessun modo rilevabile nè dall’esterno nè dall’interno (non ha indirizzo ip se non per la configurazione). Un altro vantaggio è che potrete posizionarlo in qualunque segmento della rete, senza dover modificare le impostazioni di rete del router nè dei client. Può essere usato anche per studiare il tipo di traffico effettuato dai nostri client per individuare ad esempio il motivo di lamentele sulla lentezza della rete o verificare quali a quali scansioni provenienti da internet sono sottoposti i vostri server pubblici.

Ma iniziamo a sporcarci le mani: la lista degli ingredienti comprende un pc anche non eccessivamente carrozzato (un pentium II con almeno 128Mb di ram andrà bene l’importante è che abbia un hard disk da almeno 40Gb da dedicare interamente ad openbsd e 3 schede di rete) e un pc da cui configurare via ssh il suddetto firewall.
Ottenere openbsd è semplice, cercatelo nel vostro motore di ricerca preferito e lo troverete nella forma di un file iso da circa 200 Mb dal nome install42.iso masterizzatelo e avviate il pc che farà da firewall con il cd inserito.
La procedura di installazione di questo sistema operativo risulta particolarmente macchinosa rispetto a quella del nostro pinguino, ma vi darò i comandi da inserire passo passo (come io li ho trovati in rete).

Terminal type: [vt220] ----> premere invio
kbd(8) mapping? ('L' for list) [none] ----> digitare it e poi invio

chiede se avete fatto il backup perchè la procedura di installazione cancellerà TUTTO il contenuto dell’ hard disk

Proceed with install [no] ----> digitare yes e poi invio

Available disks are wd0.
Which one is the root disk? (or done) [wd0] ----> premere invio (nel nostro caso è stato trovato un solo hard disk nel pc)
Do you want to use *all* of wd0 for OpenBSD [no] ---> digitare yes e invio

qui viene il bello! creare le partizioni a manina…

la richiesta sarà:

Initial label editor (enter '?' for help at any prompt)

digitare “p g” seguito da invio per mostrare la lista delle partizioni presenti attualmente sul disco – per cancellarle (avendo cura di usare un hard disk senza DATI IMPORTANTI) digitare in sequenza
“d a” invio
“d b” invio
“d d” invio
non preoccupatevi se avere errori in quanto io avevo 3 partioni sul disco e le ho cancellate tutte e 3
“p g” invio
mostra il contenuto del disco dopo la cancellazione delle partizioni inutili:

device: / dev/rwd0c
c: 38.3G

questo significa che l’hard disk è vuoto (e che è da 40Gb).

“a a” invio

offset: [63] ----> invio
size: [80292807] ------> 10g invio
Rounding to nearest cylinder: 20971377
FS type: [4.2BSD] ----> invio
mount point: [none] ----> "/" invio

“a b” invio

offset: [20971440] ----> invio
size: [59321430] ------> 1.1g invio
Rounding to nearest cylinder: 2307312
FS type: [swap] ----> invio

“a d” invio

offset: [23278652] ----> invio
size: [57014118] ------> 2g invio
Rounding to nearest cylinder: 4194288
FS type: [4.2BSD] ----> invio
mount point: [none] ----> "/tmp" invio

“a e” invio

offset: [27473040] ----> invio
size: [52819830] ------> 6g invio
Rounding to nearest cylinder: 12582864
FS type: [4.2BSD] ----> invio
mount point: [none] ----> "/var" invio

“a g” invio

offset: [40055904] ----> invio
size: [40236966] ------> 10g invio
Rounding to nearest cylinder: 20971440
FS type: [4.2BSD] ----> invio
mount point: [none] ----> "/usr" invio

“a h” invio

offset: [61027344] ----> invio
size: [19265526] ------> 9g invio
Rounding to nearest cylinder: 18874800
FS type: [4.2BSD] ----> invio
mount point: [none] ----> "/home" invio

“w” invio

“q” invio

Mount point for wd0d (size=2097144k)? (or 'none od 'done) [/tmp] ----> invio
Mount point for wd0e (size=6291432k)? (or 'none od 'done) [/var] ----> invio
Mount point for wd0g (size=10485720k)? (or 'none od 'done) [/usr] ----> invio
Mount point for wd0h (size=9437400k)? (or 'none od 'done) [/home] ----> invio
Mount point for wd0d (size=2097144k)? (or 'none od 'done) [/tmp] ----> "done" invio
No more disks to initialize.

Are you really sure that you're ready to proceed? [no] -----> "yes" invio
System hostname (short form, e.g. 'foo'): ----> "openbsd" invio
Configure the network? [yes] ----> invio
Availabel interfaces are: fxp0 fxp1 fxp2

ha trovare 3 interfaccie di rete della stessa marca – qui faccio una precisazione e cioè che i vari sistemi BSD chiamano la scheda di rete in modo diverso in base alla marca e cioè se utilizzerà un driver sis si chiamerà sis0 (la prima) oppure se avete una realtek si chiamerà rl0 (la prima)
la situazione più incasinata è avere 3 schede che usano 3 drivers diversi e quindi si chiameranno ad esempio dc0 fxp0 e rl0 – dovete innanzitutto individuare quali sono e metterci una etichetta, ci sarà utile in seguito quando andremo a configurare il bridge (il metodo semplice prevede di avere 3 schede dello stesso produttore e quindi come in questo caso fxp0 fxp1 e fxp2)

Ora configuriamo solo l’interfaccia di gestione, le altre due (modalità bridge) verranno impostate successivamente.

Which one do you wish to initialize? (or 'done') [fxp0] ----->invio
Do you want to change the media options? [no] ---->invio

Se avete un dhcp potete sfruttarlo ma consiglio di mettere un ip statico, visto che vogliamo sia sempre quello e che venga impostato anche se la rete non è connessa all’avvio della macchina.

IPv4 address for fxp0? (or 'none' or 'dhcp') ----> digitare "192.168.1.7" e invio
Netmask [255.255.255.0] -----> invio
IPv6 address fox fxp0 (or 'rtsol' of 'none') [none] ----> invio

se viene richiesto di inizializzare altre schede di rete dire no e proseguire (‘none’)

DNS domain name? (e.g. 'bar.com') [my.domain] ----> digitare "dominio.it" e invio
DNS nameserver? (IP address or 'none') [none] ----> digitare ip del dns e invio
Use the nameserver now? [yes] <enter> ----> invio
Default IPv4 route? (IP address, 'dhcp' or 'none') ----> digitare ip del gatewaye invio
add net default: gateway
Edit hosts with ed? [no] ----> invio
Do you want to do any manual network configuration? [no] ----> invio
Password for root account? (will not echo) ----> digitare la password che avrà l'utente root
Password for root account? (again) ----> ripetere la stessa password

a questo punto si effettua l’installazione dei pacchetti, raggruppati per gruppi (SET) – lo faremo scaricandoli da internet e scegliendo una installazione completa

Let's install the sets!
Location of sets? (cd disk ftp http or 'done') [cd] ----> digitare "ftp" e invio
HTTP/FTP proxy URL? (e.g. 'http://proxy:8080', or 'none') [none] ----> digitare invio se non è necessario impostare un proxy
Display the list of known ftp servers? [no] ----> "yes" e invio
Getting the list from 129.128.5.191 (ftp.openbsd.org)...

qui potete scegliere un server in italia per rendere più veloce lo scaricamento e contribuire alla diminuzione del riscaldamento globale del pianeta

Server? (IP address, hostname, list# or 'done') [q] 5
Using  ftp5.usa.openbsd.org/pub/OpenBSD Redwood City, CA, USA
Server? (IP address, hostname , list#, 'done' or '?') [ftp5.usa.openbsd.org] -----> invio
Does the server support passive mode ftp? [yes] -----> invio
Server directory? [pub/OpenBSD/4.2/i386] -----> invio
Login? [anonymous] -----> invio

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 labelled '[X]'.

[X] bsd
[X] bsd.rd
[ ] bsd.mp
[X] base42.tgz
[X] etc42.tgz
[X] misc42.tgz
[X] comp42.tgz
[X] man42.tgz
[X] game42.tgz
[ ] xbase42.tgz
[ ] xetc42.tgz
[ ] xshare42.tgz
[ ] xfont42.tgz
[ ] xserv42.tgz
Set name? (or 'done') [bsd.mp]  ---> digitare "all" e invio

[X] bsd
[X] bsd.rd
[X] bsd.mp
[X] base42.tgz
[X] etc42.tgz
[X] misc42.tgz
[X] comp42.tgz
[X] man42.tgz
[X] game42.tgz
[X] xbase42.tgz
[X] xetc42.tgz
[X] xshare42.tgz
[X] xfont42.tgz
[X] xserv42.tgz
Set name? (or 'done') [done] -----> invio
Ready to install sets? [yes] -----> invio
Getting bsd ...
100% |**************************************************|  5972 KB    00:26
Getting bsd.rd ...
100% |**************************************************|  4887 KB    00:25
Getting bsd.mp ...
100% |**************************************************|  6020 KB    00:23
Getting base42.tgz ...
100% |**************************************************| 41437 KB    02:39
Getting etc42.tgz ...
100% |**************************************************|  1210 KB    00:08
Getting misc42.tgz ...
100% |**************************************************|  2238 KB    00:14
Getting comp42.tgz ...
100% |**************************************************| 76666 KB    01:36
Getting man42.tgz ...
100% |**************************************************|  7473 KB    00:30
Getting game42.tgz ...
100% |**************************************************|  2548 KB    00:12
Getting xbase42.tgz ...
100% |**************************************************| 10344 KB    00:51
Getting xetc42.tgz ...
100% |**************************************************| 90772       00:03
Getting xshare42.tgz ...
100% |**************************************************|  2024 KB    00:10
Getting xfont42.tgz ...
100% |**************************************************| 32456 KB    02:41
Getting xserv42.tgz ...
100% |**************************************************| 19365 KB    01:26

Location of sets? (cd disk ftp http or 'done') [done] -----> invio

Start sshd(8) by default? [yes] -----> invio
Start ntpd(8) by default? [no] ----> digitare "yes" e invio
Do you expect to run the X Window System? [no]  ----> invio
Change the default console to com0? [no] -----> invio
Saving configuration files...done.
Generating initial host.random file...done.
What timezone are you in? ('?' for list) [Canada/Mountain] Europe/Rome
Setting local timezone to 'Europe/Rome'...done.
Making all device nodes...done.
Installing boot block...
boot: /mnt/boot
proto: /usr/mdec/biosboot
device: /dev/rwd0c
/usr/mdec/biosboot: entry point 0
proto bootblock size 512
/mnt/boot is 3 blocks x 16384 bytes
fs block shift 2; part offset 63; inode block 24, offset 1704
using MBR partition 3: type 166 (0xa6) offset 63 (0x3f)
done.

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

ora spegnamo il pc – togliamo il cdrom da drive e lo riavviamo.
digitare “halt” e invio

syncing disks... done

The operating system has halted.
Please press any key to reboot.

qui trovate l’articolo originale

continua nella prossima puntata…

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *