Skip to content

C o s e

cretox

  • Info

Category: General

Put the fun back into self-hosting with FreeBSD and jails

Posted on 11/07/2023 by cretox

Put the fun back into self-hosting with FreeBSD and jails

[Ita, Eng N/A]

Intro

“Self-hosting” inteso come fornire servizi (per se stessi o persone amiche) da un computer o server di cui si ha il completo controllo (hardware, software).
Esempio di servizi possono essere: sito/blog, istanza pleroma/mastodon, server xmpp, repository codice, archiviazione/condivisione file, ecc…
Questi servizi possono essere limitati alla rete lan o wifi locale oppure esposti su Internet per essere raggiungibili anche quando non si è in casa.

Fare self-hosting richiede tempo ma può essere una cosa meravigliosa se pensiamo che stiamo evitando di fornire i nostri dati a grandi multinazionali che lucrano proprio su queste informazioni!

Installazione

Una volta recuperato l’hardware, ad esempio un vecchio PC, possiamo seguire i passaggi di installazione descritti qui: Chapter 2. Installing FreeBSD
In pratica:

  • Download dell’immagine, io sceglierei la “-memstick.img” da https://download.freebsd.org/releases/amd64/amd64/ISO-IMAGES/13.2/ per la versione 13.2
  • Scrittura dell’immagine su una chiavetta USB
  • Boot del PC dalla chiavetta
  • Installazione
  • Avvio di FreeBSD da disco

I passaggi di installazione sono abbastanza semplici, per certi versi più semplici dell’installazione di Debian.
Hint: usa zfs
Per quanto riguarda i componenti opzionali se non si hanno necessità particolari, io sceglierei solo “lib32” e “ports”, o forse anche solo quest’ultimo.
Per quanto riguarda invece i servizi da attivare, prenderei solo “sshd”, “ntpd” e “powerd”.

Per chi ha un background Linux-centrico, questa pagina riassume le principali differenze tra FreeBSD e Linux in generale: FreeBSD Quickstart Guide for Linux® Users

Fun

La parte divertente inizia accendendo i servizi da offrire in rete.
Siccome dobbiamo farlo in modo sicuro, non li installiamo direttamente nel sistema operativo ma li isoliamo in modo tale che, se un servizio dovesse essere compromesso, non venga compromesso tutto il server, o comunque cerchiamo di rendere la vita difficile alle persone malintenzionate.

Su FreeBSD uno dei modi per isolare un servizio dal resto del sistema è l’uso di una “jail” (Chapter 17. Jails), anche se il nome ci sta molto antipatico :-(
Le jail si basano su concetti simili a quelli dei container su Linux.

Uno degli strumenti più in voga per amministrare le jail (possiamo farne quante ne vogliamo, ad esempio una per servizio o gruppo di servizi) è Bastille.

Preparazione di Bastille:

server> pkg install bastille
server> sysrc bastille_enable=YES
server> sysrc cloned_interfaces="lo1"
server> sysrc ifconfig_lo1_name="bastille0"
server> service netif cloneup

Modifica del file “/usr/local/etc/bastille/bastille.conf”, questo è il mio:

bastille_prefix="/bastille" 
bastille_backupsdir="${bastille_prefix}/backups" 
bastille_cachedir="${bastille_prefix}/cache" 
bastille_jailsdir="${bastille_prefix}/jails" 
bastille_releasesdir="${bastille_prefix}/releases" 
bastille_templatesdir="${bastille_prefix}/templates" 
bastille_logsdir="/var/log/bastille" 
bastille_sharedir="/usr/local/share/bastille" 
bastille_bootstrap_archives="base ports" 
bastille_tzdata="" 
bastille_resolv_conf="/etc/resolv.conf" 
bastille_url_freebsd="http://ftp.freebsd.org/pub/FreeBSD/releases/" 
bastille_url_hardenedbsd="http://installer.hardenedbsd.org/pub/hardenedbsd/" 
bastille_url_midnightbsd="https://www.midnightbsd.org/ftp/MidnightBSD/releases/" 
bastille_zfs_enable="YES" 
bastille_zfs_zpool="zroot" 
bastille_zfs_prefix="bastille" 
bastille_zfs_options="-o compress=lz4 -o atime=off" 
bastille_compress_xz_options="-0 -v" 
bastille_decompress_xz_options="-c -d -v" 
bastille_compress_gz_options="-1 -v" 
bastille_decompress_gz_options="-k -d -c -v" 
bastille_network_loopback="bastille0" 
bastille_network_shared="" 
bastille_network_gateway="" 
bastille_network_gateway6="" 
bastille_template_base="default/base" 
bastille_template_empty="" 
bastille_template_thick="default/thick" 
bastille_template_clone="default/clone" 
bastille_template_thin="default/thin" 
bastille_template_vnet="default/vnet"

Installazione template base (scelgo di usare la stessa versione FreeBSD del sistema):

server> bastille bootstrap 13.2-RELEASE

Come esempio di servizio, possiamo accendere una jail con Gitea (strumento per appoggiare codice, documentazione, ecc).
Qui “em0” è l’interfaccia di rete fisica del server collegata alla LAN di casa e “10.0.0.10” è un indirizzo IP libero della LAN che sarà assegnato alla jail.

server> bastille create gitea 13.2-RELEASE 10.0.0.10 em0
server> bastille pkg gitea update
server> bastille pkg gitea install ca_root_nss git openssl gitea

Entriamo nella jail per configurare Gitea

server> bastille console gitea

gitea> mkdir -p /data/repos
gitea> chown -R git:git /data/repos
gitea> vi /usr/local/etc/gitea/conf/app.ini

# queste le mie modifiche, il resto invariato:
ROOT = /data/repos
ROOT_URL = http://git.local.lan:3000/
DISABLE_SSH = true
# salva il file con <Esc> :wq

gitea> exit

Finiamo la jail con Bastille:

server> bastille sysrc gitea gitea_enable=YES
server> bastille service gitea gitea start

Teoricamente adesso navigando alla URL http://10.0.0.10:3000/ dovremmo poter accedere all’interfaccia web di Gitea.

The fun is back!

Posted in GeneralTagged freebsd, fun, jails

Silence that switch

Posted on 15/06/2016 by cretox

Some time ago I found a somewhat old Netgear Switch.

01_netgear_before
Nice!
  • 24 ports
  • 10/100/1000
  • Managed
  • Double SFP!

Well, the first port is broken :)
And it’s too loud! In our lab we have already a file server and an UPS, powered 24/7.

This is the fan that make so much noise:

02_internal1a

We need a solution to reduce the racket:

  • Reduce the RPM? No, someone told me that there won’t be enough air intake to cool down the heat sinks: those can be very hot!
  • Find another fan, same sizes but more quiet? I’ve could buy one, but we have plenty:

04_ventolame

  • Remove the original fan and apply some new tech :P
03_internal2
Fan, go home. You’re noisy.

 

05_twinfan
Old twin fans, I choose you!

 

06_concept1
This would be a nice mod

The old fan power source is about 5V, but I’ve chosen to not care much as long as the new fans move air.
Pros already love me!

Let’s begin with some tough work.

1. New holes on top

07_hardwork1

08_hardwork2
Metal is hard!

09_hardwork3

10_hardwork4
Done!

 

2. Mounting new fans and cabling

11_cables1

12_cables2

13_cables3

 

3. Results:

14_final1
Farewell nice logo!

15_final2

16_remains

 

Posted in General

Fooling rbash

Posted on 10/03/2016 by cretox
$ echo $SHELL
/bin/rbash
$ /bin/ls
/bin/bash: line 2: /bin/ls: restricted: cannot specify `/' in command names
$ awk 'BEGIN{system("/bin/bash")}'
$ /bin/ls
foo bar misc
$ uname -rm
2.6.18-308.16.1.el5 i686
$ bash --version
GNU bash, version 3.2.25(1)-release (i386-redhat-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.
$ awk --version
GNU Awk 3.1.5
Copyright (C) 1989, 1991-2005 Free Software Foundation.
$ exit
$ 

Posted in General

Emberjs on Debian

Posted on 01/01/2015 by cretox

First, install nodejs and npm from repository.
Then:

sudo update-alternatives --install /usr/bin/node nodejs /usr/bin/nodejs 100
mkdir -p ~/.new-dir
npm config set prefix /path/to/.new-dir
npm install -g ember-cli
PATH="$PATH:/path/to/.new-dir/bin"

Export PATH variable in your bashrc to avoid retyping.
Test with:

ember -v

Posted in General

Stop piping like a Hippo

Posted on 11/11/2014 by cretox

Oooooh:

$ cat list | grep some | awk '{print $1}'

Oh my god, 3 processes, we’re all gonna get a SIGKILL!
Then:

grep 'some' list | awk '{print $1}'

What? Not yet..

awk '/some/{print $1}' list

\é/

And I count my lines with:

grep -c 'some' list

instead of wced-greped-cated

Posted in General

A deeper `ls -l’

Posted on 05/11/2014 - 11/11/2014 by cretox

How nice:

$ alias dls='tree -phugsCD --du'

Add ‘-f’ for more fun!

(Other useful options: ‘-a’, ‘-x’, ‘-L <level>’, ‘- -sort=size’)

Posted in General

E’ stato morto un ragazzo

Posted on 27/09/2011 - 27/09/2011 by cretox

Clicca sul volantino per vedere meglio.

Posted in General

Impasto per pizza semplice

Posted on 21/09/2008 by cretox

Ingredienti

  • 500 g di farina tipo 0
  • 1/3 di litro d’acqua tiepida, tra i 30° e i 40° C
  • un cucchiaio d’olio ex.v. d’oliva
  • 10 g di sale fino
  • 20-25 g di lievito fresco o 10 g di lievito secco

Procedimento

Disporre la farina a fontana o in un recipiente di dimensioni adatte (se la farina che si intende usare è davvero tanta, procurarsi un recipiente almeno il doppio del volume della farina).
Mettere l’acqua e il lievito in un piccolo contenitore e mescolare bene.
Aggiungere tutta l’acqua nel mezzo della fontana e mescolare fino a formare una pappetta al centro. A questo punto aggiungere l’olio e, dopo un po’, il sale.
Continuare a mescolare fino a incorporare tutta la farina della fontana.
A questo punto non resta che trasferire l’impasto su un piano pulito e solido e impastarlo energicamente, fino a renderlo liscio, omogeneo e asciutto: non deve appiccicarsi alle dita o al piano, quindi se serve aggiungete farina.
La creazione dell’impasto, dall’inizio alla fine, non deve durare meno di 10 minuti e non più di mezz’ora.
Lasciar riposare l’impasto coperto da un panno umido per almeno 1 ora (max 2 ore). Se cresce fino a diventare il doppio è ottimo.
Tagliare l’impasto e stenderlo a seconda dell’uso che se ne vuole fare. Ad esempio, una pizza :)

Nota

Alcune ricette prevedono l’uso di latte, acqua frizzante, mix di farine diverse, zucchero, capitinello, bestemmie, frustambecchi, gracella, zipicurri, preghiere, ghigeronzo, salimbella, cocifrego, quertalino, bustilo, dredianacea, chi ne ha, più ne metta.
Francamente, mi sembra esagerato.

Posted in General

Cioccolata in tazza

Posted on 29/02/2008 by cretox

Ingredienti (una persona)

  • un cucchiaio di fecola
  • un cucchiaio di zucchero
  • un cucchiaio di cacao amaro in polvere
  • una tazza di latte intero
  • un bastoncino di cannella

Procedimento

Prendete un pentolino di rame o un pentolino antiaderente e metteteci la fecola, il cacao e lo zucchero. Mescolate e rompete tutti i grumi di cacao e di fecola. Passate con un colino se è necessario.
Aggiungete due o tre cucchiai di latte e mescolate bene fino al completo assorbimento degli ingredienti: si deve formare una cremina omogenea.
Mettete il pentolino sul fuoco moderato e aggiungete il resto del latte abbastanza velocemente e la cannella (senza romperla). Munitevi di cucchiaio o spatola di legno e cominciate a mescolare. Ininterrottamente.
Dopo circa dieci minuti la cioccolata comincierà ad addensarsi. Togliete dal fuoco il tutto, appena vi sembra pronta e togliete il bastoncino di cannella.
Versate in tazza e gustate!

:d

Note

· Più fecola, più densa.
· Più ingredienti, più cioccolata!

Posted in General

Biscotti facili

Posted on 22/02/2008 by cretox

Ingredienti

  • 300 gr di farina di grano tenero tipo “00” (o anche “0” se proprio proprio, fa lo stesso)
  • 2 uova
  • 100 gr di burro
  • 120 gr di zucchero
  • mezza bustina di lievito (opzionale)
  • spezie: cannella, menta, ecc… (opzionali)
  • frutta secca, cioccolata, canditi, ecc… (opzionali)

Procedimento

In un piatto o una terrina, mescolare a fondo il burro con lo zucchero, ottenendo un composto abbastanza fine. Aggiungere le due uova e amalgamare il tutto. A questo punto, molto velocemente aggiungere la farina (eventualmente mischiata al lievito e alle spezie) mescolando con le mani, muovendo le dita dal basso verso l’alto, delicatamente, favorendo la formazione di piccole palline di impasto (frollini). Raggiunto queso obiettivo, mescolare un poco più energicamente e amalgamare il tutto.
Ottenuta la pasta frolla, è adesso possibile aggiungere gli ingredienti aggiuntivi che preferiamo. Facciamo riposare l’impasto per un po’ di tempo (15 min?).
Accendiamo il forno a 150°C.
Tagliamo e modelliamo i biscotti a nostro piacimento e disponiamoli su una teglia con della carta forno. Inforniamo per circa mezz’ora (il tempo dipende dalla pezzatura).

:d

Note

· Più burro si mette meno i biscotti reggeranno la forma in forno durante la cottura.
· Con il lievito si ottengono biscotti più soffici e meno secchi.
· È possibile sostituire la farina e il lievito con della farina autolievitante (self-raising flour), in Italia non l’ho vista, in Uk sì.
· È possibile ricoprire i biscotti cotti con della cioccolata (bianca o nera) sciolta in un pentolino (senza burro eh) oppure con dello zucchero o del cacao in polvere.

Posted in General4 Comments

Posts navigation

Older posts


Supporta:

Questo weblog esiste ed è visibile sulla rete grazie al Collettivo Autistici/Inventati che offre il servizio e mette a disposizione i mezzi (banda e macchine). Il progetto ha costi notevoli ma vive solo delle donazioni: nessun amministratorə verrà mai a casa tua a chiederti il canone.
Se vuoi che questo blog e la miriade di altri servizi offerti da A/I continuino ad esistere, sarebbe molto carino se impegnassi qualche euro in questo senso. Per fare una donazione, visita questa pagina.


Follow this blog on:

Follow this blog
Proudly powered by WordPress | Theme: micro, developed by DevriX.