Differenze tra le versioni di "OpenBSD"

Da GolemWiki.
Jump to navigation Jump to search
 
(9 versioni intermedie di un altro utente non mostrate)
Riga 1: Riga 1:
 
==Storia==
 
==Storia==
 
 
Nel Giugno del 1996 Theo de Raadt, uno dei primi sviluppatori del NetBSD, si allontana dal progetto a causa di attriti con il resto della comunità.
 
Nel Giugno del 1996 Theo de Raadt, uno dei primi sviluppatori del NetBSD, si allontana dal progetto a causa di attriti con il resto della comunità.
 
Il suo fork prenderà il nome di OpenBSD e i suoi obiettivi saranno: sicurezza, rispetto degli standard e portabilità.
 
Il suo fork prenderà il nome di OpenBSD e i suoi obiettivi saranno: sicurezza, rispetto degli standard e portabilità.
Riga 6: Riga 5:
  
 
==Creazione di un supporto d'avvio per l'installazione==
 
==Creazione di un supporto d'avvio per l'installazione==
 
 
In questo articolo mi occuperò solamente dell'installazione e configurazione di base del port di OpenBSD per piattaforma i386 nella sua ultima versione: la 5.5.
 
In questo articolo mi occuperò solamente dell'installazione e configurazione di base del port di OpenBSD per piattaforma i386 nella sua ultima versione: la 5.5.
 
Per non sovraccaricare il server primario è consigliabile utilizzare un mirror, il mirror italiano si trova a questo indirizzo: ftp://openbsd.mirror.garr.it/pub/OpenBSD/5.5/i386/
 
Per non sovraccaricare il server primario è consigliabile utilizzare un mirror, il mirror italiano si trova a questo indirizzo: ftp://openbsd.mirror.garr.it/pub/OpenBSD/5.5/i386/
Riga 20: Riga 18:
 
*cd55.iso è una immagine ISO9660 che può essere usata per creare CD d'avvio. Contiene la più numerosa selezione di driver, se la macchina in cui vogliamo installare OpenBSD ha il supporto per il CDROM questa è probabilmente la scelta migliore.
 
*cd55.iso è una immagine ISO9660 che può essere usata per creare CD d'avvio. Contiene la più numerosa selezione di driver, se la macchina in cui vogliamo installare OpenBSD ha il supporto per il CDROM questa è probabilmente la scelta migliore.
  
* install55.iso immagine CD-ROM contenente il kernel ed i file per l'installazione completa del sistema (esclusi i port)
+
* install55.iso immagine standard per l'installazione da CD-ROM, nella maggior parte dei casi è questo il file che conviene masterizzare
 +
 
 +
* install55.fs immagine standard per l'installazione da USB
  
 
==Creazione di un floppy di boot==  
 
==Creazione di un floppy di boot==  
  
 
===Da sistemi BSD===
 
===Da sistemi BSD===
 
 
Scaricare il file immagine desiderato (es. floppy55.fs)
 
Scaricare il file immagine desiderato (es. floppy55.fs)
  
 
Formattare un floppy
 
Formattare un floppy
 
 
  # fdformat /dev/rfd0c
 
  # fdformat /dev/rfd0c
 
 
  Format 1440K floppy `/dev/rfd0c'? (y/n): y
 
  Format 1440K floppy `/dev/rfd0c'? (y/n): y
 
  Processing VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV done.
 
  Processing VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV done.
Riga 38: Riga 35:
  
 
Adesso scriviamo l'immagine sul floppy
 
Adesso scriviamo l'immagine sul floppy
 
 
  # dd if=floppy55.fs of=/dev/rfd0c bs=32k
 
  # dd if=floppy55.fs of=/dev/rfd0c bs=32k
 
  
 
=== Da Linux ===
 
=== Da Linux ===
Riga 57: Riga 52:
 
  Enter destination drive: a
 
  Enter destination drive: a
 
  Please insert a formatted diskette into drive A: and press -ENTER- : Enter
 
  Please insert a formatted diskette into drive A: and press -ENTER- : Enter
     
+
 
  
 
==Creazione di una ISO personalizzata==
 
==Creazione di una ISO personalizzata==
  
 
Molti potrebbero avere bisogno di un'iso per cdrom contenente non solo il sistema base, ma anche i sorgenti o dei pacchetti precompilati.
 
Molti potrebbero avere bisogno di un'iso per cdrom contenente non solo il sistema base, ma anche i sorgenti o dei pacchetti precompilati.
Se vogliamo contribuire finanziariamente al progetto OpenBSD è possibile ordinare su http://www.openbsd.org/items.html i CD originali a 45 € + spese di spedizione.
 
È comunque possibile creare un'iso NON ufficiale a partire dal materiale disponibile su Internet.
 
  
 
Scaricate tutto il contenuto di ftp://openbsd.mirror.garr.it/pub/OpenBSD/5.5/i386/ in OpenBSD/5.5/
 
Scaricate tutto il contenuto di ftp://openbsd.mirror.garr.it/pub/OpenBSD/5.5/i386/ in OpenBSD/5.5/
Riga 69: Riga 62:
  
 
  # wget -m ftp://openbsd.mirror.garr.it/pub/OpenBSD/5.5/i386/
 
  # wget -m ftp://openbsd.mirror.garr.it/pub/OpenBSD/5.5/i386/
  # mv  ftp://openbsd.mirror.garr.it/pub/ .
+
  # mv  openbsd.mirror.garr.it/pub/OpenBSD .
 
  # rm -rf openbsd.mirror.garr.it
 
  # rm -rf openbsd.mirror.garr.it
 
  # cd OpenBSD/
 
  # cd OpenBSD/
Riga 78: Riga 71:
 
* [http://openbsd.mirror.garr.it/pub/OpenBSD/5.5/src.tar.gz src.tar.gz] - i sorgenti del sistema operativo di base.
 
* [http://openbsd.mirror.garr.it/pub/OpenBSD/5.5/src.tar.gz src.tar.gz] - i sorgenti del sistema operativo di base.
 
* [http://openbsd.mirror.garr.it/pub/OpenBSD/5.5/sys.tar.gz sys.tar.gz] - i sorgenti del kernel.
 
* [http://openbsd.mirror.garr.it/pub/OpenBSD/5.5/sys.tar.gz sys.tar.gz] - i sorgenti del kernel.
* [http://openbsd.mirror.garr.it/pub/OpenBSD/5.5/xenocara.tar.gz] - i sorgenti del server grafico.
+
* [http://openbsd.mirror.garr.it/pub/OpenBSD/5.5/xenocara.tar.gz xenocara.tar.gz] - i sorgenti del server grafico.
 
 
  
 
Possiamo anche creare la directory packages/ e aggiungervi qualsiasi pacchetto precompilato si desideri installare dopo l'installazione del sistema di base. Naturalmente si dovrà fare attenzione alle dipendenze di ciascun pacchetto scaricato e a non superare lo spazio del supporto sul quale vogliamo andare a scrivere la nostra iso.
 
Possiamo anche creare la directory packages/ e aggiungervi qualsiasi pacchetto precompilato si desideri installare dopo l'installazione del sistema di base. Naturalmente si dovrà fare attenzione alle dipendenze di ciascun pacchetto scaricato e a non superare lo spazio del supporto sul quale vogliamo andare a scrivere la nostra iso.
Riga 93: Riga 85:
 
  Custom ISO, 06-05-2014." -b 5.5/i386/install55.fs -c boot.catalog \
 
  Custom ISO, 06-05-2014." -b 5.5/i386/install55.fs -c boot.catalog \
 
  -o openbsd-i386-5.5.iso ../OpenBSD/
 
  -o openbsd-i386-5.5.iso ../OpenBSD/
 
 
OpenBSD è un OS incentrato sulla sicurezza, è evidente che il download di una iso NON ufficiale è un controsenso.
 
Se però: siete molto pigri, vi fidate ciecamente di me, non è andata via la corrente nella server farm, lo CSIAF non si è di nuovo messo a giocare con le regole dei firewall e nessuno ha inciampato sul cavo di rete del server... allora potete scaricare la mia CUSTOM ISO qui (non contiene i sorgenti, ma ha l'albero dei ports e diversi pacchetti precompilati fra i quali: java, KDE, Koffice, Mozilla...).
 
  
  
 
Per masterizzare l'iso va bene qualsiasi programma: K3B, Nero o da linea di comando:
 
Per masterizzare l'iso va bene qualsiasi programma: K3B, Nero o da linea di comando:
  
  # cdrecord -v -tao dev=/dev/il_vostro_masterizzatore -data driveropts=burnfree openbsd-i386-3.9.iso
+
  # cdrecord -v -tao dev=/dev/il_vostro_masterizzatore -data driveropts=burnfree openbsd-i386-5.5.iso
 
 
 
 
  
 
==Installazione==
 
==Installazione==
 
Partiamo dal presupposto che stiate usando un'iso "tipo" la mia.
 
 
Le parole o le lettere in neretto corrispondono a quello che dovreste digitare per proseguire con l'installazione.
 
Le parole o le lettere in neretto corrispondono a quello che dovreste digitare per proseguire con l'installazione.
 
Fate fare il boot da CDROM al vostro computer e se tutto va bene dovrebbe apparirvi questo:
 
Fate fare il boot da CDROM al vostro computer e se tutto va bene dovrebbe apparirvi questo:
 +
Welcome to the OpenBSD/i386 5.5 install program.
 +
(I)nstall, (U)pgrade, (A)utoinstall or (S)hell? '''i'''
 +
 +
Selezionare it per la tastiera italiana e dare un nome al computer.
 +
Choose your keyboard layout ('?' or 'L' for list) [default] '''it'''
 +
System hostname? (short form, e.g. 'foo') puffy
  
(I)nstall, (U)pgrade or (S)hell? i
+
Premere invio per configurare l'interfaccia di rete principale.
 
+
  Available network interfaces are: em0 vlan0.
Welcome to the OpenBSD/i386 3.9 install program.
+
  Which one do you wish to configure? (or 'done') [em0] '''Enter'''
 
 
  This program will help you install OpenBSD in a simple and rational way. At
 
  any prompt except password prompts you can run a shell command by typing
 
'!foo', or escape to a shell by typing '!'. Default answers are shown in []'s
 
and are selected by pressing RETURN. At any time you can exit this program by
 
pressing Control-C and then RETURN, but quitting during an install can leave
 
your system in an inconsistent state.
 
 
 
  
Specify terminal type: [vt220] Enter
+
Utilizzare dhcp o configurare un IP manualmente.
  kbd(8) mapping? ('?' for list) [none] it
+
  IPv4 address for em0? (or 'dhcp' or 'none') [dhcp] '''Enter'''
  
Come da esempio premete prima Enter (a meno che non stiate usando una console seriale) per selezionare il terminale di default e poi it per selezionare il layout per la tastiera italiana.
+
Salvo esigenze particolari è possibile saltare i prossimi due passaggi premendo Invio.
 +
IPv6 address for em0? (or 'rtsol' or 'none') [none] '''Enter'''
 +
Which one do you wish to configure? (or 'done') [done] '''Enter'''
  
  IS YOUR DATA BACKED UP? As with anything that modifies disk contents, this
+
Inserire la password di root. ''"Will not echo" significa che comparirà niente sullo schermo mentre si digita la password, per conferma dopo occorrerà ridigitarla)''
  program can cause SIGNIFICANT data loss.
+
  Password for root account? (will not echo) '''PaSsWoRd'''
 +
  Password for root account? (again) '''PaSsWoRd'''
  
It is often helpful to have the installation notes handy. For complex disk
+
Configurazione dei demoni del sistema di base
  configurations, relevant disk hardware manuals and a calculator are useful.
+
  Start sshd(8) by default? [yes] '''Enter'''
  
  Proceed with install? [no] yes
+
Il network time protocol daemon è un demone che sincronizza automaticamente l'orologio della vostra macchina con alcuni server su Internet. Se avete una connessione ADSL flat può essere una buona idea rispondere '''yes''', se non vi interessa premete Invio.
 +
  Start ntpd(8) by default? [no] '''y'''
 +
NTP server? (hostname or 'default') [default] '''Enter'''
  
  Cool! Let's get to it...
+
Installazione del sistema grafico
 +
  Do you expect to run the X Window System? [yes] '''Enter'''
  
 +
Inserire '''y''' per avviare X automaticamente all'avvio
 +
Do you want the X Window System to be started by xdm(1)? [no] '''y'''
  
  You will now initialize the disk(s) that OpenBSD will use. To enable all
+
È possibile aggiungere un utente amministratore
  available security features you should configure the disk(s) to allow the
+
  Setup a user? (enter a lower-case loginname, or 'no') [no] '''Nome utente'''
  creation of separate filesystems for /, /tmp, /var, /usr, and /home.
+
  Password for ''nome utente'' account? (will not echo) '''PaSsWoRd'''
 +
  Password for ''nome utente'' account? (again) '''PaSsWoRd''
  
 +
Selezionare la zona per il fusorario
 +
What timezone are you in? ('?' for list) [Canada/Mountain] '''Europe/Rome'''
  
 +
Configurazione del disco
 
  Available disks are: wd0.
 
  Available disks are: wd0.
  Which one is the root disk? (or done) [wd0] Enter
+
  Which one is the root disk? (or done) [wd0] '''Enter'''
 +
Use DUIDs rather than device names in fstab? [yes] Enter
  
 
Se il sistema riconosce più di un disco (es. wd1) potete specificare un supporto diverso da wd0, probabilmente però dovrete installare un boot loader (es. GRUB) per poter avviare la partizione dove avete installato OpenBSD.
 
Se il sistema riconosce più di un disco (es. wd1) potete specificare un supporto diverso da wd0, probabilmente però dovrete installare un boot loader (es. GRUB) per poter avviare la partizione dove avete installato OpenBSD.
  
  Do you want to use *all* of wd0 for OpenBSD? [no] yes
+
Premere Invio per utilizzare tutto il disco, altrimenti è possibile specificare manualmente le partizioni.
 +
  Use (W)hole disk or (E)dit the MBR? [whole] '''Enter'''
  
Se invece non avete intenzione di usare l'intero hard disk vi consiglio di partizionarlo da Linux con cfdisk o con un qualsiasi altro tool grafico perché l'fdisk dell'OpenBSD è studiato per portare i neuroni dell'utente al suicidio di massa.
+
Se non si ha intenzione di usare l'intero hard disk si consiglia di partizionarlo da Linux con cfdisk o gparted ''(l'fdisk dell'OpenBSD sembra studiato ad arte per portare i neuroni dell'utente al suicidio di massa)'''.
 +
 
 +
Premere '''E''' per non lasciare al sistema il compito di creare automaticamente le varie partizioni.
 +
Use (A)uto layout, (E)dit auto layout, or create (C)ustom layout? [a] '''E'''
  
 
Ora ci troveremo ad usare disklabel per creare le slice nella partizione dell'OpenBSD.
 
Ora ci troveremo ad usare disklabel per creare le slice nella partizione dell'OpenBSD.
 
Aggiungiamo una label per la /
 
Aggiungiamo una label per la /
  
  > a a
+
  > a '''a'''
  offset: [63] Enter
+
  offset: [63] '''Enter'''
  
 
Il punto di inizio della partizione, va bene il valore che ci dà lui.
 
Il punto di inizio della partizione, va bene il valore che ci dà lui.
  
  size: [xxxxxxxxx] 2000m
+
  size: [xxxxxxxxx] '''2000m'''
  
 
A size possiamo indicare la grandezza della slice, nel caso dell'esempio 2000 Mb, specificando k per Kb, m per Mb o g per Gb dopo il valore numerico che abbiamo inserito.
 
A size possiamo indicare la grandezza della slice, nel caso dell'esempio 2000 Mb, specificando k per Kb, m per Mb o g per Gb dopo il valore numerico che abbiamo inserito.
  
 
  Rounding to nearest cylinder: xxxxxx
 
  Rounding to nearest cylinder: xxxxxx
  FS type: [4.2BSD] Enter
+
  FS type: [4.2BSD] '''Enter'''
  mount point: [none] /
+
  mount point: [none] '''/'''
  
  
 
Aggiungiamo una label di swap
 
Aggiungiamo una label di swap
 
+
  > a '''b'''
  > a b
+
  offset: [xxxxxx] '''Enter'''
 
+
  size: [xxxxxxxx] '''300m'''
  offset: [xxxxxx] Enter
 
  size: [xxxxxxxx] 300m
 
 
 
 
  Rounding to nearest cylinder: xxxxxx
 
  Rounding to nearest cylinder: xxxxxx
  FS type: [swap] Enter
+
  FS type: [swap] '''Enter'''
  
  
 
Per uso server o multiutente sarebbe indicato aggiungere anche delle slice per: /tmp, /var e /home
 
Per uso server o multiutente sarebbe indicato aggiungere anche delle slice per: /tmp, /var e /home
 
+
  > a '''d'''
  > a d
+
  offset: [xxxxxxx] '''Enter'''
  offset: [xxxxxxx] Enter
+
  size: [xxxxxxx] '''200m'''
  size: [xxxxxxx] 200m
 
 
 
 
  Rounding to nearest cylinder: xxxxx
 
  Rounding to nearest cylinder: xxxxx
  FS type: [4.2BSD] Enter
+
  FS type: [4.2BSD] '''Enter'''
  mount point: [none] /tmp
+
  mount point: [none] '''/tmp'''
  
 
E così via...
 
E così via...
 
+
  > p '''m'''
  > p m
 
  
 
Per visualizzare la situazione definitiva con i parametri in Megabyte.
 
Per visualizzare la situazione definitiva con i parametri in Megabyte.
 
+
  > '''q '''
  > q  
+
  Write new label?: [y] '''Enter'''
  Write new label?: [y] Enter
 
 
 
 
  OpenBSD filesystems:
 
  OpenBSD filesystems:
 
  wd0a /
 
  wd0a /
 
 
  The next step *DESTROYS* all existing data on these partitions!
 
  The next step *DESTROYS* all existing data on these partitions!
  Are you really sure that you're ready to proceed? [no] y
+
  Are you really sure that you're ready to proceed? [no] '''y'''
 
 
 
 
Configurazione del sistema di base
 
 
 
Enter system hostname (short form, e.g. 'foo'): nistagmo
 
 
 
Io in genere do alle mie macchine nomi della mitologia greca, ma c'è chi usa elementi della tabella periodica, enzimi, malattie infettive...
 
 
 
Configure the network? [yes] Enter
 
Available interfaces are: ne0
 
  Which one do you wish to initialize? (or 'done') [ne0] Enter
 
Symbolic (host) name for ne0? [nistagmo] Enter
 
The default media for ne0 is
 
media: Ethernet autoselect (10baseT)
 
Do you want to change the default media? [no] Enter
 
IP address for ne0? (or 'dhcp') 192.168.254.1
 
 
 
Se nella vostra lan c'è un server dhcp potere usare il dhcp client invece dell'indirizzo IP statico, basta scrivere dhcp.
 
 
 
Netmask? [255.255.255.0] Enter
 
 
 
IPv6 address for fxp0? (or 'rtsol' or 'none') [none]
 
No more interfaces to initialize.
 
DNS domain name? (e.g. 'bar.com') [my.domain] example.com
 
 
 
DNS nameserver? (IP address or 'none') [none] IP.vostro.DNS
 
Use the nameserver now? [yes] Enter
 
 
 
Default route? (IP address, 'dhcp' or 'none') IP.vostro.gateway
 
 
 
add net default: gateway 192.168.254.254
 
Edit hosts with ed? [no] Enter
 
 
Do you want to do any manual network configuration? [no] Enter
 
 
 
Naturalmente dovete inserire i dati della vostra rete (IP, DNS, gateway...).
 
 
 
Password for root account? (will not echo) password_non_ovvia
 
 
 
Password for root account? (again) password_non_ovvia
 
 
 
"Will not echo" significa che non vedrete comparire niente sullo schermo mentre digitate la password, niente lettere ne asterischi. Per conferma dopo dovrete ridigitarla.
 
  
  
Riga 252: Riga 200:
  
 
  Let's install the sets!
 
  Let's install the sets!
  Location of sets? (cd disk ftp http or 'done') [cd] Enter
+
  Location of sets? (cd disk ftp http or 'done') [cd] '''Enter'''
  
 
  Available CD-ROMs are: cd0.
 
  Available CD-ROMs are: cd0.
  
Se abbiamo usato un floppy di boot, se ci siamo scordati qualcosa nella directory /3.9/i386/ della nostra iso o per qualsiasi altro motivo è possibile installare il sistema di base anche via ftp, http o da un altro disco.
+
Se abbiamo usato un floppy di boot, se ci siamo scordati qualcosa nella directory /5.5/i386/ della nostra iso o per qualsiasi altro motivo è possibile installare il sistema di base anche via ftp, http o da un altro disco.
 
 
Which one contains the install media? (or 'done') [cd0] Enter
 
 
 
  Pathname to the sets? (or 'done') [3.9/i386] Enter
 
  
 +
Which one contains the install media? (or 'done') [cd0] '''Enter'''
 +
Pathname to the sets? (or 'done') [5.5/i386] '''Enter'''
 
  Select sets by entering a set name, a file name pattern or 'all'. De-select
 
  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 by prepending a '-' to the set name, file name pattern or 'all'. Selected
 
  sets are labeled '[x]'.
 
  sets are labeled '[x]'.
  
 +
[X] bsd          [X] etc55.tgz    [X] xbase55.tgz  [X] xserv55.tgz
 +
[X] bsd.rd        [X] comp55.tgz    [X] xetc55.tgz
 +
[ ] bsd.mp        [X] man55.tgz    [X] xshare55.tgz
 +
[X] base55.tgz    [X] game55.tgz    [X] xfont55.tgz
  
[X] bsd
+
Premere invio per installare tutto Vi consiglio di selezionarli tutti ed installarli, ulteriori dettagli sono disponibili qui.
[X] bsd.rd
+
  Set name(s)? (or 'abort' or 'done') [done] Enter
[ ] bsd.mp
 
[X] base38.tgz
 
[X] etc38.tgz
 
[X] misc38.tgz
 
[X] comp38.tgz
 
[X] man38.tgz
 
[X] game38.tgz
 
[ ] xbase38.tgz
 
[ ] xetc38.tgz
 
[ ] xshare38.tgz
 
[ ] xfont38.tgz
 
[ ] xserv38.tgz
 
File Name? (or 'done') [bsd.mp] all
 
 
 
File Name? (or 'done') [done] Enter
 
 
 
Vi consiglio di selezionarli tutti ed installarli, ulteriori dettagli sono disponibili qui.
 
 
 
  Getting bsd ...
 
100% |**************************************************| 5157 KB 00:08
 
 
 
  [..]
 
  
 +
Ignorare l'avvertimento e proseguire con l'installazione
 +
Directory does not contain SHA256.sig. Continue without verification? [no] '''y'''
 
  Location of sets? (cd disk ftp http or 'done') [done] Enter
 
  Location of sets? (cd disk ftp http or 'done') [done] Enter
 
+
   
 
+
L'installazione è terminata, quando compare la shell scrivere ''reboot'' per avviare il sistema OpenBSD.
Ultimazione dell'installazione
 
 
 
Start sshd(8) by default? [yes] Enter
 
 
 
Se volete che il demone ssh venga avviato automaticamente all'avvio premete invio.
 
 
 
Start ntpd(8) by default? [no]
 
 
 
Il network time protocol daemon è un demone che sincronizza automaticamente l'orologio della vostra macchina con alcuni server su Internet. Se avete una connessione ADSL flat può essere una buona idea rispondere yes, se non vi interessa premete Invio.
 
 
 
Do you expect to run the X Window System? [yes] y
 
 
 
Se pensate di utilizzare il sistema grafico confermate anche questa opzione.
 
 
 
Change the default console to com0? [no] Enter
 
 
 
A meno che non sappiate cosa state facendo rispondete di no.
 
 
 
What timezone are you in? ('?' for list) [Canada/Mountain] Europe/Rome
 
     
 
 
 
 
 
Adesso l'installazione è finita, quando compare la shell scrivete halt e godetevi la viosta OpenBSD box.
 
 
 
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
 
 
 
syncing disks... done
 
 
 
 
 
The operating system has halted.
 
Please press any key to reboot.
 
 
 
  
 
==Rendere il sistema più user friendly==
 
==Rendere il sistema più user friendly==
Riga 335: Riga 230:
 
Inserite queste righe nel file: /etc/profile
 
Inserite queste righe nel file: /etc/profile
  
export PS1="[\u@\h \W]\\$ "
+
export PS1="[\u@\h \W]\\$ "
alias ls='ls -a'
+
alias ls='ls -a'
alias ll='ls -l'
+
alias ll='ls -l'
alias free='top -n | head -5'
+
alias free='top -n | head -5'
#Italian mirror
+
PKG_PATH="http://openbsd.mirror.garr.it/pub/OpenBSD/5.5/packages/i386/"
#PKG_PATH="http://cdn.mirror.garr.it/mirrors/OpenBSD/3.9/packages/i386/"
+
export PKG_PATH
PKG_PATH="ftp://ftp.unina.it/pub/OpenBSD/3.9/packages/i386/"
 
export PKG_PATH
 
  
 
Vi troverete una shell con un impatto visivo molto simile alla Bash di Linux, che volendo possiamo anche installare dato che è presente nei packages e nei ports.
 
Vi troverete una shell con un impatto visivo molto simile alla Bash di Linux, che volendo possiamo anche installare dato che è presente nei packages e nei ports.
Riga 359: Riga 252:
 
  # mkdir /mnt/floppy
 
  # mkdir /mnt/floppy
  
Successivamente modificatefile: /etc/fstab aggiungendo le righe:
+
Successivamente aggiungete le seguenti righe al file /etc/fstab
 +
 
 +
/dev/fd0a /mnt/floppy msdos rw,noauto,nosuid 0 0
 +
/dev/cd0a /mnt/cdrom cd9660 ro,noauto 0 0
 +
 +
OpenBSD non possiede un filesystem che supporti il journaling, ma si consiglia di aggiungere l'opzione '''[http://www.openbsd.org/faq/faq14.html#SoftUpdates softdep]''' alle partizioni ffs
 +
/dev/sd0a / ffs rw,'''softdep''' 1 1
  
/dev/fd0a /mnt/floppy msdos rw,noauto,nosuid 0 0
 
/dev/cd0a /mnt/cdrom cd9660 ro,noauto 0 0
 
  
 
Adesso per montare cdrom e floppy basteranno i comandi:
 
Adesso per montare cdrom e floppy basteranno i comandi:
Riga 370: Riga 267:
  
  
Se come me avete un'immagine ISO di OpenBSD con una cartella 3.9/packages piena di pacchetti precompilati, per installarvi dovrete entrare in quella cartella e dare il comando:
+
Se come me avete un'immagine ISO di OpenBSD con una cartella 5.5/packages piena di pacchetti precompilati, per installarvi dovrete entrare in quella cartella e dare il comando:
  
 
  # pkg_add pacchetto-versione.tgz
 
  # pkg_add pacchetto-versione.tgz
Riga 377: Riga 274:
  
 
  # pkg_delete pacchetto-versione.tgz
 
  # pkg_delete pacchetto-versione.tgz
 
 
  
 
==L'albero dei port==
 
==L'albero dei port==
 
Per compilare i pacchetti in maniera automatica possiamo decomprimere l'archivio ports.tar.gz nella directory /usr.
 
Per compilare i pacchetti in maniera automatica possiamo decomprimere l'archivio ports.tar.gz nella directory /usr.
  
  # cp /mnt/cdrom/3.9/ports.tar.gz /usr
+
  # cp /mnt/cdrom/5.5/ports.tar.gz /usr
 
  # cd /usr
 
  # cd /usr
 
  # tar -xzvf ports.tar.gz
 
  # tar -xzvf ports.tar.gz
Riga 423: Riga 318:
 
Editare il file /etc/dhcpd.interfaces selezionando la scheda di rete dove vogliamo rendere attivo il server dhcp. Dovremmo scegliere una delle schede di rete della rete interna.
 
Editare il file /etc/dhcpd.interfaces selezionando la scheda di rete dove vogliamo rendere attivo il server dhcp. Dovremmo scegliere una delle schede di rete della rete interna.
  
#    $OpenBSD: dhcpd.interfaces,v 1.1 1998/08/19 04:25:45 form Exp $
+
#    $OpenBSD: dhcpd.interfaces,v 1.1 1998/08/19 04:25:45 form Exp $
#
+
#
# List of network interfaces served by dhcpd(8).
+
# List of network interfaces served by dhcpd(8).
#
+
#
ne0
+
ne0
#ep0
+
#ep0
#de1
+
#de1
 
 
  
 
Adesso modifichiamo in questo modo il file /etc/dhcpd.conf
 
Adesso modifichiamo in questo modo il file /etc/dhcpd.conf
  
# $OpenBSD: dhcpd.conf,v 1.1 1998/08/19 04:25:45 form Exp $
+
# $OpenBSD: dhcpd.conf,v 1.1 1998/08/19 04:25:45 form Exp $
#
+
#
# DHCP server options.
+
# DHCP server options.
# See dhcpd.conf(5) and dhcpd(8) for more information.
+
# See dhcpd.conf(5) and dhcpd(8) for more information.
#
+
#
 
+
# Network: 192.168.1.0/255.255.255.0
 
+
# Domain name: my.domain
# Network: 192.168.1.0/255.255.255.0
+
# Name servers: 192.168.1.3 and 192.168.1.5
# Domain name: my.domain
+
# Default router: 192.168.1.1
# Name servers: 192.168.1.3 and 192.168.1.5
+
# Addresses: 192.168.1.32 - 192.168.1.127
# Default router: 192.168.1.1
+
#
# Addresses: 192.168.1.32 - 192.168.1.127
+
shared-network LOCAL-NET {
#
+
option domain-name "openbsd.router";
shared-network LOCAL-NET {
+
option domain-name-servers 127.0.0.1;
option domain-name "openbsd.router";
+
subnet 192.168.0.0 netmask 255.255.255.0 {
option domain-name-servers 127.0.0.1;
+
option routers 192.168.0.1;
 
+
range 192.168.0.100 192.168.0.150;
 
+
}
subnet 192.168.0.0 netmask 255.255.255.0 {
+
}
option routers 192.168.0.1;
 
 
 
range 192.168.0.100 192.168.0.150;
 
}
 
}
 
 
 
  
 
option domain-name-servers 127.0.0.1 - indica il server DNS che nel nostro caso coincide con la macchina stessaper cui lo imposteremo con l'indirizzo 127.0.0.1
 
option domain-name-servers 127.0.0.1 - indica il server DNS che nel nostro caso coincide con la macchina stessaper cui lo imposteremo con l'indirizzo 127.0.0.1
Riga 469: Riga 357:
 
Per attivare il servizio dhcpd dovremo editare nuovamente il file /etc/rc.conf sostituendo la riga
 
Per attivare il servizio dhcpd dovremo editare nuovamente il file /etc/rc.conf sostituendo la riga
  
dhcpd_flags=NO        # for normal use: ""
+
dhcpd_flags=NO        # for normal use: ""
 
 
 
con
 
con
 
+
dhcpd_flags=""        # for normal use: ""
dhcpd_flags=""        # for normal use: ""
 
 
 
  
  
Riga 480: Riga 365:
  
 
Per condividere la connessione dobbiamo attivare l'IP forwarding in modo che i pacchetti possano passare dal router al client che li ha richiesti.
 
Per condividere la connessione dobbiamo attivare l'IP forwarding in modo che i pacchetti possano passare dal router al client che li ha richiesti.
 
+
# sysctl net.inet.ip.forwarding=1
  # sysctl net.inet.ip.forwarding=1
 
 
 
  
 
Per rendere questa modifica permanente dovremo modificare il file /etc/sysctl.conf modificando la riga
 
Per rendere questa modifica permanente dovremo modificare il file /etc/sysctl.conf modificando la riga
  
net.inet.ip.forwarding=0  
+
net.inet.ip.forwarding=0  
 
 
 
in
 
in
 
+
net.inet.ip.forwarding=1
net.inet.ip.forwarding=1
 
  
  
 
Ed abilitare il routing da /etc/rc.conf sostituendo
 
Ed abilitare il routing da /etc/rc.conf sostituendo
 
+
routed_flags=NO        # for normal use: "-q"
routed_flags=NO        # for normal use: "-q"
 
 
 
 
con
 
con
 
+
routed_flags="-q"        # for normal use: "-q"
routed_flags="-q"        # for normal use: "-q"
 
 
 
 
 
  
 
Adesso è la volta di vedere la configurazione del firewall /etc/pf.conf
 
Adesso è la volta di vedere la configurazione del firewall /etc/pf.conf
  
#Selezioniamo l'interfaccia di rete verso l'esterno
+
Selezioniamo l'interfaccia di rete verso l'esterno
ext_if="pppoe0"
+
ext_if="pppoe0"
  
 +
Adesso quella verso la LAN interna attraverso la quale condivideremo la connessione
 +
int_if="ne0"
  
#Adesso quella verso la LAN interna attraverso la quale condivideremo la connessione
 
int_if="ne0"
 
  
 
+
Impostiamo il nat dall'interfaccia esterna a tutte le altre
#Impostiamo il nat dall'interfaccia esterna a tutte le altre
 
 
nat on $ext_if from !($ext_if) -> ($ext_if:0)
 
nat on $ext_if from !($ext_if) -> ($ext_if:0)
  
  
#Blocchiamo in ingresso dall'esterno la porta 53, quella del DNS, per quando riguarda
+
Blocchiamo in ingresso dall'esterno la porta 53, quella del DNS, per quando riguarda
#il protocollo UDP così che nessuno da fuori possa sfruttare il nostro dns
+
il protocollo UDP così che nessuno da fuori possa sfruttare il nostro dns
block in on $ext_if proto udp to port = 53
+
block in on $ext_if proto udp to port = 53
  
  
#Potremmo bloccare la porta UDP 53 anche solamente per un certo range di IP, ad esempio
+
Potremmo bloccare la porta UDP 53 anche solamente per un certo range di IP, ad esempio
#gli IP che non fanno parte della sottorete 150.xxx.xxx.0/24  
+
gli IP che non fanno parte della sottorete 150.xxx.xxx.0/24  
#block in on $ext_if proto { tcp, udp } from !150.xxx.xxx.0/24 to port = 53 keep state
+
block in on $ext_if proto { tcp, udp } from !150.xxx.xxx.0/24 to port = 53 keep state
  
  
# Blocchiamo i pacchetti ICMP così non ci rompono le scatole con i ping
+
Blocchiamo i pacchetti ICMP così non ci rompono le scatole con i ping
block in proto icmp from any to any
+
block in proto icmp from any to any
  
  
# scrub for NAT in PPPoE for using max mtu value
+
# scrub for NAT in PPPoE for using max mtu value
# questo parametro seve per far funzionare il nat con il pppoe
+
# questo parametro seve per far funzionare il nat con il pppoe
scrub out on pppoe0 max-mss 1440
+
scrub out on pppoe0 max-mss 1440
  
  
Riga 620: Riga 495:
  
 
-a permette di indicare un gid corrispondente ad un gruppo di utenti considerati trusted che di conseguenza non vengono chrootati. Non va usato insieme all'opzione -A.
 
-a permette di indicare un gid corrispondente ad un gruppo di utenti considerati trusted che di conseguenza non vengono chrootati. Non va usato insieme all'opzione -A.
 +
 +
[[Category:Howto]]

Versione attuale delle 16:42, 21 set 2015

Storia

Nel Giugno del 1996 Theo de Raadt, uno dei primi sviluppatori del NetBSD, si allontana dal progetto a causa di attriti con il resto della comunità. Il suo fork prenderà il nome di OpenBSD e i suoi obiettivi saranno: sicurezza, rispetto degli standard e portabilità.


Creazione di un supporto d'avvio per l'installazione

In questo articolo mi occuperò solamente dell'installazione e configurazione di base del port di OpenBSD per piattaforma i386 nella sua ultima versione: la 5.5. Per non sovraccaricare il server primario è consigliabile utilizzare un mirror, il mirror italiano si trova a questo indirizzo: ftp://openbsd.mirror.garr.it/pub/OpenBSD/5.5/i386/

Possiamo scegliere tra diversi file d'immagine per installare il sistema:

  • floppy55.fs (Desktop PC) supporta la maggior parte delle periferiche PCI, ISA, dei controller IDE e SCSI e alcune schede PCMCIA.
  • floppyB55.fs (Servers) supporta diversi controller RAID e SCSI non presenti nel floppy39.fs.
  • floppyC55.fs (Laptops) contiene i driver CardBus and PCMCIA della maggior parte dei normali laptop.
  • cd55.iso è una immagine ISO9660 che può essere usata per creare CD d'avvio. Contiene la più numerosa selezione di driver, se la macchina in cui vogliamo installare OpenBSD ha il supporto per il CDROM questa è probabilmente la scelta migliore.
  • install55.iso immagine standard per l'installazione da CD-ROM, nella maggior parte dei casi è questo il file che conviene masterizzare
  • install55.fs immagine standard per l'installazione da USB

Creazione di un floppy di boot

Da sistemi BSD

Scaricare il file immagine desiderato (es. floppy55.fs)

Formattare un floppy

# fdformat /dev/rfd0c
Format 1440K floppy `/dev/rfd0c'? (y/n): y
Processing VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV done.

Se il floppy dovesse avere dei settori danneggiati sostituitelo.

Adesso scriviamo l'immagine sul floppy

# dd if=floppy55.fs of=/dev/rfd0c bs=32k

Da Linux

# fdformat /dev/fd0
# dd if=floppy55.fs of=/dev/fd0


Da MS DOS o Windows

Formattazione del floppy

C:\> format a:

Scrittura dell'immagine con rawrite

C:\> rawrite
RaWrite 1.2 - Write disk file to raw floppy diskette
Enter source file name: floppy55.fs
Enter destination drive: a
Please insert a formatted diskette into drive A: and press -ENTER- : Enter


Creazione di una ISO personalizzata

Molti potrebbero avere bisogno di un'iso per cdrom contenente non solo il sistema base, ma anche i sorgenti o dei pacchetti precompilati.

Scaricate tutto il contenuto di ftp://openbsd.mirror.garr.it/pub/OpenBSD/5.5/i386/ in OpenBSD/5.5/ Io per eseguire queste operazioni uso wget con l'opzione mirror, ma è possibile utilizzare qualsiasi client ftp.

# wget -m ftp://openbsd.mirror.garr.it/pub/OpenBSD/5.5/i386/
# mv  openbsd.mirror.garr.it/pub/OpenBSD .
# rm -rf openbsd.mirror.garr.it
# cd OpenBSD/

Se ci interessa possiamo scaricare

Possiamo anche creare la directory packages/ e aggiungervi qualsiasi pacchetto precompilato si desideri installare dopo l'installazione del sistema di base. Naturalmente si dovrà fare attenzione alle dipendenze di ciascun pacchetto scaricato e a non superare lo spazio del supporto sul quale vogliamo andare a scrivere la nostra iso.

# mkdir packages
# cd packages
# wget -m ftp://openbsd.mirror.garr.it/pub/OpenBSD/5.5/packages/i386/


Se non ci siete tornate nella cartella OpenBSD/ e date un comando di questo genere per creare la vostra iso

# mkisofs -r -l -V "OpenBSD-5.5" -A "OpenBSD v5.5-Release, \
Custom ISO, 06-05-2014." -b 5.5/i386/install55.fs -c boot.catalog \
-o openbsd-i386-5.5.iso ../OpenBSD/


Per masterizzare l'iso va bene qualsiasi programma: K3B, Nero o da linea di comando:

# cdrecord -v -tao dev=/dev/il_vostro_masterizzatore -data driveropts=burnfree openbsd-i386-5.5.iso

Installazione

Le parole o le lettere in neretto corrispondono a quello che dovreste digitare per proseguire con l'installazione. Fate fare il boot da CDROM al vostro computer e se tutto va bene dovrebbe apparirvi questo:

Welcome to the OpenBSD/i386 5.5 install program.
(I)nstall, (U)pgrade, (A)utoinstall or (S)hell? i

Selezionare it per la tastiera italiana e dare un nome al computer.

Choose your keyboard layout ('?' or 'L' for list) [default] it
System hostname? (short form, e.g. 'foo') puffy

Premere invio per configurare l'interfaccia di rete principale.

Available network interfaces are: em0 vlan0.
Which one do you wish to configure? (or 'done') [em0] Enter

Utilizzare dhcp o configurare un IP manualmente.

IPv4 address for em0? (or 'dhcp' or 'none') [dhcp] Enter

Salvo esigenze particolari è possibile saltare i prossimi due passaggi premendo Invio.

IPv6 address for em0? (or 'rtsol' or 'none') [none] Enter
Which one do you wish to configure? (or 'done') [done] Enter

Inserire la password di root. "Will not echo" significa che comparirà niente sullo schermo mentre si digita la password, per conferma dopo occorrerà ridigitarla)

Password for root account? (will not echo) PaSsWoRd
Password for root account? (again) PaSsWoRd

Configurazione dei demoni del sistema di base

Start sshd(8) by default? [yes] Enter

Il network time protocol daemon è un demone che sincronizza automaticamente l'orologio della vostra macchina con alcuni server su Internet. Se avete una connessione ADSL flat può essere una buona idea rispondere yes, se non vi interessa premete Invio.

Start ntpd(8) by default? [no] y
NTP server? (hostname or 'default') [default] Enter

Installazione del sistema grafico

Do you expect to run the X Window System? [yes] Enter

Inserire y per avviare X automaticamente all'avvio

Do you want the X Window System to be started by xdm(1)? [no] y

È possibile aggiungere un utente amministratore

Setup a user? (enter a lower-case loginname, or 'no') [no] Nome utente
Password for nome utente account? (will not echo) PaSsWoRd
Password for nome utente account? (again) 'PaSsWoRd

Selezionare la zona per il fusorario What timezone are you in? ('?' for list) [Canada/Mountain] Europe/Rome

Configurazione del disco

Available disks are: wd0.
Which one is the root disk? (or done) [wd0] Enter
Use DUIDs rather than device names in fstab? [yes] Enter

Se il sistema riconosce più di un disco (es. wd1) potete specificare un supporto diverso da wd0, probabilmente però dovrete installare un boot loader (es. GRUB) per poter avviare la partizione dove avete installato OpenBSD.

Premere Invio per utilizzare tutto il disco, altrimenti è possibile specificare manualmente le partizioni.

Use (W)hole disk or (E)dit the MBR? [whole] Enter

Se non si ha intenzione di usare l'intero hard disk si consiglia di partizionarlo da Linux con cfdisk o gparted (l'fdisk dell'OpenBSD sembra studiato ad arte per portare i neuroni dell'utente al suicidio di massa)'.

Premere E per non lasciare al sistema il compito di creare automaticamente le varie partizioni.

Use (A)uto layout, (E)dit auto layout, or create (C)ustom layout? [a] E

Ora ci troveremo ad usare disklabel per creare le slice nella partizione dell'OpenBSD. Aggiungiamo una label per la /

> a a
offset: [63] Enter

Il punto di inizio della partizione, va bene il valore che ci dà lui.

size: [xxxxxxxxx] 2000m

A size possiamo indicare la grandezza della slice, nel caso dell'esempio 2000 Mb, specificando k per Kb, m per Mb o g per Gb dopo il valore numerico che abbiamo inserito.

Rounding to nearest cylinder: xxxxxx
FS type: [4.2BSD] Enter
mount point: [none] /


Aggiungiamo una label di swap

> a b
offset: [xxxxxx] Enter
size: [xxxxxxxx] 300m
Rounding to nearest cylinder: xxxxxx
FS type: [swap] Enter


Per uso server o multiutente sarebbe indicato aggiungere anche delle slice per: /tmp, /var e /home

> a d
offset: [xxxxxxx] Enter
size: [xxxxxxx] 200m
Rounding to nearest cylinder: xxxxx
FS type: [4.2BSD] Enter
mount point: [none] /tmp

E così via...

> p m

Per visualizzare la situazione definitiva con i parametri in Megabyte.

> q 
Write new label?: [y] Enter
OpenBSD filesystems:
wd0a /
The next step *DESTROYS* all existing data on these partitions!
Are you really sure that you're ready to proceed? [no] y


Installazione del sistema di base

Let's install the sets!
Location of sets? (cd disk ftp http or 'done') [cd] Enter
Available CD-ROMs are: cd0.

Se abbiamo usato un floppy di boot, se ci siamo scordati qualcosa nella directory /5.5/i386/ della nostra iso o per qualsiasi altro motivo è possibile installare il sistema di base anche via ftp, http o da un altro disco.

Which one contains the install media? (or 'done') [cd0] Enter
Pathname to the sets? (or 'done') [5.5/i386] Enter
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] etc55.tgz     [X] xbase55.tgz   [X] xserv55.tgz
[X] bsd.rd        [X] comp55.tgz    [X] xetc55.tgz
[ ] bsd.mp        [X] man55.tgz     [X] xshare55.tgz
[X] base55.tgz    [X] game55.tgz    [X] xfont55.tgz

Premere invio per installare tutto Vi consiglio di selezionarli tutti ed installarli, ulteriori dettagli sono disponibili qui.

Set name(s)? (or 'abort' or 'done') [done] Enter

Ignorare l'avvertimento e proseguire con l'installazione

Directory does not contain SHA256.sig. Continue without verification? [no] y
Location of sets? (cd disk ftp http or 'done') [done] Enter
   

L'installazione è terminata, quando compare la shell scrivere reboot per avviare il sistema OpenBSD.

Rendere il sistema più user friendly

Inserite queste righe nel file: /etc/profile

export PS1="[\u@\h \W]\\$ "
alias ls='ls -a'
alias ll='ls -l'
alias free='top -n | head -5'
PKG_PATH="http://openbsd.mirror.garr.it/pub/OpenBSD/5.5/packages/i386/"
export PKG_PATH

Vi troverete una shell con un impatto visivo molto simile alla Bash di Linux, che volendo possiamo anche installare dato che è presente nei packages e nei ports.

[nomeutente@nomecomputer directory]$


Avendo esportato automaticamente il PKG_PATH, al prossimo login (non importa riavviare), per installare un pacchetto da Internet vi sarà sufficiente usare

# pkg_add nomepacchetto-versione.tgz


Create le directory /mnt/cdrom e /mnt/floppy dove montare i rispettivi device, su OpenBSD di default non vengono create.

# mkdir /mnt/cdrom
# mkdir /mnt/floppy

Successivamente aggiungete le seguenti righe al file /etc/fstab

/dev/fd0a /mnt/floppy msdos rw,noauto,nosuid 0 0
/dev/cd0a /mnt/cdrom cd9660 ro,noauto 0 0

OpenBSD non possiede un filesystem che supporti il journaling, ma si consiglia di aggiungere l'opzione softdep alle partizioni ffs

/dev/sd0a / ffs rw,softdep 1 1


Adesso per montare cdrom e floppy basteranno i comandi:

# mount /mnt/cdrom
# mount /mnt/floppy


Se come me avete un'immagine ISO di OpenBSD con una cartella 5.5/packages piena di pacchetti precompilati, per installarvi dovrete entrare in quella cartella e dare il comando:

# pkg_add pacchetto-versione.tgz

Per togliere un pacchetto invece:

# pkg_delete pacchetto-versione.tgz

L'albero dei port

Per compilare i pacchetti in maniera automatica possiamo decomprimere l'archivio ports.tar.gz nella directory /usr.

# cp /mnt/cdrom/5.5/ports.tar.gz /usr
# cd /usr
# tar -xzvf ports.tar.gz
# rm ports.tar.gz
# cd ports


Nella directory /usr/ports troveremo tutti i sorgenti dei pacchetti del software aggiuntivo disponibili per OpenBSD. Es.: per compilare ed installare nmap dovremo fare così:

# cd /usr/ports/net/nmap
# make install


Configurazione di alcuni demoni utili

Editando il file di configurazione /etc/rc.conf è possibile gestire l'avvio automatico dei server del sistema di base. Però come sostengono anche nel manuale ufficiale dell'OpenBSD sarebbe buona norma non toccare mai il file /etc/rc.conf. Per facilitare successivi upgrade è meglio creare al suo posto il file /etc/rc.conf.local che al boot ne sovrascrive le impostazioni e copiarvi solamente le linee che vogliamo modificare. In questo modo otteniamo un unico file contenente tutte le modifiche.

Per avviare automaticamente Apache (già sotto chroot)

# echo httpd_flags= >> /etc/rc.conf.local

Bind

# echo named_flags= >> /etc/rc.conf.local

Personalmente cerco sempre di avere un server dns di cache nella mia rete locale in modo da non essere dipendente da quello del mio ISP. Una volta avviato Bind per sfruttarlo dal computer dove è installato dovrete anche modificare il file /etc/resolv.conf ed aggiungere come prima riga:

nameserver 127.0.0.1

Per gli altri computer della rete sarà sufficiente indicare come server DNS l'indirizzo IP locale del vostro server Bind, oppure effettuare tutto tramite dhcp se lo avete installato sul server.


Server dhcp

Editare il file /etc/dhcpd.interfaces selezionando la scheda di rete dove vogliamo rendere attivo il server dhcp. Dovremmo scegliere una delle schede di rete della rete interna.

#    $OpenBSD: dhcpd.interfaces,v 1.1 1998/08/19 04:25:45 form Exp $
#
# List of network interfaces served by dhcpd(8).
#
ne0
#ep0
#de1

Adesso modifichiamo in questo modo il file /etc/dhcpd.conf

# $OpenBSD: dhcpd.conf,v 1.1 1998/08/19 04:25:45 form Exp $
#
# DHCP server options.
# See dhcpd.conf(5) and dhcpd(8) for more information.
#
# Network: 192.168.1.0/255.255.255.0
# Domain name: my.domain
# Name servers: 192.168.1.3 and 192.168.1.5
# Default router: 192.168.1.1
# Addresses: 192.168.1.32 - 192.168.1.127
#
shared-network LOCAL-NET {
option domain-name "openbsd.router";
option domain-name-servers 127.0.0.1;
subnet 192.168.0.0 netmask 255.255.255.0 {
option routers 192.168.0.1;
range 192.168.0.100 192.168.0.150;
}
}

option domain-name-servers 127.0.0.1 - indica il server DNS che nel nostro caso coincide con la macchina stessaper cui lo imposteremo con l'indirizzo 127.0.0.1

option routers 192.168.0.1; - indica l'indirizzo IP del gateway, corrisponde all'IP della scheda di rete sul quale vogliamo attivare il dhcpd.

range 192.168.0.100 192.168.0.150; - ci permette di selezionare un range di indirizzi IP per il dhcp. Secondo le mie impostazioni nella LAN posso utilizzare gli indirizzi da 192.168.0.1 a 192.168.0.99 staticamente come IP fissi, mentre quelli da 192.168.0.100 a 192.168.0.150 verranno assegnati dinamicamente dal demone dhcp. (Anche gli indirizzi sopra al 192.168.0.150 sono liberi).


Per attivare il servizio dhcpd dovremo editare nuovamente il file /etc/rc.conf sostituendo la riga

dhcpd_flags=NO        # for normal use: ""

con

dhcpd_flags=""        # for normal use: ""


Condivisione della connessione

Per condividere la connessione dobbiamo attivare l'IP forwarding in modo che i pacchetti possano passare dal router al client che li ha richiesti.

# sysctl net.inet.ip.forwarding=1

Per rendere questa modifica permanente dovremo modificare il file /etc/sysctl.conf modificando la riga

net.inet.ip.forwarding=0 

in

net.inet.ip.forwarding=1


Ed abilitare il routing da /etc/rc.conf sostituendo

routed_flags=NO        # for normal use: "-q"

con

routed_flags="-q"        # for normal use: "-q"

Adesso è la volta di vedere la configurazione del firewall /etc/pf.conf

Selezioniamo l'interfaccia di rete verso l'esterno

ext_if="pppoe0"

Adesso quella verso la LAN interna attraverso la quale condivideremo la connessione

int_if="ne0"


Impostiamo il nat dall'interfaccia esterna a tutte le altre nat on $ext_if from !($ext_if) -> ($ext_if:0)


Blocchiamo in ingresso dall'esterno la porta 53, quella del DNS, per quando riguarda il protocollo UDP così che nessuno da fuori possa sfruttare il nostro dns

block in on $ext_if proto udp to port = 53


Potremmo bloccare la porta UDP 53 anche solamente per un certo range di IP, ad esempio gli IP che non fanno parte della sottorete 150.xxx.xxx.0/24

block in on $ext_if proto { tcp, udp } from !150.xxx.xxx.0/24 to port = 53 keep state


Blocchiamo i pacchetti ICMP così non ci rompono le scatole con i ping

block in proto icmp from any to any


# scrub for NAT in PPPoE for using max mtu value
# questo parametro seve per far funzionare il nat con il pppoe
scrub out on pppoe0 max-mss 1440


Configurazione dell'interfaccia hostname.pppoe

OpenBSD permette una semplice configurazione di tutte le interfacce di rete. Dobbiamo creare dei file del tipo hostname.nome_device nella directory /etc

es. il file /etc/hostname.ep0 potrebbe contenere quanto segue:

inet 192.168.0.1 255.255.255.0 NONE

Oppure, se viene configurata tramite dhcp semplicemente avere questa riga:

dhcp


Significherebbe che la nostra scheda di rete /dev/ep0 ha l'indirizzo 192.168.0.1 e la netmask 255.255.255.0 I sistemi BSD identificano le schede di rete col nome del driver ed un numero, quindi possono coesistere più schede con il medesimo numeo. Non avremo come su Linux /dev/eth0, eth1, eth2... ma ne0, ne1 se abbiamo due schede NE2000 compatibile; ep0, ep1, ep2 per le 3Com e così via.

Un'impostazione tipica del file /etc/hostname.ppoe0

pppoedev ne0
!/sbin/ifconfig ne0 up
!/usr/sbin/spppcontrol \$if myauthproto=pap myauthname=testcaller \
myauthkey=donttell
!/sbin/ifconfig \$if inet 0.0.0.0 0.0.0.1 netmask 0xffffffff
!/sbin/route add default 0.0.0.1
up

ne0 è l'interfaccia di rete alla quale è attaccato il modem ethernet. myauthname e mayautkey sono rispettivamente l'username e la password.


Pure-ftpd

Pure-ftpd è un server ftp molto semplice, ma al tempo stesso altamente configurabile. Per installarlo lanciamo il comando:

# pkg_add pure-ftpd-1.0.20.tar.gz


Per eseguirlo automaticamente all'avvio è necessario aggiungere al file /etc/rc.local queste righe:

if [ -x ${PREFIX}/sbin/pure-ftpd ]; then
 echo Starting Pure-FTPd
 ${PREFIX}/sbin/pure-ftpd -A -B -H -u1000
fi


Questa sopra è la configurazione di default, ecco invece la mia:

if [ -x ${PREFIX}/sbin/pure-ftpd ]; then
 echo Starting Pure-FTPd
 ${PREFIX}/sbin/pure-ftpd -B -A -H -u 1000 -c 3 -C 5 -y 4:3 -n 40000:100 -k 95 \
-O stats:/var/log/pureftpd.log -I 5 -F /etc/welcome.msg -t 1:15
fi

Vi spiego brevemente a cosa servono tutti gli argomenti che ho impostato: -B demonizza il processo

-A fa il chroot del server

-H non risolve via dns gli IP delle connessioni, risparmiando banda e cpu

-u <valore> nessun utente con un gid inferiore a "valore" può loggarsi, utile per non far loggare root

-c limite di connessioni dallo stesso IP

-C limite totale di connessioni supportate

-y limite di connessioni per uno stesso utente:utente_anonimo

-n limite numero_files:Mb_occupati, permette di creare delle quote che l'utente non può superare

-k se il disco è pieno più del 95% non permette upload

-O stats:/var/log/pureftpd.log esegue il log del server nel formato stats sul file indicato

-I Timeout in minuti, nel mio caso se un utente rimane inattivo per più di 5 min viene disconnesso

-F permette di indicare un file col messaggio di benvenuto

-t limita la banda degli utenti anonimi upload:download

-T limita la banda utenti normali upload:download

-a permette di indicare un gid corrispondente ad un gruppo di utenti considerati trusted che di conseguenza non vengono chrootati. Non va usato insieme all'opzione -A.