Come disabilitare la compressione in OpenVPN

Molto semplicemente modificate il file:

sudo nano /etc/openvpn/server.conf

Commentando la riga dove c’è lo voce compression con un # davanti.

Ovviamente ho omesso di dire che c’è una falla nel sistema che comprime i pacchetti, come dimostrato da Ahamed Nafeez che se volete approfondire potete leggere qua:

https://community.openvpn.net/openvpn/wiki/VORACLE

Nota: nelle ultime versioni di OpenVPN per iOS se avete la compressione abilitata non riuscirete ad utilizzarla. Quindi la soluzione è disattivarla dal server e rigenerare o modificare il certificato.

Come cambiare porta a OpenVPN

Se avete appena installato la vostra VPN personale (qui la guida per crearne una con un Raspberry Pi) e volete cambiare la porta di default (la 1194) ecco a voi come fare!

Per modificare la porta all’esterno della vostra rete locale nel caso usiate un indirizzo IP statico o un dominio dinamico (in modo che il certificato vi venga generato con la porta esterna corretta):

sudo nano /etc/openvpn/easy-rsa/pki/Default.txt

Per modificare invece la porta interna, quindi quella che ascolterà in locale:

sudo nano /etc/openvpn/server.conf

Riavviate poi il servizio con:

sudo service openvpn restart

Nel caso abbiate già dei certificati installati, dovrete cambiarle manualmente nel certificato (potete modificarlo essendo un file testuale) oppure rigenerarlo.

Come rifirmare un’ipa con un certificato Developer

Per firmare un file .ipa sono necessarie un paio di cose:

  • un account Developer Apple
  • un app signer
  • l’ipa in questione
  • un signing certificate
  • un provisioning profile

Per l’account da Developer Apple e l’ipa non posso aiutarvi, dovete “occuparvene” da soli acquistando la licenza e scaricando l’ipa da non so dove (la procedura di rifirma è necessaria perché l’ipa viene firmata dallo sviluppatore che l’ha creata o diffusa e per installarla su un iPhone è necessario che i certificati corrispondano).

Per quanto riguarda l’app signer posso consigliarvi una di queste due (ho fatto di entrambi un fork ma non ho modificato nulla):

https://github.com/marcotini/XReSign
https://github.com/marcotini/ios-app-signer

Entrambe funzionano bene, vi basterà scaricare il progetto e compilarlo. Oppure semplicemente scaricare l’app precompilata e avviarla.

Per il signing certificate e il provisioning profile vi basterà configurare correttamente Xcode con il vostro account. Dovrebbe crearvi entrambi al primo login, nel caso: Xcode -> Preferences... -> Accounts -> Manage Certificates... e scaricate tutti i certificati (nel caso createli nuovi su developer.apple.com).

Ora che avete tutto l’occorrente, aprite iOS App Signer (o XReSign) e selezionate le 3 voci come segue:

Screenshot di iOS App Signer dopo aver rifirmato un’ipa

Controllate che abbiate selezionato il Developer nel Signing Certificate e il Provisioning Profile con l’asterisco (è il Wildcard).

Per installarla invece sull’iPhone vi basterà aprire Xcode -> Window -> Devices and Simulators e selezionare l’ipa dopo aver premuto sul + in basso a sinistra nella voce Installed apps:

Devices and simulators su Xcode

Aspettate che Xcode faccia i suoi check e voilà, ora nella vostra dashboard dovreste trovarvi l’app pronta per essere utilizzata! Non è stato tanto difficile no?

Se vi dovesse comparire un errore di questo genere:

Signing failed

Significa che c’è qualche problema con l’ipa. Se invece durante l’installazione con Xcode dovesse comparirvi questo errore (ed è uguale qualsiasi app signer utilizziate):

App installation failed

Significa che avete sbagliato certificato o provisioning profile. Utilizzate quelli giusti, cioè il developer e quello con l’asterisco e dovrebbe installarvela correttamente.

Come eliminare voci dal menu contestuale di macOS

Il menu contestuale di macOS può diventare parecchio “incasinato” col tempo. Vediamo subito come alleggerirlo e togliere voci di app installate.

Prima di tutto aprite le impostazioni:

System Preferences dal Launchpad

Cliccate sull’icona della tastiera, poi su Shortcuts e successivamente su Services:

Screenshot per modificare il menu contestuale

Ora potete modificare tutte le voci che volete, potete aggiungerle, rimuoverle… come potete vedere io ho disattivato l’apertura dei file su TextWrangler (noto editor di testo gratuito su macOS).

Avvio lento su macOS Mojave come risolvere

Scommetto che avete appena aggiornato a macOS Mojave, l’ultima versione del sistema operativo desktop di Apple e vi siete resi conto che l’avvio del vostro computer (anche se con SSD di ultima generazione) risulta lentissimo, molto più lento di quanto non fosse con la vecchia versione!

Beh probabilmente avete qualche LaunchAgents attivo e non sapete come disattivarlo… beh ecco a voi come (nel caso vogliate solo togliergli i permessi ecco qua)!

Nel caso invece il problema persistesse, fate attenzione a non avere una vecchia versione di Little Snitch, che a quanto pare poteva essere causa dell’estrema lentezza all’avvio:

Aggiornamento di Little Snitch

Questo ovviamente può capitare se avete il FileVault attivo (la crittografia dell’intero disco Macintosh HD) o altri processi all’avvio che ne possono rallentare l’avvio.

Come cancellare una regola dall’Iptables

Ovviamente non poteva mancare: dopo aver visto come aggiungere delle regole al firewall Iptables e dopo aver visto come visualizzarle in elenco… beh mancava solo più questo!

Se avete l’elenco in vista, quindi ad esempio se avete:

1    DROP       udp  --  anywhere             anywhere             udp dpt:domain
2    DROP       tcp  --  anywhere             anywhere             tcp dpt:domain

E volete cancellare la prima regola, vi basterà eseguire:

sudo iptables -D INPUT 1

Per eliminarla dall’elenco delle regole. Se utilizzate iptables-persistent per salvare permanentemente tutte le rules, vi basterà eseguire:

sudo su
iptables-save > /etc/iptables/rules.v4

Per salvarle al prossimo riavvio!

Come visualizzare l’elenco dell’Iptables

Se avete impostato delle regole nel vostro firewall, come fate a capire quali sono attive e quali no?

Beh di solito bisogna leggere la documentazione, però si sa, siamo tutti un po’ pigri… vediamo subito qual è il comando da eseguire:

sudo iptables -L --line-numbers

E dovrebbe visualizzarvi qualcosa del tipo:

Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    DROP       udp  --  anywhere             anywhere             udp dpt:domain
2    DROP       tcp  --  anywhere             anywhere             tcp dpt:domain

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination         

Come salvare permanentemente l’Iptables

Abbiamo visto che l’Iptables è il firewall di Linux e che funziona molto bene, si gestisce facilmente da linea di comando… ma ora andiamo diretti alle regole (se vuoi sapere come impostarle, leggi questo).

Prima di tutto installate questo pacchetto:

sudo apt install iptables-persistent

Poi spostatevi sull’account amministratore con sudo su ed eseguite:

iptables-save > /etc/iptables/rules.v4

Per salvare l’attuale configurazione. Mentre per ripristinarlo (nel caso abbiate apportato delle modifiche) con:

iptables-restore < /etc/iptables/rules.v4

Ora provate a riavviare e vedete se è ancora tutto uguale!

Come impostare il DNS e nel caso forzarlo

Alzi la mano chi ha avuto problemi ad impostare i DNS sul proprio computer/server Linux. Ci sono almeno 3-4 impostazioni intercambiabili e dipendenti tra loro (il DHCP può darvi un’IP ma voi ne volete un altro).

Nel caso questa mini-descrizione faccia per voi, ecco come forzarli nel file di configurazione delle interfacce:

sudo nano /etc/network/interfaces

E incollate al fondo gli IP del vostro DNS preferito:

dns-nameservers 8.8.8.8 8.8.4.4

Ora riavviate con un sudo reboot now e dovrebbe essere cambiato (salvo altre impostazioni strane con dnsmasq, qui un esempio con un Raspberry Pi).

Controllate l’effettiva risposta con:

nslookup google.com

E dovrebbe comparirvi qualcosa del tipo:

Server:		8.8.8.8
Address:	8.8.8.8#53

Come impostare delle regole nell’Iptables

Abbiamo visto cos’è l’Iptables ma non abbiamo ancora visto come impostare delle regole. Beh, come ho specificato nell’articolo precedente, è molto semplice! Aprite il terminale ed eseguite:

sudo iptables -A INPUT -i eth1 -p udp -m udp --dport 53 -j DROP
sudo iptables -A INPUT -i eth1 -p tcp -m tcp --dport 53 -j DROP

Questi due comandi imposteranno delle regole che bloccheranno tutte le richieste di DNS sull’interfaccia eth1 (se non sai cos’è una network interface, leggi qua).

Ovviamente queste regole al prossimo riavvio saranno resettate, nel prossimo articolo vedremo come salvarle permanentemente.

Cos’è l’Iptables

L’Iptables è un firewall installato in quasi tutti i sistemi Linux, molto semplice e intuitivo.

È facilmente gestibile da linea di comando e per ora non sono state trovate falle conclamate. Gestisce in modo semplice le regole di input, output e forward.

Potete leggere la documentazione in italiano sul sito di Ubuntu https://wiki.ubuntu-it.org/Sicurezza/Iptables

Come rimuovere CocoaPods

Dopo aver visto come installarlo e come usarlo, non poteva mancare anche come rimuovere completamente (disintegrare, se proprio vogliamo usare il comando in italiano):

sudo gem install cocoapods-deintegrate cocoapods-clean
pod deintegrate && pod clean
rm Podfile

Ovviamente tutto eseguito da terminale e nel percorso del progetto con all’interno le dipendenze.

Come usare CocoaPods

Dopo aver visto come installare CocoaPods, vediamo come utilizzarlo.

Se avete appena scaricato un progetto da GitHub ma non sapete come eseguirlo perché ha diverse dipendenze gestite con CocoaPods (di solito viene indicato se la documentazione è fatta come si deve), vediamo subito come fare!

Spostatevi nel percorso del progetto e create un file denominato Podfile senza estensione.

sudo nano Podfile

E incollate qualcosa di simile:

source 'https://github.com/CocoaPods/Specs.git'
use_frameworks!
target 'Example app' do
    pod 'Alamofire', '~> 4.7'
end

Salvate ed eseguite:

pod install

Attendete il tempo necessario per scaricare tutte le dipendenze e aprite il progetto (normalmente dev’esserci un file .xcworkspace altrimenti il classico file del progetto di Xcode).

Come installare CocoaPods

CocoaPods è un gestore di dipendenze per progetti in Swift e Objective-C. Qualche mese fa abbiamo visto come alleggerirlo, ma non abbiamo mai affrontato l’argomento base, cioè come installarlo.

Installarlo è molto semplice, vi basterà aprire il terminale ed eseguire:

sudo gem install cocoapods

Ovviamente dovete già aver installato Xcode da App Store o scaricato tramite il developer.apple.com.

Come avere una Touch Bar virtuale su Xcode

Se volete provare la nuova Touch Bar disponibile nei nuovi MacBook Pro, vi basterà installare Xcode, aprire un progetto e cliccare nel menu in alto alla voce Window (quella prima di Help) e cliccare su Show Touch Bar.

Menu contestuale su Xcode

Avrete così modo di provarla in modo virtuale anche senza averla fisicamente sul vostro Mac o PC (nel caso di hackintosh).

Touch Bar virtuale

Dove trovare le vecchie versioni di Xcode

State cercando una vecchia versione di Xcode perché non riuscite ad aprire un vecchio progetto con la versione attuale?

Magari state cercando di convertire un progetto da Swift 2 alla 4.2?

Beh ecco a voi il link alla pagina di download:

https://developer.apple.com/download/more/

Potrete scaricare tutte le vecchie versioni di Xcode, comprese quelle non più compatibili con Mojave (avrete bisogno di una macchina virtuale con sopra High Sierra o un Mac con sopra installato macOS 10.13).

3 versioni di Xcode installate (non vi dico quanti GB sprecati)

Come emulare il Game Boy Advance su iPhone

Similmente come visto con l’emulatore per Nintendo DS per iPhone, anche per questo emulatore per Game Boy Advance dovrete compilarvelo da soli, semplicemente aggiungendo un certificato:

https://github.com/marcotini/gba4ios

Farlo è molto semplice, cliccate su Clone or download, aprite il progetto con Xcode e cambiate il certificato.
Selezionate il vostro iPhone o iPad come target di destinazione e cliccate su compila!

Importare le ROM è facile e intuitivo quindi non sto a spiegarvelo. Fatemi sapere se avete dei problemi con un commento!

GBA4iOS screenshot

Come emulare il Nintendo DS su iPhone

Dopo aver visto come emulare il Nintendo 3DS e la Nintendo Switch su PC, vediamo come emulare il vecchio Nintendo DS su iPhone.

Purtroppo (o per fortuna) sull’App Store ufficiale di Apple non è possibile scaricare l’emulatore perché non è propriamente legittimo in quanto i giochi scaricati non sono stati veramente acquistati dall’utente.

Detto questo, vi toccherà compilarvi il codice (qui potete avere una guida passo a passo su come fare). Altrimenti potete utilizzare dei servizi come builds.io che però non garantisco, in quanto bisogna pagare una quota annuale.

Nel caso non riuscite, io ho fatto una fork del progetto originale e qui potete trovare tutti i file necessari https://github.com/marcotini/iNDS in cui c’è tutto il progetto. Vi basterà cambiare certificato e installarlo sul vostro iPhone o iPad.

Rispetto al codice che potete trovare su GitHub, dovete semplicemente identificare questa stringa:

E cambiare da Debug a Release:

Ed ecco a voi:

Screenshot di Pokémon

Come emulare i giochi del Nintendo 3DS di Pokémon

Prima di tutto dovete installarvi Citra come ho spiegato in questa guida.

Poi dovete procurarvi la ROM per il gioco che volete giocare e che ovviamente dovete possedere fisicamente (potete acquistare le cartucce qui su Amazon).

Una volta che avete il file .3ds vi basterà aggiungerlo nella cartella di Citra (tasto destro) e avviate il gioco!

Come potete vedere dallo screenshot qui sotto, Pokémon Ultra Luna funziona perfettamente su Windows 10:

E come potete notare in basso a sinistra, riesce persino ad andare a 60fps (cosa che normalmente un Nintendo 3DS raggiunge solo i 30).

Anche su macOS funzionano quasi tutti perfettamente: