Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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à.
• floppy39.fs (Desktop PC) supporta la maggior parte delle periferiche PCI, ISA, dei controller IDE e SCSI e
alcune schede PCMCIA.
• floppyB39.fs (Servers) supporta diversi controller RAID e SCSI non presenti nel floppy39.fs.
• floppyC39.fs (Laptops) contiene i driver CardBus and PCMCIA della maggior parte dei normali laptop.
• cdrom39.fs è una combinazione delle tre precedenti immagini. Può essere usata per creare un floppy di boot
da 2.88 Mb o più comunemente un immagine per cdrom personalizzati.
• cdemu39.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
1
Guida al sistema operativo OpenBSD
Formattare un floppy
# fdformat /dev/rfd0c
C:\> format a:
C:\> rawrite
RaWrite 1.2 - Write disk file to raw floppy diskette
Please insert a formatted diskette into drive A: and press -ENTER- : Enter
Molti potrebbero avere bisogno di un'iso per cdrom contenente non solo il sistema di 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.
In caso non abbiate 45 € è possibile creare un'iso NON ufficiale a partire dal materiale disponibile su Internet.
2
Guida al sistema operativo OpenBSD
# mkdir -p OpenBSD/3.9/
# wget -m ftp://ftp.unina.it/pub/OpenBSD/3.9/i386/
# mv ftp.unina.it/pub/OpenBSD/ .
# rm -rf ftp.unina.it
# cd OpenBSD/
(e i vari file di testo ANNOUNCEMENT, HARDWARE... sempre presenti nella solita dir remota: ftp://.../3.9/i386/)
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
# ftp ftp://ftp.unina.it/pub/OpenBSD/3.9/packages/i386/pacchetto_che_vogliamo.tgz
Se non ci siete tornate nella cartella OpenBSD/ e date un comando di questo genere per creare la vostra iso
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 COSTUM 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:
3
Guida al sistema operativo OpenBSD
Installazione di OpenBSD
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.
Fate fare il boot da CDROM al vostro computer e se tutto va bene dovrebbe apparirvi questo:
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.
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.
IS YOUR DATA BACKED UP? As with anything that modifies disk contents, this
program can cause SIGNIFICANT data loss.
It is often helpful to have the installation notes handy. For complex disk
configurations, relevant disk hardware manuals and a calculator are useful.
You will now initialize the disk(s) that OpenBSD will use. To enable all
available security features you should configure the disk(s) to allow the
creation of separate filesystems for /, /tmp, /var, /usr, and /home.
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 invece non avete intenzione di usare l'intero hard disk vi consiglio di partizionarlo da Linux con cfdisk o con un
4
Guida al sistema operativo OpenBSD
qualsiasi altro tool grafico perché l'fdisk dell'OpenBSD è studiato per portare i neuroni dell'utente al suicidio di
massa.
Ora ci troveremo ad usare disklabel per creare le slice nella partizione dell'OpenBSD.
Aggiungiamo una label per la /
> a a
offset: [63] Enter
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 b
Per uso server o multiutente sarebbe indicato aggiungere anche delle slice per: /tmp, /var e /home
> a d
offset: [xxxxxxx] Enter
size: [xxxxxxx] 200m
E così via...
> p m
> q
Write new label?: [y] Enter
OpenBSD filesystems:
wd0a /
5
Guida al sistema operativo OpenBSD
Io in genere do alle mie macchine nomi della mitologia greca, ma c'è chi usa elementi della tabella
periodica, enzimi, malattie infettive...
Se nella vostra lan c'è un server dhcp potere usare il dhcp client invece dell'indirizzo IP statico, basta scrivere dhcp.
Naturalmente dovete inserire i dati della vostra rete (IP, DNS, gateway...).
"Will not echo" significa che non vedrete comparire niente sullo schermo mentre digitate la password, niente lettere
ne asterischi. Per conferma dopo dovrete ridigitarla.
6
Guida al sistema operativo OpenBSD
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.
Which one contains the install media? (or 'done') [cd0] 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] bsd.rd
[ ] 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
[..]
Ultimazione dell'installazione
Se volete che il demone ssh venga avviato automaticamente all'avvio premete invio.
7
Guida al sistema operativo OpenBSD
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.
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.
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
8
Guida al sistema operativo OpenBSD
# 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
# mount /mnt/cdrom
# mount /mnt/floppy
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:
# pkg_add pacchetto-versione.tgz
# pkg_delete pacchetto-versione.tgz
# cp /mnt/cdrom/3.9/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
9
Guida al sistema operativo OpenBSD
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 Bind
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.
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.
# Network: 192.168.1.0/255.255.255.0
# Domain name: my.domain
# Name servers: 192.168.1.3 and 192.168.1.5
10
Guida al sistema operativo OpenBSD
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
con
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
11
Guida al sistema operativo OpenBSD
con
#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
12
Guida al sistema operativo OpenBSD
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.
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
Pure-ftpd
# 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
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
13
Guida al sistema operativo OpenBSD
-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.
$pooky Hunter
14