Utilizzo di Rsync su DD-WRT

 

Utilizzo di Rsync su DD-WRT

Utilizzo di Rsync su DD-WRT

Dopo avere installato rsync sul mio router Asus RT-AC68U, utilizzando Entware. ho iniziato con il backup incrementale dei miei 3 Raspberry pi. L'utilizzo di rsync è quello standard, ma nella versione per ARM, ci sono delle piccole mancanze/differenze. Per ottenere un backup incrementale del mio centralino asterisk su Raspberry pi, ho usato:

# rsync -zzahlrvp -e 'ssh -p 2233' --progress --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/lost+found"} / ddwrt@192.168.1.1:/mnt/sdaX/cartella_backup

Utilizzo di Rsync su DD-WRT

enjoy πŸ˜‰

 

Scompattare centinaia di archivi rar con password con un solo comando

 

Scompattare centinaia di archivi rar con password con un solo comando

Scompattare centinaia di archivi rar con password con un solo comando

Mi sono trovato ad avere ben 650 archivi rar con password da scompattare, e non tutti si trovavano nella stessa cartella ma bensì in tante altre sottocartelle. In più tutti questi 650 archivi avevano 5 password differenti. Il mio obbiettivo era quindi di scompattarli tutti spostando i files scompattati in una differente cartella. Per ottenere questo risultato ho sperimentato 3 comandi:

Unrar ricorsivo:

$ unrar e -r -o- *.rar
$ for f in *.rar;do unrar e -r $f;done
$ find  -name '*.rar' -execdir unrar e -o- {} \;

Unrar ricorsivo con password:

$ unrar e -r -o- -p"password" *.rar
$ for f in *.rar;do unrar -ppassword e $f;done
$ find  -name '*.rar' -execdir unrar -ppassword e -o- {}

per spostare contemporaneamente i files estratti in una directory differente:

$ unrar e -r -o- -p"password" *.rar /percorso/destinazione

oppure:


$ find  -name '*.rar' -execdir unrar -ppassword e -o- {} /percorso/destinazione

 

enjoy πŸ˜‰

 

Trasferire cartelle tra due hosts locale-remoto in Linux con SCP

 

Trasferire cartelle tra due hosts locale-remoto in Linux con SCP

Il comando SCP in Linux è usato per trasferire files o cartelle in maniera sicura usando ssh, tra server locali e/o remoti.

Trasferire cartelle tra due hosts locale-remoto in Linux con SCP

 

Copiare file da locale a remoto:

# scp -v /path/local/file.txt remoteuser@remotehost:/remote/path/

se si utilizza una porta differente:

# scp -v -P 2200 /path/local/file.txt remoteuser@remotehost:/remote/path/

Copiare file da remoto a locale

# scp -v remoteuser@remotehost:/path/file.txt /path/local

Copiare cartella in maniera ricorsiva e compressa da locale a remoto:

# scp -vrC -P 2200 /path/local/folder remoteuser@remotehost:/remote/path/

Copiare cartella in maniera ricorsiva e compressa da remoto a locale:

# scp -vrC -P 2200 remoteuser@remotehost:/remote/folder/ /path/local/

Limitare la banda:

# scp -vrC -l 500 -P 2200 /path/folder remoteuser@remotehost:/remote/path/

Copiare file/cartella tra 2 hosts remoti:

# scp -v remoteuser1@remotehost1:/path/file.txt remoteuser2@remotehost2::/path/directory/

 

enjpy πŸ˜‰

Backup del Sistema con Rsync

 

Backup del Sistema con Rsync

 

Backup del Sistema con Rsync. Rsync è un leggero e potente strumento per il backup. Permette di eseguire backup incrementali, salvando i soli file modificati o aggiunti rispetto all'ultima operazione di backup, sia in locale che in remoto. Si può utilizzare per un backup dell'intero sistema o di cartelle specifiche.

Installazione:

# apt install rsync -y

Rsync locale:

# rsync -zav /percorso/origine /percorso/backup

per cancellare nella cartella di destinazione i file non più presenti nella cartella di origine basta aggiungere l'opzione –delete:

# rsync --delete -zav /percorso/origine /percorso/backup

Backup del Sistema:

per escludere dal backup files o cartelle si utilizza l'opzione –exclude:

# rsync -zaAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / /percorso/backup

Rsync da locale a remoto con ssh:

$ rsync -zavh -e ssh /cartella/origine_file/ remoteuser@remotehost:/cartella/backup

se si utilizza una porta diversa per ssh:

$ rsync -zavh -e 'ssh -p 2200' /cartella/origine_file/ remoteuser@remotehost:/cartella/backup

per visualizzare il progresso del backup:

$ rsync -zavh -e 'ssh -p 2200' --progress /cartella/origine_file/ remoteuser@remotehost:/cartella/backup

Rsync da remoto a locale con ssh:

$ rsync -zvah -e 'ssh -p 2200' remoteuser@remotehost:/percorso/del/file /cartella/destinazione

Rsync senza password ssh:

# ssh-keygen

alle domande successive premere sempre invio e copiare la chiave sul server:

# ssh-copy-id -i $HOME/.ssh/id_rsa.pub remoteuser@remotehost

a questo punto se tutto è andato bene non verrà più richiesta la password e si può accedere direttamente:

# ssh remoteuser@remotehost


Backup automatico:

a questo punto si può decidere che tipo di backup effettuare:

ogni giorno alle 23:00

00 23 * * *

ogni sabato alle 23:00

00 23 * * 6

oppure al 1° di ogni mese alle 23:00:

00 23 1 * *

$ crontab -e

ed inserire l'opzione desiderata:

00 23 * * * rsync -zav /percorso/origine /percorso/backup

Backup del Sistema con Rsync

enjoy πŸ˜‰

 

XAMPP con PHP 7 su Debian Jessie

 

XAMPP con PHP 7 su Debian Jessie

 

XAMPP è una suite completamente gratuita e facile da installare che contiene Apache, MariaDB, PHP, e Perl. La pagina di download è la seguente, una volta scaricato l'installer, cambiare i permersi ed iniziare l'installazione:

$ chmod 755 xampp-linux-*-installer.run
$ sudo ./xampp-linux-*-installer.run --mode gtk --installer-language it

alla fine si potrà scegliere di lanciare subito xampp, e quindi andare in Manage-Servers per avviare i servizi:

XAMPP con PHP 7 su Debian Jessie

 

La schermata iniziale è raggiungibile all'indirizzo http://localhost/. Per avviare xampp da interfaccia grafica quindi utilizzare:

$ sudo /opt/lampp/manager-linux-x64.run

altrimenti si possono utilizzare i seguenti singoli comandi:

$ sudo /opt/lampp/xampp start
$ sudo /opt/lampp/xampp stop
$ sudo /opt/lampp/xampp restart
$ sudo /opt/lampp/xampp startapache
$ sudo /opt/lampp/xampp startmysql
$ sudo /opt/lampp/xampp startftp
$ sudo /opt/lampp/xampp stopapache
$ sudo /opt/lampp/xampp stopmysql
$ sudo /opt/lampp/xampp stopftp
$ sudo /opt/lampp/xampp enablessl
$ sudo /opt/lampp/xampp disablessl

Per il server ProFTP: nome utente «nobody», password «lampp». E' necessario mettere in sicurezza xampp, creando le password di accesso per i vari servizi. Il comando è il seguente:

$ sudo /opt/lampp/xampp security

XAMPP con PHP 7 su Debian Jessie

enjoy πŸ˜‰

 

Server DHCP su Debian Jessie

 

Server DHCP su Debian Jessie. Installazione e configurazione di un server dhcp su Debian Jessie:

# apt install isc-dhcp-server

settare la scheda di rete da utilzzare, nel mio caso eth0::

# nano /etc/default/isc-dhcp-server

                                                                                                             

# Defaults for isc-dhcp-server initscript
# sourced by /etc/init.d/isc-dhcp-server
# installed at /etc/default/isc-dhcp-server by the maintainer scripts

#
# This is a POSIX shell fragment
#

# Path to dhcpd's config file (default: /etc/dhcp/dhcpd.conf).
#DHCPD_CONF=/etc/dhcp/dhcpd.conf

# Path to dhcpd's PID file (default: /var/run/dhcpd.pid).
#DHCPD_PID=/var/run/dhcpd.pid

# Additional options to start dhcpd with.
#       Don't use options -cf or -pf here; use DHCPD_CONF/ DHCPD_PID instead
#OPTIONS=""

# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
#       Separate multiple interfaces with spaces, e.g. "eth0 eth1".
INTERFACES="eth0"


poi modificare il file dhcpd.conf inserendo i parametri della nostra rete, nel mio caso 192.168.100.0/24:

# nano /etc/dhcp/dhcpd.conf
# Sample configuration file for ISC dhcpd for Debian
#
#

# The ddns-updates-style parameter controls whether or not the server will
# attempt to do a DNS update when a lease is confirmed. We default to the
# behavior of the version 2 packages ('none', since DHCP v2 didn't
# have support for DDNS.)
ddns-update-style none;

# option definitions common to all supported networks...
option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;
default-lease-time 600;
max-lease-time 7200;

# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
#authoritative;

# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;

# No service will be given on this subnet, but declaring it helps the
# DHCP server to understand the network topology.

#subnet 10.152.187.0 netmask 255.255.255.0 {
#}

# This is a very basic subnet declaration.
subnet 192.168.100.0 netmask 255.255.255.0 {
range 192.168.100.150 192.168.100.253;
option routers 192.168.100.1;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.100.254;
option domain-name-servers 192.168.100.1, 192.168.100.2;
option ntp-servers 192.168.100.1;
option netbios-name-servers 192.168.100.1;
option netbios-node-type 8;
}
#subnet 10.254.239.0 netmask 255.255.255.224 {
#  range 10.254.239.10 10.254.239.20;
#  option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;
#}

# This declaration allows BOOTP clients to get dynamic addresses,
# which we don't really recommend.

#subnet 10.254.239.32 netmask 255.255.255.224 {
#  range dynamic-bootp 10.254.239.40 10.254.239.60;
#  option broadcast-address 10.254.239.31;
#  option routers rtr-239-32-1.example.org;
#}

# A slightly different configuration for an internal subnet.
#subnet 10.5.5.0 netmask 255.255.255.224 {
#  range 10.5.5.26 10.5.5.30;
#  option domain-name-servers ns1.internal.example.org;
#  option domain-name "internal.example.org";
#  option routers 10.5.5.1;
#  option broadcast-address 10.5.5.31;
#  default-lease-time 600;
#  max-lease-time 7200;
#}

# Hosts which require special configuration options can be listed in
# host statements.   If no address is specified, the address will be
# allocated dynamically (if possible), but the host-specific information
# will still come from the host declaration.

#host passacaglia {
#  hardware ethernet 0:0:c0:5d:bd:95;
#  filename "vmunix.passacaglia";
#  server-name "toccata.fugue.com";
#}

# Fixed IP addresses can also be specified for hosts.   These addresses
# should not also be listed as being available for dynamic assignment.
# Hosts for which fixed IP addresses have been specified can boot using
# BOOTP or DHCP.   Hosts for which no fixed address is specified can only
# be booted with DHCP, unless there is an address range on the subnet
# to which a BOOTP client is connected which has the dynamic-bootp flag
# set.
#host fantasia {
#  hardware ethernet 08:00:07:26:c0:a5;
#  fixed-address fantasia.fugue.com;
#}

# You can declare a class of clients and then do address allocation
# based on that.   The example below shows a case where all clients
# in a certain class get addresses on the 10.17.224/24 subnet, and all
# other clients get addresses on the 10.0.29/24 subnet.

#class "foo" {
#  match if substring (option vendor-class-identifier, 0, 4) = "SUNW";
#}

#shared-network 224-29 {
#  subnet 10.17.224.0 netmask 255.255.255.0 {
#    option routers rtr-224.example.org;
#  }
#  subnet 10.0.29.0 netmask 255.255.255.0 {
#    option routers rtr-29.example.org;
#  }
#  pool {
#    allow members of "foo";
#    range 10.17.224.10 10.17.224.250;
#  }
#  pool {
#    deny members of "foo";
#    range 10.0.29.10 10.0.29.230;
#  }
#}

dopo le modifiche riavviare il servizio:

# /etc/init.d/isc-dhcp-server restart

Server DHCP su Debian Jessie

enjoy πŸ˜‰

 

FreePBX 500 internal server error after updates

 

FreePBX 500 internal server error after updates è un errore che ho avuto dopo aver aggiornato FreePBX su Raspbian. L'errore si risolve abilitando mod_rewrite in apache.

# a2enmod rewrite
# service apache2 restart
# fwconsole chown
# fwconsole restart
FreePBX 500 internal server error after updates

enjoy πŸ˜‰

 

Owncloud Client su Debian Jessie/Strech

 

Owncloud Client su Debian Jessie

Owncloud Client su Debian Jessie/Strech. Dopo aver creato un server Owncloud su raspberry pi 3, lo step successivo è stato quello di installare Owncloud Client su Debian Jessie, su windows, ipad ed iphone. Installando il client direttamente dai repository Debian si incorre in un errore di autenticazione: owncloud client linux error wrong credentials. Per risolvere il problema bisogna scaricare ed installare il client direttamente dal sito ufficiale.

# echo 'deb http://download.opensuse.org/repositories/isv:/ownCloud:/desktop/Debian_8.0/ /' >> /etc/apt/sources.list.d/owncloud-client.list
# apt-get update
# wget http://download.opensuse.org/repositories/isv:ownCloud:desktop/Debian_8.0/Release.key
# apt-key add - < Release.key
# apt-get install owncloud-client

enjoy πŸ˜‰

 

Owncloud 9 Apache Mysql su Raspberry Pi 3 e Raspbian

 

Owncloud 9 Apache Mysql su Raspberry Pi 3 e Raspbian

 

Owncloud 9 Apache Mysql su Raspberry Pi 3 e Raspbian. Io su Raspberry Pi 3, ho un server Webdav e mi trovo bene, qua la guida. ma ho voluto provare Owncloud, poichè è molto più personalizzabile, e ti permette di condividere link, con password e data di scadenza. Io ho utilizzato come disco esterno una pen drive da 128G, formattata in NTFS, ma si può utilizzare anche un hard disk esterno, possibilmente alimentato. 

sudo mkdir /media/usb-hdd

identificare la chiavetta con:

sudo tail -f /var/log/messages

oppure:

sudo fdisk -l

conoscere UUID per procedere con il mount automatico:

sudo blkid /dev/sda1

il comando sopra restituirà qualcosa del genere:

/dev/sda1: UUID="10C67902162A661E" TYPE="ntfs" PARTUUID="eaf9ab2e-01"

quindi configurare fstab:

sudo nano /etc/fstab

che dovrebbe essere come sotto:

UUID=10C67902162A661E /media/usb-hdd/ ntfs-3g permissions,defaults,auto

poi:

sudo reboot

 

Installazione di Owncloud ed i servizi necessari:

 

wget -nv https://download.owncloud.org/download/repositories/stable/Debian_8.0/Release.key -O Release.key
sudo apt-key add - < Release.key
sudo sh -c "echo 'deb http://download.owncloud.org/download/repositories/stable/Debian_8.0/ /' >> /etc/apt/sources.list.d/owncloud.list"
sudo apt-get update && sudo apt-get install owncloud

verrà chiesto di scegliere una password per mysql.

 

Configurazione Mysql:

 

sudo mysql -u root -p

inserire la password di mysql, e poi i 4 comandi sotto, scegliendo Utente e Password per l'utente owncloud:

CREATE DATABASE owncloud;
GRANT ALL PRIVILEGES ON owncloud.* TO USER@localhost IDENTIFIED BY 'PASSWORD';
FLUSH PRIVILEGES;
exit

riavviare mysql:

sudo service mysql restart

 

Web Server Apache2 con SSL:

 

sudo openssl genrsa -out server.key 4096
sudo openssl req -new -key server.key -out server.csr

ci saranno alcune voci da riempire, ma quella più importante è COMMON NAME, che io ho fatto puntare al mio hostname DynDNS per l'accesso da remoto:

Owncloud 9 Apache Mysql su Raspberry Pi 3 e Raspbian

Owncloud 9 Apache Mysql su Raspberry Pi 3 e Raspbian

 

sudo openssl x509 -req -days 1825 -in server.csr -signkey server.key -out server.crt -sha256
sudo chmod 400 server.key
sudo mv server.key /root/server.key
sudo mv server.crt /root/server.crt
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/000-default.conf_bak
sudo nano /etc/apache2/sites-available/000-default.conf

e modificare DocumentRoot come sotto:

DocumentRoot /var/www/owncloud

poi ancora:

sudo rm -rf /var/www/html/
sudo nano /etc/apache2/sites-available/default-ssl.conf

e modificare le voci DocumentRoot, SSLCertificateFile, SSLCertificateKeyFile, come sotto:

DocumentRoot /var/www/owncloud
SSLCertificateFile /root/server.crt
SSLCertificateKeyFile /root/server.key

abilitare la crittografia:

sudo a2ensite default-ssl.conf
sudo service apache2 reload
sudo a2enmod ssl
sudo service apache2 restart

alcune modifiche necessarie:

sudo nano /etc/php5/apache2/php.ini

fare una modifica al file php.ini, nella sezione File Uploads, portando upload_max_filesize = 5000.

sudo sed -i 's/AllowOverride None/AllowOverride All/'  /etc/apache2/apache2.conf
sudo /etc/init.d/apache2 restart

creazione della cartella di storage e relativi permessi:

sudo mkdir -p /media/usb-hdd/owncloud/dati
sudo chown -R www-data:www-data /media/usb-hdd/owncloud/dati
sudo chmod 0770 /media/usb-hdd/owncloud/dati
sudo reboot

come ultimo ritocco, aumentare la capacità di upload, andando a modificare il file .htacces, ed installare fail2ban:

sudo nano /var/www/owncloud/.htaccess

portando: php_value upload_max_filesize, e php_value post_max_size a 5000M

sudo apt-get install fail2ban

Se tutto è andato bene andare all'indirizzo https://ip_del_raspberry/owncloud ed apparirà la pagina iniziale, dove si dovrà scegliere nome utente e password per l'accesso, ed inserire il nome del database ed user e password dell'utente owncloud.

Owncloud 9 Apache Mysql su Raspberry Pi 3 e Raspbian

 

enjoy πŸ˜‰

 

Telefonare e Ricevere Gratis nel mondo con Asterisk iPhone e Vpn

 

      

 

Telefonare e Ricevere Gratis nel mondo con Asterisk iPhone e Vpn. Si può fare! Se si possiede un PBX Asterisk in casa o in ufficio, ed è giustamente configurato, si può decidere di essere sempre raggiungibile anche sul cellulare. Ci sono diversi modi per fare questo, basta creare una estensione in FreePBX, o mettere il numero di cellulare in un gruppo di squillo, ecc. ecc. Fino a che ci si trova all'interno della casa o dell'ufficio collegati alla propria rete locale, non ci sono problemi nel ricevere telefonate o effettuarle, passando dal centralino virtuale, il "problema" invece si pone quando ci si trova all'esterno e quindi di conseguenza non siamo più un interno telefonico. Anche in questo caso ci sono diverse soluzioni, per poter chiamare o ricevere le chiamate, una su tutte, si potrebbe configuare Asterisk/FreePBX dopo qualche squillo di girarci la chiamata sul telefono ecc. ecc, oppure usare un client voip opportunamente configurato. Ma secondo me invece il modo migliore è quello di essere sempre o quando si ha la necessità, connessi alla propria rete locale. Sembra difficile, ma in realtà è molto più semplice di quanto si pensi. Quello di cui si ha bisogno, oltre ad un minimo di conoscenza, sono:

  1. Una estensione configurata su FreePBX
  2. Un client Voip che supporti la VPN, come Bria iPhone
  3. Una VPN

 

Per quanto riguarda la configurazione di una Estensione su FreePBX ci sono molte guide sul web, ed anche in questo blog. Per quanto riguarda invece la VPN, bisogna avere un router (consigliato) con cui poterla creare, oppure un firewall. A livello domestico/ufficio si potrebbe prendere in considerazione l'acquisto di un router, per esempio un Linksys E1200-EZ v2, su cui poi installare DD-WRT, come ho fatto io. Infine serve acquistare per 8€ circa l'app per telefoni apple o android di Bria. Per quanto riguarda la configurazione è molto semplice:

Telefonare e Ricevere Gratis nel mondo con Asterisk iPhone e Vpn Telefonare e Ricevere Gratis nel mondo con Asterisk iPhone e Vpn Telefonare e Ricevere Gratis nel mondo con Asterisk iPhone e Vpn


Quindi se ci si trova lontani da casa, in Italia, basta collegarsi col proprio piano dati telefonico, alla VPN, per poi poter essere un interno e quindi chiamare e ricevere le chiamate. Se si è in vacanza all'estero, si può approfittare degli hotspot pubblici o dell'albergo per poter avviare la VPN, e poi fare una chiamata Gratis come se ci si trovasse a casa propria. Telefonare e Ricevere Gratis nel mondo con Asterisk iPhone e Vpn

enjoy πŸ˜‰