Archivi tag: macos

Usare l’adattatore Gigabit USB AmazonBasics in macOS

Avendolo acquistato da un po’ di tempo e volendolo comunque utilizzare, l’adattatore Gigabit USB AmazonBasics in macOS Sierra rispetto alle versioni OSX precedenti non mi veniva più riconosciuto correttamente.

Seppur il prodotto non manca di essere spedito con materiale cartaceo e media di supporto essenziali, il software ed i driver presenti non sembrano consentirti di poter utilizzare l’adattatore correttamente, ed è come se il dispositivo nemmeno si alimentasse.

Ho cercato di trovare una soluzione ed ho raccolto in questo articolo il metodo per poter tornare ad utilizzarlo su un sistema macOS.

L'adattatore gigabit usb AmazonBasics in macOS non viene identificato con il software in dotazione

Identificare l’adattatore Gigabit USB AmazonBasics in macOS

La strada per la soluzione  percorsa è stata quella di cercare intanto del software aggiornato, ma partendo dalla scheda dell’adattatore Gigabit USB AmazonBasics non ho avuto molta fortuna.

Analizzando meglio le informazioni stampate anche sulla superficie del dispositivo, si può leggere che questa versione è basata sul semiconduttore AX88179 prodotto dall’azienda taiwanese ASIX.

Quindi è necessario prelevare il software direttamente dall’azienda produttrice del chipset, che oltre ad elencare le caratteristiche dei propri prodotti, consente il download dei software di supporto direttamente dal proprio sito: il driver disponibile è compatibile dalla versione di sistema operativo 10.6 a 10.12 quindi Sierra.

AX88179 — USB3.0 to 10/100/1000M Gigabit Ethernet Controller

L’archivio include un PDF che indica i passaggi da seguire ed il DMG con il volume contenente l’installazione, che si è svolta senza intoppi.

Bonus: ottenere una lista dei dispositivi USB, come lsusb su Linux

Per una verifica piuttosto veloce, ho cercato di capire inizialmente se l’adattatore fosse disponibile all’interno del sistema operativo a basso livello, ed essendo abituato a lavorare con Linux ho da subito pensato ad eseguire lsusb da terminale, ma in macOS non esiste.

Ed ovviamente qualcuno della comunità ci ha già pensato ed ha realizzato un programma equivalente, installabile attraverso homebrew, disponibile in github all’indirizzo https://github.com/jlhonora/lsusb.

Attivare VPN per siti specifici su Windows e macOS

Nel caso di utilizzo di servizi tipo Hide My Ass può giungere ad un momento la necessità di attivare VPN per siti specifici, lasciando che il traffico rimanente non sia influenzato dall’instradamento.

È possibile intervenire sui file di configurazione delle singole connessioni per ottenere facilmente questo comportamento.

Gli scenari sono applicati utilizzando un’account Hide My Ass, ma valgono per qualsiasi altro servizio VPN compatibile.

Come attivare VPN per siti specifici

Attivare VPN per siti specifici su Windows

Prima di poter personalizzare le configurazioni, è necessario installare OpenVPN; il software è disponibile all’indirizzo seguente

http://swupdate.openvpn.net/privatetunnel/client/privatetunnel-win-2.8.exe

pertanto la procedura è quella di un setup tradizionale (che include un riavvio in quanto viene aggiunta una interfaccia di rete).

Terminata l’installazione, è necessario raggiungere la cartella che conserva gli script di configurazione *.ovpn per poter modificare quelli oggetto dell’intervento di questo articolo.

Se nel caso di Hide My Ass non è ancora stato utilizzato alcuno script, sul sito sono disponibili gli script di configurazione da poter importare nel vostro setup.

Il triggering che consente l’instradamento verso la VPN per indirizzi specifici è attivato con l’inserimento delle seguenti direttive

route-nopull
route 1.2.3.4

dove al posto di 1.2.3.4 va indicato l’indirizzo IP del server da raggiungere via VPN; la seconda direttiva può essere ripetuta per indicare valori multipli.

Attivare VPN per siti specifici su macOS

In macOS per connettersi a VPN via script si può utilizzare Tunnelblick disponibile all’indirizzo seguente

https://tunnelblick.net/release/Tunnelblick_3.7.0_build_4790.dmg

ed allo stesso modo di OpenVPN c’è un setup completo da effettuare prima di poter connettersi a Hide My Ass. In questo caso i file *.ovpn possono essere gli stessi, ma Tunnelblick li deve prima processare; per reimpostare un file di configurazione, si può trascinare sopra l’icona del programma presente nella barra di stato.

In modo simile a quanto scritto per Windows, anche in macOS vanno inserite le direttive

route-nopull
route 1.2.3.4

e rinfrescate le configurazioni in Tunnelblick.

Se compare l’avviso che l’IP pubblico non cambia

Se il client avvisa che dopo essersi connessi alla VPN l’indirizzo IP pubblico non è cambiato, è “normale”.

Ovvero: l’instradamento è avvenuto solamente verso gli indirizzi IP inclusi nello script. Infatti se possibile effettuare un monitoraggio verso un servizio che si controlla ed inserito nelle direttive, si vedrà che le connessioni provengono effettivamente dall’indirizzo IP del network VPN.

MSMTP: usare GMail con la funzione mail() in PHP

Questo articolo può essere applicato a differenti scenari: una installazione Linux minimale, un’istanza virtuale o contenitore che non include un MTA, incompatibilità tra differenti interpreti, un desolante messaggio nella riga di comando da console tipo

sh: 1: /usr/sbin/sendmail: not found

In aggiunta, si può avere la necessità (anche dal punto di vista della comodità o per via di esigenze legate a razionalizzazione delle risorse) di voler utilizzare un servizio esterno all’host che si occupi dell’inoltro dei messaggi di posta elettronica, sfruttando un servizio SMTP con un profilo esistente (fornito anche all’esterno della sede locale, come per es. Google Apps for Work‎ od il comune Gmail), escludendo l’opzione di installare un servizio puro superfluo o inutile su una macchina non desinata a ricevere posta.

Sintesi: il software in questione deve occuparsi di smistare messaggi di posta elettronica, rappresentando il tratto di unione tra un interpretesendmail-compatibile ed un client SMTP. Esiste di già, ed è MSMTP.

MSMTP: requisiti ed installazione

Il progetto MSMTP manutenuto da Martin Lambers è rilasciato come codice libero in licenza GPLv3: i requisiti sono ristretti ad un compilatore e le funzioni per socket tipo Berkeley. Disponibile sui repository delle maggiori distribuzioni Linux, si può comunemente lanciare

apt-get install msmtp

per l’installazione in Debian od Ubuntu, mentre per le altre in base yum tipo RHEL / CentOS

yum install msmtp

Su Apple MacOS 10, MSMTP è disponibile con la formula homebrew

brew install msmtp

La configurazione si basa su file di testo semplici, con i percorsi predefiniti per sistema su /etc/msmtprc e ~/.msmtprc per le configurazione dei singoli utenti. Sul sito di riferimento è presente la documentazione completa (in inglese) ed un file di esempio. Davvero lineare.

google-gmail

Integrazione con PHP ed uso di account Gmail

Come riportato poco prima, MSMTP è sostituibile al comando sendmail, pertanto ci si può disporre a questo tipo di configurazione creando un file in /etc/msmtprc con la configurazione di un account SMTP esistente; il software supporta il TLS, quindi l’esempio Gmail è anche un buon esercizio per verificare questa opzione.

Contenuto del file /etc/msmtprc :

# Esempio msmtprc per Gmail
# 2014 Alessio Felicioni
# fonte: http://www.alessiofelicioni.it/msmtp-gmail-funzione-mail-php/

# valori predefiniti
defaults
tls on
tls_starttls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
logfile /var/log/msmtp.log

# configurazione account
account default
host smtp.gmail.com
port 587
auth on
from utente@gmail.com
user utente@gmail.com
password La(TUA)Password_va_qui

Importante garantire che il file sia leggibile dall’utente che esegue il php via processo server (es. apache, www-data o equivalente): vale a dirsi

chown www-data /etc/msmtprc
chmod 600 /etc/msmtprc

Quindi il valore di sendmail_path in php.ini potrebbe essere sostituito con la seguente sintassi

sendmail_path = "/usr/bin/msmtp -C /etc/msmtprc -t"

MSMTP supporta anche la configurazione di account multipli anche sullo stesso file: il parametro che controlla questa opzione è -a con il significato che se invocato con valori differenti, lo smistamento avverrà attraverso profili (ed eventualmente tratte/server SMTP) differenti.

La sezione di documentazione del progetto all’indirizzo http://msmtp.sourceforge.net/documentation.html è il punto di riferimento per utilizzare al meglio il programma e ricca di esempi.

Trasferire file via ZModem

Tra le operazioni di base più utili per una macchina connessa ad una rete, è fondamentale poter trasferire in ingresso ed uscita dei file. ZModem è un protocollo utilizzato per la sua semplicità e flessibilità per trasferimenti veloci all’interno di sessioni SSH.

Trasferire file via ZModem

ZModem

Emerso negli anni 80 come protocollo di trasferimento di file, ZModem è il risultato di miglioramenti a tecniche preesistenti. La diffusione è stata tale nel mondo delle BBS che praticamente ancora oggi le implementazioni software sono esistenti per la maggior parte delle piattaforme, da DSZ a lrzsz.

Proprio quest’ultimo è praticamente un pacchetto ubiquo e disponibile per tutti i sistemi Unix, Linux e derivati.

Installare ZModem in Linux

Di seguito l’installazione e i repository disponibili per le distribuzioni Linux più comuni:

Debian, Ubuntu

apt-get install lrzsz

RedHat, CentOS

yum -y install lrzsz

Usare ZModem in MacOSX

In MacOSX ZModem è disponibile come formula Homebrew installabile con il comando

brew install lrzsz

In caso di utilizzo in abbinamento con iTerm2, è necessario creare degli script da lanciare e configurare tra i trigger, attivandoli con le sintassi in espressione regolare intercettando l’output restituito rispettivamente da rz e sz.

Codice dal repository Github

#!/bin/bash
# Author: Matt Mastracci (matthew@mastracci.com)
# AppleScript from http://stackoverflow.com/questions/4309087/cancel-button-on-osascript-in-a-bash-script
# licensed under cc-wiki with attribution required 
# Remainder of script public domain

FILE=`osascript -e 'tell application "iTerm" to activate' -e 'tell application "iTerm" to set thefile to choose folder with prompt "Choose a folder to place received files in"' -e "do shell script (\"echo \"&(quoted form of POSIX path of thefile as Unicode text)&\"\")"`
if [[ $FILE = "" ]]; then
	echo Cancelled.
	# Send ZModem cancel
	echo -e \\x18\\x18\\x18\\x18\\x18
	echo \# Cancelled transfer
	echo
else
	echo $FILE
	cd "$FILE"
	/usr/local/bin/rz 
	echo \# Received $FILE
	echo
fi
#!/bin/bash
# Author: Matt Mastracci (matthew@mastracci.com)
# AppleScript from http://stackoverflow.com/questions/4309087/cancel-button-on-osascript-in-a-bash-script
# licensed under cc-wiki with attribution required 
# Remainder of script public domain

FILE=`osascript -e 'tell application "iTerm" to activate' -e 'tell application "iTerm" to set thefile to choose file with prompt "Choose a file to send"' -e "do shell script (\"echo \"&(quoted form of POSIX path of thefile as Unicode text)&\"\")"`
if [[ $FILE = "" ]]; then
	echo Cancelled.
	# Send ZModem cancel
	echo -e \\x18\\x18\\x18\\x18\\x18
	echo \# Cancelled transfer
	echo
else
	echo $FILE
	/usr/local/bin/sz "$FILE"
	echo \# Received $FILE
	echo
fi