#format wiki #language it = Caronte = Caronte è il router di Unit. Sarà anche il router di Macao? Verificare con Accio. ''Nota: attualmente la macchina è accessibile solo tramite rete tor, in attesa del setup definitivo della rete. Chiedere a [[crudo]] le credenziali.'' == Hardware == ''To be done.'' == Installazione == Scaricare l'immagine di OpenBSD 6.0 amd64 ([[http://openbsd.mirror.garr.it/pub/OpenBSD/6.0/amd64/install60.iso|mirror GARR]]) e masterizzarla su un CD. Una volta avviato si presenterà un prompt che chiederà di avviare l'installazione o ottenere una shell sulla live. Premere `S` per ottenere la shell. Selezionare il layout della tastiera con il comando `kbd`. Per una tastiera italiana `kbd it`. Spostarsi in `/dev` con `cd /dev` ed eseguire i comandi {{{ sh MAKEDEV sd0 sh MAKEDEV sd1 sh MAKEDEV sd2 }}} Il kernel creerà i device files necessari per il sistema. `sd0` e `sd1` rappresentano i primi due devices SCSI che verranno inclusi nel mirror, `sd2` è il terzo disco SCSI spare, `sd3` rappresenterà il device virtuale del mirror dei primi due dischi. Inizializzare una nuova tabella delle partizioni MBR su entrambi i dischi con {{{ fdisk -iy sd0 fdisk -iy sd1 }}} Quindi è necessario creare su entrambi i dischi due partizioni (nella corrente installazione da 32GB) da usare per il mirror. {{{ disklabel -E sd0 > a a > offset: [enter] > size: 32G > FS type: RAID > w > x disklabel -E sd1 > a a > offset: [enter] > size: 32G > FS type: RAID > w > x }}} Inizializzare quindi il mirror: {{{ bioctl -c 1 -l sd0a,sd1a softraid0 sh MAKEDEV sd3 dd if=/dev/zero of=/dev/rsd3c bs=1m count=1 fdisk -iy sd3 }}} I dischi sono pronti. Avviare quindi l'installazione guidata: {{{ cd / install > keyboard layout: it > hostname: caronte > network: done > domain name: unit > DNS: none > root password: **** > ssh: no > X: no > default console to com0: no > setup user: no > root disk: sd3 > choose partition: o > choose layout: c > a a > offset: [enter] > size: 5G > FS type: [enter] > mount point: / > a e > offset: [enter] > size: 4G > FS type: [enter] > mount point: /var > a f > offset: [enter] > size: 2G > FS type: [enter] > mount point: /usr > a h > offset: [enter] > size: 4G > FS type: [enter] > mount point: /usr/local > a j > offset: [enter] > size: 2G > FS type: [enter] > mount point: /usr/src > a k > offset: [enter] > size: 2G > FS type: [enter] > mount point: /usr/obj > w > x > other disks: done > locations of sets: cd0 > pathname: [enter] > -game60.tgz > -x* > done > continue without verification: yes }}} Una volta terminato si presenterà una shell. È necessario ora installare il bootloader su entrambi i dischi: {{{ installboot -v sd0 /mnt/usr/mdec/biosboot /mnt/usr/mdec/boot installboot -v sd1 /mnt/usr/mdec/biosboot /mnt/usr/mdec/boot }}} Una buona idea è tenere la cartella /tmp in ram. Il parametro -s consente di definire una dimensione: {{{ echo "swap /tmp mfs rw,nodev,nosuid,-s=256M 0 0" >> /mnt/etc/fstab }}} Il sistema è installato e pronto a bootare. Riavviare con `reboot`. == Cosa ti farà impazzire == * Il sistema '''non''' si spegne con `shutdown -h now` come su Linux: `-h` significa halt. Il che vuol dire che il kernel effettuerà le scritture in sul disco, terminerà i processi, e tutto ciò che è necessario, ma non spegnerà la macchina. Il comando per tirarla giù è `shutdown -p now`, dove `-p` sta per poweroff. == Update == Controlla che nel file `/etc/mk.conf` sia presente: {{{ SKIPDIR="games/" }}} Se non hai mai aggiornato il sistema (`/usr/src` vuota) allora esegui: {{{ cd /usr cvs -qd anoncvs@anoncvs.ca.openbsd.org:/cvs get -rOPENBSD_6_0 -P src }}} Altrimenti esegui: {{{ cd /usr/src cvs -q up -rOPENBSD_6_0 -Pd }}} Quindi: {{{ cd /sys/arch/i386/conf config GENERIC.MP cd ../compile/GENERIC.MP make clean make -j2 make install reboot umount /usr/obj mewfs sd3k mount /usr/obj cd /usr/src make -j2 obj cd /usr/src/etc env DESTDIR=/ make distrib-dirs cd /usr/src make -j2 build }}} == Partizione cifrata == Il sistema non è totalmente cifrato. Questo permette che in caso di sospensione della corrente elettrica o arresti (del sistema) inaspettati può tornare su da solo senza intervento dell'utente. Nella partizione cifrata andranno i dati che necessitano un certo livello di privacy ma che non impediscono il funzionamento base della rete. === Setup === Aggiungere una partizione al mirror sd0: {{{ disklabel -E sd3 > a n > offset: [return] > size: 4G > FS type: RAID > w > x }}} Inizializzare la partizione cifrata: {{{ bioctl -c C -l sd3n softraid0 > passphrase: **** dd if=/dev/zero of=/dev/rsd4c bs=1m count=1 fdisk -iy sd4 disklabel -E sd4 > a a > offset: [enter] > size: [enter] > FS type: [enter] > w > x newfs sd4a mkdir /crypto mount /dev/sd4a /crypto }}} === Montare la partizione quasi automaticamente === Lo script `/usr/local/bin/crypto_enable.sh` (presente nel `PATH`) fa tutto il necessario per avere la partizione /crypto accessibile. Se sono installati servizi che hanno bisogno dei dati cifrati essi '''non''' partiranno all'avvio, ma saranno avviati dallo script menzionato poc'anzi. === Smontare la partizione === Il sistema in fase di arresto smonterà tutti i dischi quindi non è davvero necessaqrio smontare la partizione e rilasciarla. Tuttavia, al fine documentativo i comandi sono: {{{ umount /crypto bioctl -d sd4 }}} == Software == === Configurazione interfacce di rete === Le interfacce di rete sono nominate in base al driver in grado di usarle (E.g.: le schede Realtek hanno come nome re0, re1, etc; le schede Broadcom Gigabit hanno come nome: bge0, bge1, etc.). La loro configurazione va impostata in un file chiamato /etc/hostname.if, dove al posto di if va messo il nome dell'interfaccia. Su ogni riga va inserito un comando per ifconfig. È possibile eseguire un comando da shell inserendo un punto esclamativo all'inizio della riga. Esempio per /etc/hostname.bge0: {{{ up inet 192.168.1.2 255.255.255.0 192.168.1.255 description "MACAO network" !route add default 192.168.1.1 }}} E l'output di ifconfig bge0 sarà: {{{ bge0: flags=8843 mtu 1500 lladdr 00:00:00:00:00:00 description: MACAO network index 1 priority 0 llprio 3 groups: egress media: Ethernet autoselect (100baseTX full-duplex,rxpause,txpause) status: active inet 192.168.1.2 netmask 0xffffff00 broadcast 192.168.1.255 }}} Per applicare le modifiche è sufficiente eseguire il comando `sh /etc/netstart`. === Firewall (pf) === ''To be done.'' === DNS (unbound) === Come quasiquasi tutti i demoni di OpenBSD, unbound è eseguito con privilegi minimi all'interno di un chroot (`/var/unbound`). La configurazione è reperibile quindi in `/var/unbound/etc/unbound.conf`. Il server dns è configurato come server dns recursive, caching, validating. Ciò significa che è in grado di effettuare richieste per conto dei client che le richiedono (attualmente limitato a 127.0.0.1 in attesa della configurazione di rete), le tiene in cache per un periodo di 60 minuti e soprattutto verifica l'autenticità delle risposte che riceve da altri server DNS usando DNSSEC. Il software è configurato per fare prefetch delle query in cache in scadenza. Altre misure di sicurezza implementate sono: non fornire nome e versione del software DNS, randomizzare l'alternanza di maiuscole e minuscole nella query per evitare DNS spoofing e l'uso esclusivo di DNSSEC per richieste verso l'esterno. Attualmente l'unico server DNS a cui fa riferimento è [[https://dns.watch/|DNS.watch]]. Una volta autenticati sulla macchina è possibile usare il comando unbound-control per ottenere informazioni sul funzionamento del server DNS. === DHCP === ''To be done.''