lunedì, Dicembre 30, 2024

OpenBSD: domande e risposte

Amministrazione e configurazione

Perchè df dice che il mio disco è pieno al 101%?

OpenBSD si riserva di default il 5% di spazio su disco per evitare i problemi causati dal riempimento del disco. Dunque puoi continuare a lavorare, ma è meglio che cominci a fare un po’ di spazio.

Quali sono le opzioni al prompt di avvio?

  • -s avvio in modalità single user
  • -a chiede quale device usare come root
  • -d debugging

Al login come sostituisco il nome della macchina con un messaggio personalizzato?

Modifica la sezione default del file /etc/gettytab con qualcosa del genere:

 :im=rn Quello Che Vuoi (%t)rnn::

tieni presente che:

 %d data corrente
%h hostname
%t nome del terminale
%m tipo di macchina
%r versione del sistema operativo
%s nome del sistema operativo
%v versione del kernel

Come mai dopo aver installato OpenBSD al boot ottengo l’errore Bad magic?

L’errore

 Error reading boot sector
Bad magic

è dovuto al fatto che il kernel si trova oltre il 1024° cilindro e quindi hai il badmagic. Devi stare attento a non superare il 1024° cilindro con la partizione che userai per OpenBSD.

Volevo installare OpenBSD via CD. Dopo aver scritto tutti i file necessari su CD, ho avviato da floppy ma quando mi viene chiesto il path dell’install set c’è disponibile una sola scelta: [ ] bsd. Qual’è il problema?

Controlla innanzitutto se il dischetto di boot è quello per la versione giusta, (ad esempio il floppy di avvio della 3.2 non vede i file della 3.3).

Controlla anche se il filesystem sul cdrom è in ordine, ad esempio alcuni programmi per la masterizzazione scrivono i nomi dei file sul disco a lettere maiuscole…

Come imposto la tastiera italiana?

La tastiera si imposta con il comando:

 # wsconsctl -w encoding=it

per eseguire tale operazione al boot:

# echo 'wsconsctl -w encoding=it' >> /etc/rc.local

dalla versione 3.0 basta aggiungere questa riga

   keyboard.encoding=it

al file /etc/wsconsctl.conf

Come si cambia la shell di default?

Se ad esempio vogliamo impostare bash come shell predefinita dopo aver installato il relativo pacchetto, bisogna aggiungere /usr/local/bin/bash all’elenco delle shell digitando:

   # echo '/usr/local/bin/bash' >> /etc/shells

e per renderla shell di default

   # chsh -s bash

Come si applica una patch?

Innanzitutto bisogna scaricare il file contenente la patch che si vuole applicare, si può anche scaricare il file tar.gz contenente tutte le patch, ad esempio per la versione 3.0:

   # ftp ftp://ftp.openbsd.org/pub/OpenBSD/patches/3.0.tar.gz
   # tar xfzv 3.0.tar.gz

bisogna applicare tutte le patch nella directory comune e quelle relative alla nostra specifica architettura. Prima di applicare le patch abbiamo bisogno dei sorgenti della versione che stiamo usando. I sorgenti sono presenti nel CDROM di OpenBSD:

   # mount /dev/cd0a /mnt
   # cd /usr/src
   # tar xfzv /mnt/src.tar.gz

Adesso siamo pronti per applicare le patch. Ad esempio aggiorniamo OpenSSH 3.0 alla versione OpenSSH 3.0.2 Applichiamo la patch in questo modo:

   # mv 002_ssh2.patch /usr/src
   # cd /usr/src
   # patch -p0 < 002_ssh.patch

ricompiliamo ssh:

   # cd usr.bin/ssh
   # make obj
   # make cleandir
   # make depend
   # make && make install

Ora bisogna solo riavviare il servizio

   # kill -HUP `sed 1q /var/run/sshd.pid`

Nota: per alcune patch bisogna ricompilare il kernel.

Questo procedimento, benchè abbastanza generico, non è valido per tutte le patch. Per il procedimento esatto relativo alla patch che si sta applicando si faccia riferimento alle prime righe del file *.patch.

Quali pacchetti sono necessari per avere un sistema funzionante?

I pacchetti necessari sono:

   * baseXX.tgz che contiene il sistema base
   * etcXX.tgz che contiene i file che andranno in in /etc
   * bsd che è il kernel

XX rappresenta il numero di versione, 35 per la 3.5 e così via.

Come aggiungo un ‘file set’ dopo aver terminato l’installazione?

Ci sono due modi per aggiungere uno o più ‘file set’ al sistema dopo aver terminato l’installazione:

  • usare lo script Upgrade: avviare il sistema dal disco d’installazione (CD-ROM o Floppy), e scegliere Upgrade invece di Install.
  • usare tar: i ‘file set’ di installazione non sono altro che file compressi in tar, e potete scompattarli manualmente nella directory root / ad esempio:
   # cd /
   # tar xzvpf comp36.tgz

Dopo aver aggiornato i ports con cvsup, come faccio a visualizzare un riassunto di quello che è successo (port aggiunti/cancellati, file modificati, versioni cambiate…)?

Per ottenere i nomi dei file aggiornati usa cvsup con l’opzione -L 1. (-L 2 per avere ancora più dettagli).

Esiste qualche utility che elenca i pacchetti che possono essere aggiornati, qualcosa tipo pkg_version presente in FreeBSD?

Per controllare se ci sono aggiornamenti è possibile utilizzare lo script out-of-date distribuito insieme ai ports:

   # cd /usr/ports/infrastructure/build
   # sh out-of-date

Cos’è bsd.rd?

bsd.rd è un ‘RAM Disk kernel’. Al suo interno contiene una serie di utility che dopo il boot vengono lanciate da un ‘file system virtuale’ residente nella RAM del sistema. bsd.rd include inoltre un set di utility di emergenza per consentire la manutenzione e l’installazione del sistema.

Quali dimensioni deve avere la partizione swap?

Non c’è una regola vera e propria, secondo alcuni deve essere pari alla memoria RAM disponibile, secondo altri per evitare problemi deve essere il doppio della RAM più lo spazio per /tmp.

A cosa serve lo script /etc/security?

Security èuno script che esamina il sistema alla ricerca di punti deboli dal punto di vista della sicurezza. è solo un aiuto e non offre una protezione completa. Normalmente viene eseguito da /etc/daily. Nota che ci sono infiniti modi in cui il sistema può essere compromesso senza che lo script se ne accorga.

Esiste un parametro da settare, per far si che in console, dopo un determinato tempo di inutilizzo da parte di un utente, si abbia automaticamente il logout?

Si può usare idled, incluso tra i package di OpenBSD. idled è un demone che controlla il comportamento degli utenti e interviene se riscontra determinati comportamenti.

E’ meglio fare le modifiche nel file /etc/rc.conf oppure direttamente in /etc/rc?

Il file /etc/rc è fatto in modo da non necessitare modifiche ma prende i valori di configurazione dal file /etc/rc.conf. Molti servizi possono essere attivati/disattivati semplicemente gestendo dei flag nel file /etc/rc.conf. Comunque è possibile disabilitare i servizi sia commentando le relative sezioni nel file /etc/rc sia attraverso i flag in /etc/rc.conf. Di sicuro il primo comportamento è più radicale. Per i più paranoici è consigliabile disabilitare il servizio modificando il flag corrispondente in /etc/rc.conf e commentando inoltre anche le righe corrispondenti in /etc/rc.

Nei file di configurazione, per disattivare i servizi è meglio commentare o cancellare le righe in esame?

Se si predilige la comodità alla sicurezza, è meglio solo commentare le righe, oppure cancellarle e tenere una copia del file originale senza modifiche, in modo da poter tornare indietro senza difficoltà , lo stesso ovviamente vale anche per un eventuale intruso che può riabilitare funzioni e servizi semplicemente decommentando qualche riga. Se viceversa si preferisce la sicurezza è meglio cancellare le righe interessate.

Come faccio a cercare nei ports quello che mi serve? C’è un modo per visualizzare tutte le descrizioni dei pacchetti che verificano la mia richiesta?

Si può eseguire make search con key=’parola-chiave’, ad esempio se stiamo cercando qualcosa relativo a ruby si può fare così:

   make search key='ruby' | less

Un’altra soluzione è la seguente, si cerca in tutti i file DESCR presenti nell’albero dei ports la stringa ‘ruby’, e vengono mostrati uno alla volta tutti i nomi dei file che verificano la chiave:

   find /usr/ports -name 'DESCR' | xargs grep -i 'ruby' | cut -f1 -d : | sort -u | more -C

tutto su una riga.

/var/log/messages contiene molte righe con : /bsd: proc: table is full, cosa vuol dire? =

Significa che ci sono troppi processi in esecuzione. Per sapere qual’è il numero massimo vedi

   sysctl kern.maxproc

Internet e Reti

Come si abilita il protocollo IPsec?

Nel file /etc/sysctl.conf bisogna decommentare le righe:

   net.inet.esp.enable
   net.inet.ah.enable

che abilitano rispettivamente il protocollo ESP ed il protocollo AH.

In FreeBSD è presente una opzione di sysctl chiamata net.inet.tcp.blackhole, c’è una opzione equivalente in OpenBSD o in PF?

L’opzione net.inet.tcp.blackhole posta a 1 previene l’invio da parte del sistema di un messaggio RST in risposta ad un tentativo di connessione ad una porta priva di servizi in ascolto. Sotto OpenBSD questo è il comportamento di default di PF quando è impostata l’azione block. Per maggiori informazioni fate riferimento alla pagina del manuale di pf.conf

   man 5 pf.conf

ed in particolare guardate le parti relative a block drop, block return-rset, block return-icmp e block return.

Come mai OpenBSD include programmi come Sendmail e BIND che sono notoriamente insicuri?

Dire ‘notoriamente insicuri’ non è corretto, sarebbe meglio ‘percepiti come insicuri’, che è molto diverso. Inoltre sia la versione di BIND che quella di Sendmail distribuita con OpenBSD sono state verificate dall’OpenBSD team, quindi si suppone siano sicure.

Perchè Sendmail ignora il file /etc/hosts?

Di default, Sendmail usa DNS per la risoluzione dei nomi, e non il file /etc/hosts. Tale comportamente può essere cambiato attraverso l’uso del file /etc/mail/service.switch. Se vuoi che venga interrogato il file hosts prima del DNS, crea il file /etc/mail/service.switch contenete la seguente linea:

   hosts files dns

Se vuoi che venga interrogato SOLO il file hosts:

   hosts files

Quindi per rendere effettive le modifiche:

   $ sudo kill -HUP `head -1 /var/run/sendmail.pid`

Ho aggiornato OpenBSD alla versione 3.5 e ho dei problemi con pppd, cosa è successo?

Devi semplicemente crearti manualmente l’interfaccia con ifconfig:

   ifconfig ppp0 create

molte interfacce devono adesso essere create dinamicamente, basta eseguire ifconfig -a su una 3.5 per accorgersi che sono presenti meno interfacce che in passato.

Come faccio a fare traffic shaping su OpenBSD?

Puoi usare altq e il demone altqd, per esempi di configurazione man altq.conf. Nel mese di novembre 2002 è stata annunciata la fusione di altq nel Packet Filter di OpenBSD, quindi da questa data in poi le versioni di PF conterranno anche le funzionalità di altq.

Esiste su OpenBSD 3.x la possibilità di fare una connessione plip?

C’e’ un driver per plip che si puo’ applicare ad una vecchia versione di OpenBSD. Un port del driver plip di NetBSD/i386 e’ stato postato su [email protected] nel mese di Maggio 1999. Il post è consultabile all’indirizzo: http://monkey.org/openbsd/archive/tech/9905/msg00110.html

In che modo posso cambiare il valore dell’MTU della mia scheda di rete?

Basta aggiungere mtu 1492 nel file /etc/hostname.if alla fine della linea, ad esempio:

   inet <ip> <NETMASK> NONE mtu 1492

Da tenere presente che non tutte le schede permettoni di impostare il valore dell’MTU.

Programmi e applicazioni

Ho appena installato OpenBSD 3.x, dov’è IP Filter?

Dalla versione 3.0 IP Filter non è più presente, semplicemente perchè l’autore di IPF, Darren Reed, ha modificato la licenza in modo incompatibile con la filosofia di OpenBSD, e quindi IPF è stato rimosso. Se vuoi continuare ad usarlo hai due possibilità , la prima consiste nell’installare il sistema partendo dall’immagine ISO ( OpenBSD3.x + IPF ) preparata da Darren Reed, che si trova all’ indirizzo http://openbsd30.ipfilter.org/, oppure puoi installare IPF nel tuo sistema seguendo le istruzioni presenti all’interno del package.

Ho aggiornato/installato IP Filter, perchè non funziona?

Per eseguire IP Filter bisogna aggiungere la seguente linea al file /etc/rc.conf:

   ipfilter=YES

Se vuoi usare anche IP NAT, devi aggiungere anche:

   ipnat=YES

Come si aggiorna IP Filter su un sistema OpenBSD (<3.0)?

Supponiamo di volerlo aggiornare alla versione 3.4.21:

   # gunzip -c ip_fil3.4.21.tar.gz | tar xf -
   # cd ip_fil3.4.21
   # BSD/kupgrade
   # make openbsd
   # make install-bsd
   # cd /sys/arch/foo/compile/kernel
   # make depend
   # make bsd
   # cp /bsd /bsd_original
   # cp bsd /bsd
   # reboot

abbiamo anche copiato il kernel corrente in bsd_original, da usare nel caso che il nuovo kernel non funzionasse, per utilizzare il vecchio kernel basta digitare al boot:

   boot> bsd_original

Per maggiori informazioni: http://www.tfsb.org/ipf-openbsd/

Quando tento di avviare ipmon si verifica un errore, cosa può essere?

Controlla che nel kernel sia decommentata l’opzione

   options IPFILTER_LOG

Come faccio a vedere in tempo reale mentre navigo i pacchetti bloccati da ipf?

Scrivi in un terminale:

   # ipmon -o

visualizzerà tutti i pacchetti loggati.

Sono passato da IpFilter a PF e mi sono accorto che non è più possibile usare le keyword head e group, con cosa le sostituisco?

Le keyword head e group erano usate in IPFilter per raggruppare una sequenza di regole, non sono più necessarie con PF, poichè gli insiemi di regole sono ottimizzati automaticamente. Quindi occorre riordinare manualmente il proprio insieme di regole.

Ogni volta che avvio pf con il comando pfctl -R pf.conf ottengo pfctl: DIOCADDRULE: Operation not supported by device qual’è il problema?

Questo accade quando le tue applicazioni a livello utente e il kernel non sono compilati dagli stessi sorgenti (il kernel è più vecchio/nuovo di pfctl). Per sistemare tutto:

   # cp /usr/src/sys/net/pfvar.h /usr/include/net

e ricompilare pfctl

   # cd /usr/src/sbin/pfctl
   # rm -rf obj
   # make obj && make && make install

Perchè PF non funziona ?

Ho abilitato PF in /etc/rc.conf con pf=YES, ho scritto le regole in /etc/pf.conf e caricato il file delle regole con il comando pfctl -f /etc/pf.conf. Perchè PF non funziona? Oltre a caricare le regole bisogna abilitare pf con il comando

   # pfctl -e

Hardware

La mia scheda video risulta not configured, è normale?

Si, è normale. La scheda video non è gestita dal kernel, ma da X che si occupa del supporto hardware.

Posso usare un drive ZIP?

Per le architetture i386 è possibile usarlo solo se è SCSI o ATAPI, mentre le architetture ppc supportatno anche i drive ZIP USB. Per il resto ci sono dei progetti ma ancora niente di concreto

OpenBSD vede solo 64MB su 80MB di RAM, cosa posso fare?

Prova a digitare

   machine memory [+-]<size>@<address>

ad esempio

   machine memory +0x4000000@0x1000000

al boot prompt, per maggiori informazioni

   man 8 boot

oppure inserisci la stessa linea in /etc/boot.conf

Qual’è la minima configurazione hardware richiesta?

La più piccola piattaforma sulla quale è installabile OpenBSD è un 80386, con una scheda MGA, con almeno 8M di RAM e hard disk da 40 Megabyte. Una installazione più ‘confortevole’ richiede almeno 100Meg di hard drive. Da tenere presente che questi sono valori puramente indicativi che garantiscono solo l’installazione; per avere un sistema “realmente” funzionante i valori di riferimento sono quelli riportati nelle FAQ ufficiali.

4.5 Il mio sistema si ferma a Using Drive: 0 Partition: 3. Che succede?

In genere questo accade o a causa dell’incompatibilità tra il vostro BIOS e l’MBR di OpenBSD, oppure a causa di problemi riguardanti la geometria del drive.

I problemi di geometria si verificano quando un drive viene spostato da un computer all’altro, a causa della differente configurazione del BIOS. Per risolvere questo problema avviate dal floppy creato per l’installazione, e al prompt di avvio scrivete:

   boot> boot wd0a:/bsd

dove wd è il drive dove è installato OpenBSD. Quindi loggatevi come root e scrivete:

   # cp /usr/mdec/boot /boot
   # /usr/mdec/installboot -v /boot /usr/mdec/biosboot wd0

In questo modo verrà configurato tutto in base alla vostra geometria. Se in questo modo non si risolve il problema, allora probabilmente si tratta di incompatibilità tra il BIOS e l’MBR.

4.6 Su quali notebook è possibile installare OpenBSD?

Una lista dei portatili supportati da OpenBSD è all’indirizzo:

OpenBSD supporta i sistemi con piu’ di una cpu (SMP)?

Si, dalla release 3.6 è possibile usare sistemi SMP (SimmetricMultiProcessor) per le piattaforme i386 e amd64. Altre piattaforme saranno disponibili entro 1 o 2 release.

OpenBSD/ppc supporta la compatibilità binaria con GNU/Linux?

Per ora i sistemi ppc non hanno la compatibilità binaria con Linux. La pagina del manuale compat_linux dice:

   OpenBSD supports running Linux binaries. This only applies to i386 systems for now.

Misc

Dove posso trovare documentazione e risorse su OpenBSD?

La documentazione principale di OpenBSD è rappresentata dalle FAQ, e dalle pagine di manuale. Oltre a questo bisogna ricordare numerosi articoli apparsi su varie riviste elettroniche e gli archivi delle mailing list dedicate a OpenBSD.

Perchè non riesco a trovare le ISO ufficiali?

Non riesci a trovarle perchè non esistono, ma ce ne sono alcune non ufficiali che non provengono dal progetto OpenBSD. Un consiglio, dato che il punto di forza di OpenBSD è la sicurezza, non è una buona idea installare un SO a partire da una ISO non ufficiale.

Quando esce la prossima versione di OpenBSD?

Il team di OpenBSD rende disponibile una nuova release cu CD ogni sei mesi, indicativamente questo avviene il 1 Maggio e il 1 Novembre.

Perchè OpenBSD non fornisce un file system di tipo journaling?

Perchè non è necessario. I file system journaling hanno lo scopo di limitare i danni in caso di crash e di occuparsi del reboot dopo un crash di un file system instabile. Poichè il file system usato da OpenBSD è molto stabile e offre buone prestazioni, non c’è bisogno del journaling.

TCFS è presente in OpenBSD? Ed è stabile?

TCFS non è più presente in OpenBSD dal mese di Aprile del 2003, è stato rimosso a causa di problemi inerenti alla licenza. Inoltre lo sviluppo della versione per OpenBSD è stato abbandonato prima di arrivare ad una release stabile.

Come faccio a creare, in ambiente MS Windows, un disco di installazione di OpenBSD, dopo essermi scaricato l’occorrente via FTP?

Ecco brevemente i passi da compiere:

  • Crea una directory di nome 3.1 sul tuo sistema.
  • All’interno di questa crea una directory di nome i386
  • Scaricati via FTP l’intera directory /pub/OpenBSD/3.1/i386 (i file necessari per l’installazione sono i file con estensione *.tgz e *.fs) nella directory 3.1/i386
  • Masterizza l’intera directory 3.1/i386 su un CD, usando il file cdrom31.fs come boot file, e ISO9660 come convenzione, e NON qualche strana estensione Windows.

In questo modo è possibile creare un disco d’installazione di OpenBSD 3.1. Attenzione, probabilmente sarà necessario modificare la directory di installazione di default da 3.1/i386 a 3.1/I386.

Che differenze ci sono tra -current, -stable e -release? E Snapshot?

-current: -current sta per openbsd-current e si riferisce a tutto quello che si trova nel CVS tree. Il -current tree contiene tutto il codice che andrà nella prossima release. -release: la versione -release è quella che finisce nei CD di ciascuna versione. -stable: il branch -stable è stato introdotto per la versione 2.7, e contiene la versione -release più le patch e alcuni aggiornamenti minori.

Tra due release ufficiali sono resi disponibili una serie di snapshot. Uno snapshot è una release di prova ricavata dal branch -current.

Come rimuovo un file di nome -name?

   # rm -- -name

oppure

   # rm ./-name

Riferimenti

Gran parte delle domande e delle risposte contenute in questo documento sono tratte da mailing list e newsgroup italiani e non, eccone un elenco parziale:

Mailing list e newsgroup

Articoli correlati

Noleggia una Tesla per il tuo evento ICT!

Categorie