Blue Flower

Giovedì, 21 Novembre 2019 09:56

Autenticare e crittografare le connessioni con Zebedee

Written by
Rate this item
(0 votes)

Zebedee (Zlib compression Blowfish encryption and Diffie-Hellman key agreement) è un programma open source che permette di stabilire una connessione “tunnel” TCP/IP o UDP compressa e crittografata tra due sistemi e rendere sicuro il traffico di protocolli che non hanno una sicurezza nativa, e di ottimizzare l’utilizzo di banda per mezzo della compressione.

Impostando un'autenticazione “forte”, possiamo fare anche in modo che solo determinati client autorizzati possano connettersi al server

Ipotizziamo di dover ottenere una connessione sicura verso un server Windows 20xx, tramite i servizi terminal in modalità amministrativa, o a un database. Tutto può essere adattato a qualsiasi altro servizio TCP o UDP, modificando una linea del file di configurazione.

Nell’esempio utilizzeremo un client Windows, ma il concetto è lo stesso per un client Linux.

Come prima cosa procuriamoci il programma qui. Eseguiamo il setup, molto semplice, sia su server che su client.

Creiamo una chiave privata sul client:

zebedee -p > myclient-private.key

Il file così generato contiene la chiave privata che deve essere tenuta in un posto sicuro.
Adesso creiamo la corrispondente chiave pubblica:

zebedee -P -f myclient-private.key > myclient-public.id
Questa chiave va copiata nella cartella di Zebedee sul server, dove creerete anche un file

client.idlist

nel quale copierete il contenuto di tutte le chiavi pubbliche di ciascun client.

Adesso creiamo il file di configurazione del server: server.zbd

verbosity 3
server true
detached false
checkidfile "client.idlist"
compression zlib:9
keylength 256
keylifetime 36000
maxbufsize 16383
target localhost:3389/tcp

Servizio di Windows

Installiamo Zebedee come servizio di Windows, impartendo il seguente comando:

zebedee -n "Nome servizio assegnato" "-Sinstall=c:\server\zebedee\server.zbd"

zebedee -n "Zebedee Server" -Sinstall=c:\zebedee\server.zb

Tramite il pannello di controllo facciamo partire il servizio, e controlliamo che venga avviato automaticamente alla partenza del sistema.

Pubblicate la porta TCP/11965 del server sul vostro firewall, o chiedete al sistemista perimetrale di farlo per voi. Questo è lo schema del tunnel:

Sul client possiamo qundi stabilire la connessione tramite il comando:
zebedee -f myclient-public.id -d 5555:mio.server.com:3389

Il valore 5555 è un valore (maggiore di 1024), che inventate e che serve per creare l’endpoint del tunnel su una porta TCP locale, sostituite mio.server.com con il vero indirizzo del vostro server.

3389 è la porta del servizio RDP che gira sul server.
La connessione così stabilita è crittografata e autenticata in modo “forte”: solo il client in possesso della chiave privata corrispondente alla pubblica sul server è in grado di collegarsi.

Avviate il tutto con il client di connessione a desktop remoto, collegandovi a localhost:5555.

Se il client si rifiuta, fate riferimento a questo post.

Potrete facilmente ottenere la connessione a servizi diversi semplicemente modificando l’ultima riga del file server.zbd.

Ricordarsi di riavviare il servizio dopo le modifiche.

La connessione avverrà verso localhost, sul numero di porta da voi scelto.
Per arrestare la comunicazione dovete uscire dal client RDP e poi “uccidere” il processo zebedee nel task manager del client.

Read 170 times Last modified on Venerdì, 22 Novembre 2019 16:43

Leave a comment

Make sure you enter all the required information, indicated by an asterisk (*). HTML code is not allowed.