Vai al contenuto

Mi è capitato che la macchina virtuale VMware Workstation Ubuntu (che gira su host Windows) si bloccasse frequentemente. Questo succedeva parecchi mesi fa e, a ben vedere, non sono riuscito a capire realmente il motivo ma ho comunque un paio di indicazioni da segnalare che mi hanno aiutato ad evitare quasi completamente che ricapitasse.

Il problema era che la VM si bloccava non rispondendo più a mouse e tastiera ma, quasi sempre, era raggiungibile via ssh quindi sembrava essere qualche cosa legata all'interfaccia grafica. Riavviare da shell era l'unica soluzione pratica e veloce.

Il primo spiraglio di luce è arrivato con una nuova release di VMware Workstation (poi ne è uscita anche un altra) che ha ridotto la frequenza del problema.

Nel mentre ho tentato di tutto compreso la modifica di alcuni settaggi della VM relativi alla tastiera ma evito di segnalarli perché non sono stati di aiuto e li ho riportati come erano prima.

L'unico workaround realmente efficace è stato quello di disabilitare lo share delle cartelle da host a VM: capisco che possa servire averlo e, ogni tanto mi serve, ma lo abilito all'occorrenza impostandolo con la modalità di disabilitazione automatica allo spegnimento/sospensione.

Da quando ho adottato questa accortezza non si è quasi mai più bloccata. Le poche volte che è capitato ho notato che, più che bloccata come era prima, sembrava solo estremamente rallentata il che permetteva di chiudere qualche programma e, contemporaneamente, di chiuderne anche sull'host per "alleggerire" il carico. Dopo parecchi minuti (anche un ora) si riesce nuovamente ad avere la VM che risponde normalmente. Potrebbe anche essere che questo comportamento, visto che è diverso dal precedente, sia un altro tipo di problema.

Ho aspettato parecchio prima di pubblicare queste indicazioni perché ho sempre sperato di trovare una soluzione vera e non un workaround che risolve ma non realmente del tutto. Dato che non ne sono venuto a capo, alla fine, mi sono deciso: meglio qualcosa piuttosto che niente no?

Il sistema di monitoraggio dischi S.M.A.R.T. (Self-Monitoring, Analysis, and Reporting Technology) si applica sia ai vecchi dischi a piatti rotanti che hai nuovi dischi allo stato solido e serve per avere una serie di informazioni sullo stato di salute dei dischi utili a prevederne futuri guasti.

Non si tratta di un sistema recente quindi ci si aspetta che funzioni anche su dischi datati quindi quando mi sono trovato un messaggio che dice che il mio vecchio ASUS Eee PC 900 ha i dischi (SSD tra l'altro) che non supportano SMART sono rimasto perplesso e, difatti, non è vero. Lo supportano.

Per monitorare i parametri SMART si usa smartmontools

apt install smartmontools

Se, come è capitato a me, il tool dice che SMART non è supportato

# smartctl -a /dev/sda1

Device Model: ASUS-PHISON OB SSD
Serial Number: xxxxxxxxxxxxxxx
Firmware Version: TST2.04P
User Capacity: 4,034,838,528 bytes [4.03 GB]
Sector Size: 512 bytes logical/physical
Device is: Not in smartctl database 7.3/5319
ATA Version is: ATA/ATAPI-5 (minor revision not indicated)
SMART support is: Unavailable - device lacks SMART capability.

Bisogna abilitarlo forzandolo

# smartctl -T permissive -s on /dev/sdb1

Il tool smartmontools installa anche un servizio: smartmontools.service che ha bisogno di un piccolo settaggio altrimenti di suo non riesce a capire che in realtà SMART è abilitato e fallisce. Bisogna editare il file di configurazione /etc/smartd.conf e commentare la riga del DEVICESCAN per impedire che cerchi autonomamente i dischi e bisogna aggiungere in coda i device che si vogliono monitorare aggiungendoci la direttiva permissive

/dev/sdb -T permissive
/dev/sda -T permissive

Nel mio caso sono i due sopra. A questo punto basta riavviare il servizio

systemctl restart smartmontools.service

ed è fatta. Ora, per esempio, il file /var/lib/smartmontools/smartd.ASUS_PHISON_SSD-SOQ1482230.ata.state contiene tutte le info SMART. Se le volete in forma più leggibile da un umano potete usare questo comando

smartctl -T permissive -a /dev/sdb1

Capita di dover aprire un tunnel socks5 ma se poi questo tunnel deve restare aperto per ore e magari resistere a vari eventi avversi non basta il semplice comando ssh

ssh -ND 8080 root@192.168.1.1

perché se il server destinazione (il 192.168.1.1) ad esempio viene riavviato il tunnel cade. Per ovviare a questo ed altri inconvenienti basta un breve script che si occupa di verificare che il tunnel sia aperto e, in caso contrario, che lo apra e che faccia tutto questo all'infinito. Quantomeno fino a quando non lo blocchiamo a mano noi.

Questo è lo script bash

#!/bin/bash
# Script che apre e tiene aperto un tunnel socks5
# porta utente e ip o dns sono hardcoded ma volendo potrebbero essere messi come parametri

# Ciclo while infinito
while true
do
# Il comando if verifica l exit code del comando che sta cercando qualcosa in LISTEN sulla porta 8080 che è il mio tunnel 
  if netstat -an | grep 8080 | grep -q LISTEN 
  then
# Se lo ha trovato allora entra qui e attende 1 secodo poi salta il ramo else e ricomincia il coclo infinito
    sleep 1
  else
# Se non lo trova allora entra qui e il comando sotto crea in background il tunnel e poi aspetta 2 secondi poi continua il ciclo infinito
    nohup ssh -ND 8080 root@192.168.1.1 > /dev/null 2>&1 &
    sleep 2
  fi
done

Da alcuni giorni è disponibile la release upgrade di Ubuntu dalla vecchia versione LTS 20.04 alla nuova LTS 22.04 Jammy Jellyfish.

Segno qui alcuni appunti pre e post upgrade che potrebbero tornare utili ad altri.

La nuova release LTS occupa più spazio quindi già normalmente bisogna ricordarsi di avere sufficiente spazio libero nei vari filesystem ma, in questo caso, ancora di più: ad esempio il nuovo kernel 5.15 è ben più grande del vecchio 5.4 quindi occhio al fs /boot, anche in /opt serve spazio e ovviamente in / ne serve parecchio perché i pacchetti per l'upgrade vengono scaricati proprio nel fs radice.

Se siete a corto di spazio disco considerate, prima di iniziare l'upgrade, di disinstallare tutti i vecchi kernel (ovviamente il corrente lo dovete lasciare) e di disinstallare alcuni software che potrete reinstallare in seguito come ad esempio libreoffice o gimp.

Probabilmente per colpa di un bug potreste trovarvi ad avere le manpage vuote e con un errore quando uscite. Io ho risolto installando (o reinstallando se già lo avevate) groff con un apt install --reinstall groff-base

Se usate syncthing c'è un warning sull'uso del portachiavi che costa poca fatica sistemare (si tratta di un uso deprecato quindi in futuro darà errore; meglio prevenire) con un wget -O /etc/apt/trusted.gpg.d/syncthing.asc https://syncthing.net/release-key.txt

Se usate ecryptfs e avete parzialmente scriptato il mount ora vi chiederà il tipo di chiave perché prima era solo passphrase: basterà aggiungere nei parametri del mount nello script un key=passphrase

Come sempre ricordatevi di riattivare le sorgenti software aggiuntive che avevate in uso perché durante l'upgrade ve le disabilita.

Se avete trovato altre soluzioni a piccoli difetti durante l'upgrade scrivetemeli nei commenti che li aggiungo.

Se state lavorando in Linux su un applicazione che ha molti file di configurazione torna utile poter fare delle modifiche in blocco a tutti questi file, in particolare sostituire tutte le occorrenze di una stringa in tutti file con una stringa sostitutiva.

Si può fare usando find per localizzare tutti i file di configurazione e sed per effettuare le sostituzioni il tutto in una "semplice" e singola riga di comando.

find /dove/sono/i/file/ -type f -name "*.cfg" -print0 | xargs -0 sed -i 's/StringaAttuale/StringaSostitutiva/g'

Mini spiegazione

/dove/sono/i/file/ è il punto a partire dal quale ci sono i file di configurazione e find va a cercare anche nelle sotto cartelle

I file di configurazione terminano tutti con .cfg

StringaAttuale e StringaSostitutiva si spiegano da soli e sappiate che se volete eliminare la StringaAttuale basta non mettere nulla al posto di StringaSostitutiva e che StringaAttuale può anche essere una regular expression.

Quello che vedete sopra è il grafico del monitoraggio della temperatura della scheda madre di un pc portatile (adibito a "server" casalingo) prima, durante e dopo l'upgrade dalla versione Stretch di Debian alla versione Buster.

Si tratta di circa 5 gradi in meno e, per un vecchio portatile (che era rimasto spento alcuni anni), avere una motherboard più fresca è un ottimo sistema per farlo durare ancora alcuni anni.

Ricordatevi di tenere aggiornate le vostre macchine GNU/Linux based: tra i vari vantaggi potreste anche aggiungere, come è capitato a me, una migliorata efficienza energetica.

Se già usate fail2ban per proteggere l'accesso ssh e avete anche un web server Apache installato è una buona idea aggiungere alcuni protezioni che fail2ban è in grado di offrire per apache.

Ci sono già diversi moduli pronti che possono essere attivati con poco sforzo. Basta aggiungere un file .conf in /etc/fail2ban/jail.d con la parte di configurazione che modifica quella standard. Per esempio per aggiungere la protezione all'autenticazione di Apache il codice è

[apache-auth]

enabled = true
port = http,https
logpath = /var/log/apache2/error.log
maxretry = 3
findtime = 600

Ci sono anche altri moduli interessanti: apache-overflows apache-badbots php-url-fopen: qui trovate qualche dettaglio in più oppure direttamente sul wiki di fail2ban.

Se avete l'esigenza di esporre un servizio web di casa vostra e volete farlo in maniera sicura gestendo voi direttamente il tutto per avere il massimo controllo una soluzione è il reverse proxy con autenticazione.

Per fare un esempio potreste voler pubblicare in internet una ip cam di sorveglianza che guarda l'esterno di casa. Il modo più facile è di impostare una regola sul vostro router per aprire la porta della videocamera ma questo presenta almeno un paio di problematiche che portano a sconsigliarlo. La più ovvia è che la videocamera potrebbe non avere l'impostazione per proteggerla con password e non è bello che chiunque possa guardare fuori da casa vostra. Una seconda considerazione è sul grado di sicurezza della vostra ip cam: potrebbe avere dei bug che permettono ad un malintenzionato di prenderne il controllo o, anche se non ne avesse, in futuro potrebbero saltarne fuori e il produttore quasi certamente non pubblicherà un aggiornamento per tappare la falla.

La soluzione reverse proxy con autenticazione è indubbiamente più complessa ma permette di avere il pieno controllo della parte che si pubblica in internet e di poter quindi tenere aggiornati tutti i componenti alle ultime versioni: un sistema correttamente configurato e mantenuto aggiornato è una buona garanzia di sicurezza.

Cosa serve per realizzarlo? Prima indico un breve elenco di oggetti che servono e poi qualche dettaglio sulle configurazioni.

Elenco:

  • Un ip pubblico (niente NAT/Carrier Grade NAT altrimenti non siete raggiungibili dall'esterno)
  • Un router che possa tenere aggiornato un dns dinamico con il vostro ip (o un ip pubblico statico)
  • Un server sempre acceso da adibire a reverse proxy

Per accedere in maniera sicura bisogna esporre il servizio in HTTPS quindi usiamo Let's Encrypt per avere un certificato gratuito per il dns che abbiamo impostato nel nostro router.

Se utilizzare una Debian con Apache come web server allora dovete abilitare i vari moduli proxy e un idea di settaggi del reverse proxy potrebbe essere:

<VirtualHost *:443>
          SSLEngine on
          SSLCertificateFile /etc/letsencrypt/live/tuo.dominio.it/fullchain.pem
          SSLCertificateKeyFile /etc/letsencrypt/live/tuo.dominio.it/privkey.pem
          ServerAdmin tuaemail@example.it
          ServerName tuo.dominio.it
          ProxyPass / http://192.168.1.100/
          ProxyPassReverse / http://192.168.1.100/
          <Proxy *>
                    AuthType Basic
                    AuthName "Restricted Access"
                    AuthUserFile "/cartella/dove/metti/il/file/passwordapache"
                    Require user nomeutente
          </Proxy>
          </VirtualHost>
<VirtualHost *:80>
          ServerName tuo.dominio.it
          Redirect permanent / https://tuo.dominio.it/
</VirtualHost>

Come vedete ho messo un rediret permenent per HTTP (porta 80) in modo che se anche cerchi di accedere senza l'HTTPS vieni rediretto sul sito sicuro. Nella sezione sopra, quella HTTPS (porta 443), ho indicato le posizioni dei certificati, l'ip interno del web server da esporre (da notare che può essere anche solo HTTP ma verso l'esterno viene fatto transitare HTTPS), come AuthName non mettete nulla di personale perché è visibile a chiunque prima dell'autenticazione e poi c'è il file dove salverete utente e password.

Fatto in questo modo potete accedere da internet al vostro servizio web semplicemente con https://tuo.dominio.it/ vi apparirà la richiesta di nome utente e password e tutto quanto transiterà in maniera cifrata.

Durante un upgrade da Debian 8 a Debian 9 potrebbe capitarvi che il server non torni raggiungibile.

Se avete un accesso diretto (tastiera e monitor oppure una console di un server virtuale) usatelo e verificate che sia tutto a posto lato network.

Con un networkctl ottenete la lista delle interfacce di rete e poi verificate che nel file /etc/network/interfaces il nome sia lo stesso: se non lo fosse allora sistematelo e riavviate il network con un systemctl restart networking.service.

Già che ci siete verificate anche che il servizio di rete sia abilitato allo startup controllando cosa dice un systemctl status networking.service perché potrebbe essere disabled.

4

Se vi è capitato, come a me, che dopo l'aggiornamento del pacchetto LibreOffice vi spariscono le icone e rimangono solo le scritte descrittive dei pulsanti, sappiate che io ho risolto installando il pacchetto libreoffice-style-galaxy che è quello che contiene lo stile dei simboli di default.

sudo apt-get install libreoffice-style-galaxy

Non ho idea del perché quel pacchetto prima non ci fosse e non mi spiego come facesse a funzionare ma mi è parso logico installarlo visto che nella descrizione lo cita come di default e non era installato.

Per chi non lo sapesse LibreOffice è una suite di produttività libera, open source e multi piattaforma (Windows, Linux e Mac) che legge, crea e modifica praticamente tutti i formati più usati di fogli di testo e di calcolo (perdonatemi il breve riassunto: so che è molto di più).

2

Sto provando Memopal: un sistema di bakup online molto interessante.

Memopal

Si tratta di un applicazione che si occupa di tenere costantemente aggiornato un backup dei vostri dati.

Detta così sembra una cosa da poco; in realtà fa molto di più.

I dati li tiene costantemente aggiornati ma puoi sempre recuperare sia quello che hai cancellato (accidentalmente) che anche una versione precedente di un file che hai modificato.

Potrei produrmi in un esauriente elenco, scrivendo magari anche che non è un applicativo che va solo su Windows ma anche su Mac, GNU/Linux e può anche essere usato su alcuni smartphone, ma non mi dilungherò.

Il motivo per il quale ve lo segnalo che sono stati gli amici di DiRete a farmelo scoprire. se lo acquistate da loro avrete una marcia in più: vi forniranno aiuto per installarlo e settarlo al meglio e vi coccoleranno come sono soliti fare con i loro clienti 😉

4

Trasloco?Ho spostato la cartella HOME di Ubuntu sul mio EEEPC: in pratica ho cambiato casa 🙂

Visto l'evento ho scritto una mini guida: Spostare la cartella HOME di Ubuntu sull’EEEPC.

Se ve lo domandate è lecito: scrivo poco e le poche volte che lo faccio è pure su altri blog. Che ci volete fare, è un periodo che va così 😉

(Foto di Mackley su Flickr)

P.S. Ho fatto un po' di casino e questo post è finito pubblicato insieme all'altro su BrianzalandBlog: l'ho brutalmente cancellato di la e brillantemente ripubblicato di qua 😛

5

AsteriskNOWVi propongo una recensione negativa di AsteriskNOW: non me ne vogliano gli sviluppatori ma questa è la mia personale esperienza.

AsteriskNOW è un pacchetto completo basato su Asterisk e dotato di un interfaccia via web per i settaggi.

Si scarica l'immagine del cd che, una volta masterizzato, permette facilmente di installarlo su un computer facendo boot dal cd.

Fino a qui tutto bene, anzi, bene anche nei passaggi successivi che sono i settaggi per rendere operativo il centralino.

I problemi sorgono quando comincio a combinare porcherire con le impostazioni (è il mio hobby: toglietemi tutto ma non i miei smanettamenti) e il risultato è che inizia a non funzionare più come dovrebbe.

So di essere colpevole di maltrattamento di centralino VoIP ma non è un buon motivo per dover dare un voto positivo ad un prodotto: se l'interfaccia web di gestione fosse realmente ben fatta mi aspetterei che non mi permettesse di combinare disastri e, soprattutto, nel caso succedessero che mi permettesse di risolverli.

Ovviamente alla base c'è Asterisk e quindi potrei lavorare sui file di configurazione a mano ma che senso avrebbe aver optato per una facile interfaccia web se poi mi tocca lavorare a linea di comando?

Risultato? Ora vedrò di mettere a dura prova Elastix (che, per ora, mi ha già fatto arrabbiare) e poi, forse, vi dirò cosa ne è venuto fuori.

I miei ve li ho detti: voi che disastri combinate? 

16

EOLO di NGI è connettività di qualità portata con tecnologie senza fili (Hiperlan2) soprattutto nelle zone dove la banda larga è scarsa o assente.

Attualmente copre una fetta importante del nord Italia, principalmente la Lombardia, ma è in forte espansione e, in questa ottica, oggi sono andato a fare un tour alla ricerca di un buon posto per una BTS che copra bene la bassa Brianza.

Cosa ne dite di questo paesaggio (foto a 360 gradi)?

Panoramica a 360 gradi

Si tratta di un punto al confine tra Tregasio e Montesiro (Sud di Besana in Brianza) dove c'è un simpatico pilone con fungo bello colorato.

Le coordinte GPS sono Latitudine  45°41'4.69"N e Longitudine   9°17'13.05"

BTS con cartello Tregasio e retro con MontesiroQuesto è il fungo in questione, proprio al confine tra Tregasio e Montesiro come si vede dal cartello e dall'inserto che ho messo nella foto con il retro del cartello e sullo sfondo quello di Montesiro.

BTS Tregasio con casette alla baseE' già attualmente sede di antenne (telefonia) che sono attaccate sia in cima che appena sotto.

Anche in questa foto ho inserito un inserto con il particolare della cima con, ben in vista, antenne varie.

Alla base ci sono due casette.

Casette alla baseDue operatori telefonici ciascuno con la sua casetta? E' possibile visto che la quantità di pannelli installati è troppa per un solo operatore. Per quello che ne so io potrebbero anche essere più di due.

Porta di accesso al piloneFortunatamente alla base c'è una porticina che da accesso all'interno. Dentro presumo ci sia una scala per arrivare in cima: lo spero 🙂

Collinetta alla spalle da dove ho scattato la foto a 360 gradiLa foto panoramica a 360 gradi che vedete in cima l'ho scattata a pezzi posizionandomi sulla mini collinetta che c'è alle spalle del fungo e l'ho ricomposta con GIMP (lavorando con UBUNTU ovviamente). La collinetta si vede da questa foto ed è solo pochi metri più alta della base del fungo quindi il panorama non è quello che si vedrebbe dalla cima.

Già c'era un tizio che è rimasto da quelle parti per tutto il mio tour fotografico e chissà cosa avrà pensato, figuriamoci se mi fossi arrampicato in cima per fare la foto! In ogni caso non lo avrei fatto: non sono uno scassinatore ne, tanto meno, l'uomo ragno 😉

Ora veniamo al perché di tutto questo.

Il nord della Brianza è già discretamente coperto da ben 6 BTS più una in attivazione ma il sud è coperto male.

Una BTS in questa posizione coprirebbe bene delle piccole macchie che, nonostante le 6/7 BTS restano non coperte e, soprattutto, illuminerebbe bene tutta la bassa Brianza forte dei suoi 300 e rotti metri di altezza sul livello del mare.

Tutte queste foto le ho messe (a media risoluzione) in un set su Flickr. Tra le tante ne ho scattata una dove si legge, su un cartello sulla porta di una delle due casetta, un numero di telefono da contattare
 "per qualsiasi esigenza".

Forse lo sapete già ma sono da poco rivenditore EOLO quindi se vi servono soluzioni di connettività basate su EOLO o anche solo consulenza contattatemi 😉 

Saranno informazioni utili a NGI secondo voi?

P.S. nel caso qualsiasi pezzo di questo post o le foto servissero in NGI usatele liberamente in deroga alla mia usuale licenza di pubblicazione che non lo permetterebbe.

10

DD-WRTHo fatto un ponte radio WiFi e, siccome funziona bene, ho pensato di condividere i dettagli. Li trovate in questo post che ho scritto per DynamicK: Ponte radio WiFi per estendere la propria rete cablata.

Ovviamente non è andato tutto bene al primo colpo. Mi sono dimenticato di cambiare un IP su uno dei due router del ponte radio e vi lascio immaginare che casino è venuto fuori 🙂

Ho successivamente migliorato la ricezione con una coppia di parabole fatta in casa che ho visto su Napoli Wireless.

Il cuore di questo bel giocattolino è l'ottimo firmware DD-WRT.

Voi fate spesso ponti radio WiFi o più tipicamente fate i ponti con le festività per fare qualche gita? 

Ho appena letto questo articolo di Tommaso su una soluzione per rivoluzionare la TV sfruttando apparecchi Apple e poi ho letto questo articolo di Giorgio che avvisa di un interessante software che promette di trasformare un PC basato su Linux in un potente media center.

Io propendo per la soluzione Linux ma solo perché ho un fastidio quasi irrazionale nei confronti della mela 🙂

Ho letto qui che è stata annunciata la partenza della LiMo Foundation.

Quello che mi colpisce è la potenzialità insita in un progetto di questo tipo: dar modo a più persone possibili di contribuire alla creazione di una piattaforma comune sulla quale basare i cellulari significa trasferire tutti i benefici della comunità dei programmatori linux nei cellulari!

Il mio chiodo fisso è un cellulare robusto ma flessibile: non immaginatevi un mostro che si piega ma non si spezza eh? parlo di software robusto non dell'involucro!

Su questo cellulare ci deve girare un client VoIP che sia in grado di sfruttare la connessione internet più vantaggiosa. Non solo: appena arriva qualcosa di meglio (tipo WiMax prima e WiMax mobile dopo) deve riuscire a gestire anche le novità.

Secondo me questa fondazione aiuterà il mio sogno a realizzarsi!