WireGuard su Ubuntu: come vedere IP assegnato e stampare la configurazione (wg showconf, ip a)

Immagine rappresentativa dell'articolo concernente wireguard e ubuntu

Se hai seguito la guida per gestire WireGuard su Ubuntu con un’icona in tray tramite Python, probabilmente a questo punto ti starai chiedendo:

  • Che IP mi ha assegnato la VPN?
  • Come faccio a vedere la configurazione attiva di WireGuard?
  • Come stampo il file .conf che sto usando?

In questo articolo vediamo i comandi più utili (e più rapidi) per controllare tutto dal terminale, senza impazzire.

Tutti i comandi qui sotto funzionano su Ubuntu e derivati (Debian, Mint, ecc.).
In alcuni casi è richiesto sudo.

Come vedere l’IP che ti ha assegnato WireGuard

Quando WireGuard è attivo, crea un’interfaccia di rete virtuale (di solito chiamata wg0).

Per vedere tutte le interfacce e trovare quella WireGuard:

ip a

Cerca una sezione simile a questa:

3: wg0: <POINTOPOINT,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default
    inet 10.7.0.2/24 scope global wg0
       valid_lft forever preferred_lft forever

In questo esempio, l’IP assegnato dalla VPN è:

10.7.0.2

Stampare solo l’IP della VPN (senza “rumore”)

Se vuoi vedere direttamente l’IP IPv4 associato a wg0:

ip -4 addr show dev wg0

Se invece vuoi solo l’indirizzo pulito (utile anche per script):

ip -4 addr show dev wg0 | grep -oP 'inet \K[\d.]+'

Esempio output:

10.7.0.2

Come stampare la configurazione WireGuard

Ci sono due “tipi” di configurazione che puoi voler vedere:

  1. Il file di configurazione (wg0.conf)
  2. La configurazione attiva (runtime), cioè quella realmente caricata e in uso

Vediamole entrambe.

1) Stampare il file .conf (quello che hai configurato)

Di solito i file WireGuard si trovano in:

/etc/wireguard/

E il file classico è:

/etc/wireguard/wg0.conf

Per stamparlo:

sudo cat /etc/wireguard/wg0.conf

Se vuoi una stampa più leggibile con i numeri di riga:

sudo nl -ba /etc/wireguard/wg0.conf

Questo è comodo quando devi copiare/incollare righe specifiche o confrontare config.

2) Stampare la configurazione attiva (quella realmente in uso)

Questa è la parte più utile quando vuoi fare debug o capire se la VPN è davvero connessa.

Config attiva in formato “conf”

sudo wg showconf wg0

Questo comando ti stampa una versione “ricostruita” della configurazione attiva dell’interfaccia.

Stato completo dell’interfaccia (debug)

sudo wg show wg0

Qui vedrai:

  • public key
  • endpoint (IP:porta del server)
  • allowed IPs
  • handshake recente
  • transfer (rx/tx)

Esempio tipico:

  • se handshake è recente, sei connesso
  • se transfer aumenta, il traffico sta passando

Vedere tutte le interfacce WireGuard attive

Se non sei sicuro del nome (wg0, wg1, ecc.):

sudo wg show

Nota importante: IP VPN vs IP pubblico

Qui spesso ci si confonde, quindi vale la pena chiarire:

IP della VPN (interno)

Quello che vedi con:

ip -4 addr show dev wg0

è un IP “interno” della rete VPN (es. 10.x.x.x, 192.168.x.x, ecc.)

IP pubblico (quello che vede internet)

Se la VPN instrada il traffico verso internet, allora il tuo IP pubblico cambia.

Puoi verificarlo così:

curl ifconfig.me

Oppure:

curl ipinfo.io/ip

Se vedi un IP diverso dal tuo normale, allora stai uscendo su internet tramite VPN.

Mini-checklist veloce (comandi utili)

Vedere l’IP assegnato alla VPN:

ip -4 addr show dev wg0

Stampare solo l’IP:

p -4 addr show dev wg0 | grep -oP 'inet \K[\d.]+'

Stampare il file di configurazione:

sudo cat /etc/wireguard/wg0.conf

Config attiva (in formato conf):

sudo wg showconf wg0

Stato completo:

sudo wg show wg0

Vedere l’IP pubblico:

curl ifconfig.me

Con questo abbiamo chiuso

Dopo aver configurato WireGuard e averlo reso comodo da gestire tramite tray (come nella guida precedente), questi comandi ti permettono di:

  • verificare subito se la VPN è attiva
  • controllare che IP ti è stato assegnato
  • stampare la configurazione file e runtime
  • capire se stai navigando con un IP pubblico diverso

Se vuoi, nel prossimo articolo possiamo aggiungere anche:

  • un pulsante nella tray app per mostrare l’IP attuale
  • una notifica desktop con IP e handshake
  • controllo “VPN attiva/non attiva” più affidabile

Buon tunnel

Quale Sistema Operativo è più Sicuro? Windows vs Mac vs Linux

La sicurezza informatica è una preoccupazione crescente per utenti e aziende di tutto il mondo. Quando si tratta di scegliere un sistema operativo (OS), la sicurezza è un fattore cruciale da considerare. In questo articolo, esamineremo i tre principali sistemi operativi: Windows, Mac, e Linux, per determinare quale offre il miglior livello di sicurezza.

Windows: Il Colosso Vulnerabile

Windows, sviluppato da Microsoft, è il sistema operativo più diffuso al mondo. Tuttavia, la sua popolarità lo rende anche il bersaglio preferito degli hacker.

Pro:

  • Aggiornamenti Frequenti: Microsoft rilascia aggiornamenti di sicurezza regolari e patch per risolvere le vulnerabilità.
  • Strumenti di Sicurezza Integrati: Windows Defender offre una protezione antivirus e antimalware integrata.

Contro:

  • Alta Vulnerabilità: Essendo il sistema operativo più utilizzato, è il più bersagliato da virus, malware e attacchi hacker.
  • Storico di Bug: Le nuove versioni di Windows spesso presentano bug che possono essere sfruttati dagli hacker.

Mac: Sicurezza per Design

MacOS, sviluppato da Apple, è noto per la sua robusta sicurezza. Apple implementa rigorose misure di sicurezza e controlla strettamente l’hardware e il software.

Pro:

  • Architettura Sicura: Basato su Unix, macOS offre una solida base di sicurezza.
  • App Store Controllato: Apple verifica tutte le applicazioni nel suo App Store, riducendo il rischio di malware.
  • Aggiornamenti di Sicurezza: Apple rilascia regolarmente aggiornamenti di sicurezza e patch.

Contro:

  • Target in Crescita: Con l’aumento della popolarità dei Mac, anche i cyber criminali stanno iniziando a prendere di mira macOS.
  • Meno Flessibilità: La natura chiusa del sistema operativo può limitare le opzioni di personalizzazione e gestione della sicurezza per gli utenti avanzati.

Linux: Il Bastione degli Smanettoni

Linux è un sistema operativo open-source che offre una grande flessibilità e controllo agli utenti. È meno comune tra gli utenti medi, ma molto popolare tra gli sviluppatori e gli amministratori di sistema.

Pro:

  • Bassa Popolarità: Essendo meno diffuso, Linux è meno bersagliato dagli attacchi rispetto a Windows e Mac.
  • Open Source: La comunità open-source può rapidamente identificare e correggere le vulnerabilità.
  • Flessibilità e Controllo: Gli utenti avanzati possono configurare Linux per massimizzare la sicurezza.

Contro:

  • Curva di Apprendimento Ripida: Linux può essere complesso da utilizzare per i non esperti.
  • Supporto Commerciale Limitato: Meno supporto ufficiale rispetto a Windows e Mac, sebbene la comunità open-source sia molto attiva.

La sicurezza di un sistema operativo dipende da vari fattori, tra cui la popolarità, l’architettura di base, e le pratiche di sicurezza degli utenti. Windows offre una vasta gamma di strumenti di sicurezza ma è frequentemente bersagliato dagli hacker. MacOS ha una solida base di sicurezza ma sta diventando un obiettivo sempre più popolare. Linux offre un alto livello di sicurezza e flessibilità, ma richiede competenze tecniche per essere utilizzato efficacemente.

La scelta del sistema operativo più sicuro dipende dalle esigenze individuali e dalle competenze tecniche. Indipendentemente dal sistema operativo scelto, è essenziale mantenere aggiornati i software e adottare pratiche di sicurezza adeguate.

5 pratiche di sicurezza per sviluppare con Javascript

Un breve, brevissimo, memo di orientamento sul versante browser in 5 piccoli punti.

Lo sviluppo di applicazioni web moderne implica spesso l’uso estensivo di JavaScript per aggiungere interattività e dinamicità alle pagine web. Tuttavia, con la crescente complessità delle applicazioni JavaScript, è essenziale adottare le migliori pratiche di sicurezza per proteggere i tuoi utenti e i loro dati.

In questo articolo, esploreremo alcune delle migliori pratiche di sicurezza di sviluppo lato client e, con i framework moderni e NodeJS, anche lato server.

letture consigliate

“JavaScript: The Good Parts” di Douglas Crockford – Questo libro offre una panoramica approfondita delle migliori pratiche di JavaScript, concentrandosi sugli aspetti del linguaggio che possono migliorare la sicurezza e l’affidabilità del codice.

“Web Security for Developers: Real Threats, Practical Defense” di Malcolm McDonald e James R. Kettle – Questo libro fornisce una guida pratica alla sicurezza web per gli sviluppatori, coprendo una vasta gamma di argomenti, tra cui XSS, CSRF, SQL Injection e altro ancora.

“The Tangled Web: A Guide to Securing Modern Web Applications” di Michal Zalewski – Un libro avanzato che esplora le sfide uniche della sicurezza delle applicazioni web moderne e fornisce strategie e tecniche per mitigare i rischi.

1. Validazione lato client e server

Una delle prime linee di difesa contro le vulnerabilità di sicurezza è la validazione dei dati sia lato client che lato server. Utilizza le funzionalità di validazione fornite dai framework JavaScript come Express.js per verificare che i dati inviati dagli utenti siano conformi alle aspettative del tuo sistema e per prevenire attacchi come l’inserimento di script dannosi (XSS) o l’iniezione di SQL.

Una SQL injection in realtà aumentata (fonte)

2. Utilizzo di librerie e framework sicuri

Quando scegli librerie e framework JavaScript per il tuo progetto, assicurati di selezionare quelli che sono regolarmente aggiornati e supportati dalla comunità. Evita di utilizzare librerie obsolete o non mantenute, poiché potrebbero contenere vulnerabilità di sicurezza note.

3. Gestione sicura delle password

Se il tuo sito web richiede la gestione di password degli utenti, assicurati di utilizzare pratiche di hashing sicure come bcrypt per proteggere le password memorizzate nel database. Evita di memorizzare le password in chiaro o utilizzare algoritmi di hash deboli che possono essere facilmente compromessi.

SecurityHeaders.com
Un sito che fornisce informazioni su come implementare correttamente le intestazioni di sicurezza HTTP, come Content Security Policy (CSP), per proteggere le tue applicazioni web da attacchi XSS e altre minacce.

4. Protezione contro attacchi XSS

Gli attacchi XSS (Cross-Site Scripting) sono comuni nelle applicazioni JavaScript e possono consentire agli aggressori di eseguire script dannosi sul browser dell’utente. Per proteggerti da questi attacchi, utilizza sempre l’escape dei dati in output e applica Content Security Policy (CSP) per mitigare il rischio di esecuzione di script non autorizzati.

5. Aggiornamenti regolari e monitoraggio della sicurezza

Infine, assicurati di mantenere il tuo codice JavaScript aggiornato e di monitorare regolarmente la sicurezza del tuo sito web per individuare e risolvere tempestivamente eventuali vulnerabilità. Se vuoi diventare un esperto di sicurezza informatica dovrai poter contare su risorse e strumenti affidabili, mantenendoti aggiornato e sempre al passo con lo stato dell’arte. Pertanto non mancare di consultare e mettere tra i preferiti risorse come OWASP (open Web Application Security Project) e Mozilla Developer Network (MDN).

La sicurezza è una parte fondamentale dello sviluppo di qualsiasi applicazione, se è un’applicazione web non ne parliamo proprio! Gli sviluppatori, specie i junior e quelli provenienti da linguaggi di programmazione server-side che non hanno mai usato un linguaggio come JavaScript, devono essere consapevoli dei rischi e delle migliori pratiche per proteggere le loro applicazioni e i loro utenti.