Come configurare Monit con Domoticz

sudo nano /etc/monit/conf.d/domoticz

Copiate e incollate:

check process domoticz with pidfile /var/run/domoticz.pid
start program = "/etc/init.d/domoticz.sh start"
stop  program = "/etc/init.d/domoticz.sh stop"
if failed
url http://127.0.0.1:8080/json.htm?type=command&param=getversion
and content = '"status" : "OK"'
for 2 cycles
then restart
if 5 restarts within 5 cycles then exec "/sbin/reboot"

E poi riavviate Monit con:

sudo monit reload

Come configurare Monit con Plex

sudo nano /etc/monit/conf.d/plex

Incollate questo (modificando le porte nel caso vi servissero, ma la 32400 dovrebbe andar bene):

check process Plex with pidfile "/var/lib/plexmediaserver/Library/Application\ Support/Plex\ Media\ Server/plexmediaserver.pid"
    start program = "/usr/sbin/service plexmediaserver start" with timeout 60 seconds
    stop program  = "/usr/sbin/service plexmediaserver stop"
    if failed host 127.0.0.1 port 32400 with timeout 30 seconds for 5 cycles then restart
    #if failed port 32401 with timeout 30 seconds for 5 cycles then restart
    #if failed port 32469 with timeout 30 seconds for 5 cycles then restart
    #if failed port 1909 with timeout 30 seconds for 5 cycles then restart
    #if failed url http://127.0.0.1:32400/web/index.html with timeout 30 seconds for 5 cycles then restart

E poi riavviate Monit con:

sudo monit reload

Come configurare Monit con Transmission

sudo /etc/monit/conf.d/transmission

Copiate e incollate:

check process Transmission matching "transmission-daemon"
    start program = "/etc/init.d/transmission-daemon start"
    stop program  = "/etc/init.d/transmission-daemon stop"
    if failed host 127.0.0.1 port 9091 type TCP for 2 cycles then restart
    if 2 restarts within 3 cycles then unmonitor

E poi riavviate Monit con:

sudo monit reload

Come configurare Monit con Samba

Se avete precedentemente installato Monit e avete capito le sue infinite possibilità e volete monitorare il vostro server SMB, ecco come configurarlo perché controlli e nel caso riavvii Samba:

sudo nano /etc/monit/conf.d/smbmonitor

E incollate:

check process Samba with pidfile "/var/run/samba/smbd.pid"
start program = "/etc/init.d/smbd start"
stop program = "/etc/init.d/smbd stop"
if failed host 127.0.0.1 port 139 type tcp for 2 cycles then restart
if 2 restarts within 3 cycles then unmonitor

Poi riavviate Monit con sudo monit reload e andate da browser alla porta 2812 (nel caso non l’abbiate cambiata).

Come gestire cartelle con apostrofi

Nel caso la vostra cartella abbia un apostrofo, il terminale bash (o quello che sia) potrebbe riscontrarvi qualche errore.

Mettete tutto tra parentesi, ad esempio: cd '/cartella(con)/anche/parentesi' per entrare dentro quella cartella.

Come provare a difendersi da un attacco DDoS

Parto con un po’ di presupposti perché ovviamente l’argomento è molto vasto e non sarebbe affrontabile in un semplice articolo. I comandi che andrò ad elencarvi dipendono ovviamente da cosa state subendo e sopratutto se avete accesso al vostro server. Ma tenendo conto che avete accesso ma semplicemente siete inondati di richieste, di traffico flood o altre prove di connessioni, richieste di login o comunque qualcosa sulle porte o sulle connessioni, ecco quanto.

Per visualizzare le connessioni in ingresso:

sudo netstat -plan|grep :80|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -nk 1

Nel caso avete https e la porta 443:

sudo netstat -plan|grep :443|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -nk 1

Visualizzare l’elenco completo dell’iptables:

sudo iptables -L --line-numbers

Se volete cancellare ad esempio la seconda regola fate così:

sudo iptables -D INPUT 2

Oppure se volete impostare un limite alle richieste:

sudo iptables -A INPUT -p tcp --syn -m limit --limit 5/s --limit-burst 10 -j DROP

Nel caso anche questo:

sudo iptables -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST SYN -m limit --limit 1/s -j DROP

Mentre se in tutto questo avete notato che c’è qualche IP che vi fa migliaia di richieste, ecco come impedirglielo:

iptables -A INPUT -s 8.8.8.8 -j DROP

Le regole nell’iptables vengono a ogni riavvio resettate, quindi se volete salvarle dovete specificarlo.

Come installare nginx su Raspberry Pi

Prima di tutto dovete fare una cosa importantissima, rimuovete Apache:

sudo apt-get remove apache2

Ora che l’avete rimosso e potete iniziare a divertirvi seriamente, installate nginx:

sudo apt-get install nginx

Finito. Ecco sì, finito! Avrà già configurato la cartella che usavate in precedenza e tutto quanto dovrebbe funzionarvi alla perfezione (ovviamente meglio di prima).

Nel caso, configurate quel che vi manca da qua:

sudo nano /etc/nginx/sites-available/default

Posso garantirvi personalmente, che non sentirete la mancanza. E anzi, vi domanderete perché non l’avete fatto prima!

Come disabilitare IPv6 su Avahi

Come è ben noto IPv6 non è implementato praticamente da nessuna parte (ancora) e nelle reti pubbliche viene impacchettato nella versione 4.

Spesso da più problemi che altro… quindi, perché non disattivarlo?

sudo nano /etc/avahi/avahi-daemon.conf

E alla riga use-ipv6=yes mettete un bel no.

Per gli altri parametri: http://manpages.ubuntu.com/manpages/zesty/man5/avahi-daemon.conf.5.html

Come gestire Homebridge con systemd

Se volete gestire Homebridge come servizio e far si che a ogni riavvio venga gestito direttamente dal sistema operativo, senza il supporto di screen come vi avevo fatto vedere qua, seguite questa semplice guida!

Prima di tutto trovate il percorso di Homebridge con:

which homebridge

Poi modificate sudo nano /etc/default/homebridge e incollate:

# Defaults / Configuration options for homebridge
# The following settings tells homebridge where to find the config.json file and where to persist the data (i.e. pairing and others)
HOMEBRIDGE_OPTS=-U /var/homebridge

# If you uncomment the following line, homebridge will log more 
# You can display this via systemd's journalctl: journalctl -f -u homebridge
# DEBUG=*

Poi sudo nano /etc/systemd/system/homebridge.service e incollate (cambiando ad ExecStart il percorso che avete trovato precedentemente con il which:

[Unit]
Description=Node.js HomeKit Server 
After=syslog.target network-online.target

[Service]
Type=simple
User=homebridge
EnvironmentFile=/etc/default/homebridge
ExecStart=/usr/local/bin/homebridge $HOMEBRIDGE_OPTS
Restart=on-failure
RestartSec=10
KillMode=process

[Install]
WantedBy=multi-user.target

Ora create un utente: sudo useradd --system homebridge, create le cartelle con i permessi giusti e abilitate il servizio:

sudo mkdir /var/homebridge
sudo cp ~/.homebridge/config.json /var/homebridge/
sudo cp -r ~/.homebridge/persist /var/homebridge
sudo chmod -R 0777 /var/homebridge
sudo systemctl daemon-reload
sudo systemctl enable homebridge
sudo service homebridge start

E controllate se funziona con: sudo service homebridge status.

Fonte: https://timleland.com/setup-homebridge-to-start-on-bootup/

Come montare automaticamente un server FTP in una cartella

Se volete montare un server FTP e che sia accessibile come un normale drive in una cartella da voi prefissata, installate curlftpfs:

sudo apt-get install curlftpfs

Create la cartella (potete anche metterla in /media volendo), ad esempio (modificando user):

sudo mkdir /home/movies
sudo chmod 775 /home/movies
sudo chown -R user:user /home/movies

Aggiungete al fondo di questo file:

sudo nano /etc/fstab

Modificando user, password e indirizzo IP:

curlftpfs#user:password@192.168.1.1 /home/movies fuse rw,uid=1000,gid=1000,umask=002,user,suid,allow_other,exec,auto,utf8,_netdev  0   0

Se volete tutti i permessi mettete umask=000.

Come creare un server per la Time Machine con Ubuntu

Io vi consiglio Ubuntu Server 17.04 e durante l’installazione mettete la spunta a LAMP server, Samba file server e OpenSSH server.

Fate gli aggiornamenti e installate:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install netatalk libc6-dev avahi-daemon libnss-mdns

Se usate un hard disk esterno create la cartella e montatelo:

sudo mkdir /media/usb
sudo mount -t hfsplus -o force,rw /dev/sdb /media/usb

Cambiate i permessi e l’utente (presupponendo che il vostro username sia xserve):

sudo chmod -R 775 /media/usb
sudo chown -R xserve:xserve /media/usb

Ora andiamo a configurarlo:

sudo nano /etc/netatalk/AppleVolumes.default

E al fondo alla penultima riga cambiatela con:

/media/usb "Xserve" options:tm allow:xserve

Poi inserite questo per vedere l’icona dei famosi Xserve:

sudo nano /etc/avahi/services/afpd.service

E incollate:

<?xml version="1.0" standalone="no"?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">%h</name>
<service>
<type>_device-info._tcp</type>
<port>0</port>
<txt-record>model=Xserve</txt-record>
</service>
</service-group>

Riavviate tutto con:

sudo service avahi-daemon restart
sudo service netatalk restart

Ora connettetevi da macOS (qualunque esso sia), dalle impostazioni selezionate il disco Xserve e il gioco è fatto, potete utilizzarlo come Time Machine facilmente!

Ovviamente il vostro server Ubuntu non deve per forza essere fisico e sempre acceso. Potete benissimo usare una macchina virtuale o un semplice Raspberry Pi.

Come creare una Time Capsule con Raspberry Pi

Se non volete spendere più di 300 euro per una Time Capsule della Apple e volete realizzare la vostra Time Machine personale, seguite questi semplici passaggi (vi consiglio di partire da una versione di Raspbian nuova e pulita):

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install netatalk libc6-dev avahi-daemon libnss-mdns

Ora aprite questo file:

sudo nano /etc/netatalk/AppleVolumes.default

E al fondo cambiate questa riga (potete anche cambiare percorso nel caso abbiate un hard disk attaccato o una pendrive) con:

/home/pi "Time Capsule" options:tm allow:pi

Ora modificate questo file:

sudo nano /etc/avahi/services/afpd.service

Cancellate tutto e incollate:

<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">Time Capsule</name>
<service>
<type>_afpovertcp._tcp</type>
<port>548</port>
</service>
<service>
<type>_device-info._tcp</type>
<port>0</port>
<txt-record>model=TimeCapsule8,119</txt-record>
</service>
</service-group>

Riavviate i servizi e via:

sudo service avahi-daemon restart
sudo service netatalk restart

E… voilà. Davvero! Già finito. Aprite il Finder su macOS e lo vedrete già a lato (Avahi avrà mandato in broadcast dei pacchetti di benvenuto). Ora potete andare sulle impostazioni e configurare il vostro backup!

Come fare uno speedtest alla microSD del Raspberry Pi

Per testare la velocità di scrittura eseguite:

sync; dd if=/dev/zero of=~/test.tmp bs=500K count=1024

Per la lettura:

sync; echo 3 | sudo tee /proc/sys/vm/drop_caches
sync; time dd if=~/test.tmp of=/dev/null bs=500K count=1024

Poi ovviamente cancellate il file temporaneo che ha usato per farlo. Quanto raggiungete voi? 22 MB/s dovrebbe essere una buona media visto il bus condiviso.

Come montare un hard disk EXT4

Ovviamente se utilizzate una distro nuova, vi consiglio di optare per l’ultima versione (anche se la 3 è ancora molto usata) per il vostro file system. Iniziamo! Copiate l’UUID del vostro drive che trovate con:

sudo blkid

Incollatelo al fondo di sudo nano /etc/fstab questo file, così:

UUID=0123456789abc /media/pendrive ext4 defaults 0 2

Poi eseguite:

sudo mount -a

E voilà, anche a ogni riavvio verrà automaticamente montato!