Installare e configurare il client SoftEther VPN su RPi
SoftEther (Software Ethernet) è un software VPN multiprotocollo e multipiattaforma, open source, sviluppato dall’università giapponese di Tsukuba. Si propone come valida alternativa a OpenVPN, con il quale conserva la compatibilità, o altri sistemi proprietari.
Su Windows l’installazione del client è molto semplice, in quanto l’installer provvede ad eseguire la maggior parte delle operazioni e all’utente non resta altro che configurare la connessione con il server. In questo articolo vedremo come procedere all’installazione e configurazione su Raspberry Pi.
Preparare il Raspberry Pi come descritto qui Raspbian installazione e configurazione headless senza o con interfaccia grafica. Assegnare al client un indirizzo IP statico in una sottorete diversa da quella del server VPN a cui andrà a collegarsi. Supponiamo ad esempio che il server VPN abbia indirizzo IP 192.168.1.2, al nostro client assegnamo 192.168.2.10.
Riassumendo nella guida verranno utilizzati i seguenti indirizzi IP di esempio:
Server SoftEther VPN | |
---|---|
IP pubblico | DDNS dnsVPN.softhether.net |
IP rete locale | 192.168.1.2 |
Client SoftEther VPN | |
---|---|
IP rete locale | 192.168.2.10 |
IP virtuale rete VPN | 192.168.1.10 |
Installazione
Sul sito web di SoftEther, nella sezione Download Center selezionare nel menù a tendina (come da immagine sottostante) la VPN client per piattaforma Linux, CPU ARM. Copiare il link alla versione stabile più recente.
- Sul terminale del Raspberry Pi, scaricare il file
wget "link nomefile.tar.gz"
- decomprimere il file
tar -xzvf "nomefile.tar.gz"
- compilare
cd vpnclient
sudo make
accettare i termini della licenza d’uso
- cancellare il file compresso
cd ..
rm "nomefile.tar.gz"
- spostare gli eseguibili sotto la cartella usr
sudo mv vpnclient /usr/local
- cambiare i permessi
cd /usr/local/vpnclient
sudo chmod 600 *
sudo chmod 700 vpncmd vpnclient
- testare il buon esito dell’installazio
sudo ./vpncmd
selezionare 3
lanciare il comando check verificando che sia tutto pass
uscire con il comando exit
- riavviare Raspberry Pi
sudo reboot
- lanciare il VPN client
cd /usr/local/vpnclient
sudo ./vpnclient start
Configurazione
Da linea di comando del Raspberry Pi è possibile configuare il Client per la connessione al server VPN. In alternativa si può procedere da remoto tramite una comoda utility Windows.
da linea di comando Linux
- lanciare la Command Line Management Utility
cd /usr/local/vpnclient
sudo ./vpncmd
selezionare l’opzione 2 Management of VPN client
premere Invio per confermare il localhost
- creare un network virtual adapter, che chiameremo “vpn”
NicCreate vpn
- verificare che l’operazione sia andate a buon fine, verificando che compaia nell’elenco dei Nic
NicList
- creare la connessione alla VPN
AccountCreate nomeVPN /SERVER:indirizzoIP:porta /HUB:nomeHUB /USERNAME:nomeUser /NICNAME:vpn
dove a nomeVPN daremo un nome simbolico per l’account che stiamo creando. A indirizzoIP va inserito l’indirizzo IP pubblico del server (di solito identificato dal servizio DDNS offerto dalla stessa SoftEther, nell’esempio dnsVPN.softether.net). La porta è il numero di porta del server dedicato alla VPN, di default la 5555. Il nomeHUB è il nome dell’hub al quale ci stiamo collegando, nomeUser è la user name dell’utente.
- verificare che l’operazione sia andata a buon fine, verificando che compaia nell’elenco degli Account
AccountList
- inserire la password di accesso alla VPN
AccountPasswordSet nomeVPN /PASSWORD:password /TYPE:standard
sostituendo, ovviamente, a password quella corrente utilizzata sul server legata al nomeUser specificato prima.
- collegarsi alla VPN
AccountConnect nomeVPN
- verificare che la connessione alla VPN sia attiva, riportando Status: Connected
AccountList
- uscire dall’utility di configurazione
exit
da utility remota Windows
Innanzitutto abilitare sul Client la configurazione remota
- lanciare la Command Line Management Utility
sudo ./vpncmd
selezionare l’opzione 2 Management of VPN client
premere Invio per confermare il localhost
- abilitare la configurazione remota
RemoteEnable
A questo punto si può proseguire da Windows, se anche sul PC avete il client installato troverete nel menù Start l’utility Manage Remote Computer’s SoftEther VPN Client con la quale sarà possibile collegarsi al Raspberry Pi e configurare il suo client con i passi descritti in precedenza.
Configurazione interfaccia di rete
- Configurare l’intefaccia di rete virtuale creata dalla VPN assegnandogli un indirizzo IP statico, che dovrà essere selezionato tra quelli disponibili all’interno della rete di appartenenza del server VPN (nel nostro esempio la rete 192.168.1.xxx)
sudo ip addr add 192.168.1.10/24 brd + dev vpn_vpn
verificare con il comando ifconfig che la configurazione di rete sia andata a buon fine.
Questo passo dovrà essere ripetuto ogni volta che si attiva il client VPN e viene quindi creata la scheda di rete virtuale. Più avanti vedremo come automatizzare questo processo.
- Configurare RPi per il forward del traffico internet
sudo nano /etc/sysctl.conf
togliere il commento a net.ipv4.ip_forward=1
ricaricare il file
sudo sysctl -p
- Verificare dal server VPN che il client risponda al ping
ping 192.168.1.10
Startup automatico
- Creare uno script di startup per l’avvio automatico della connessione alla VPN
sudo nano /etc/init.d/vpnclient
inserire all’interno il seguente codice, sostituendo nomeVPN con il nome in uso, specificando in INET la classe IP del vostro client e in VPN_INET l’IP assegnato al client nella rete del server
#!/bin/sh
### BEGIN INIT INFO
# Provides: vpnclient
# Required-Start: $local_fs $network
# Required-Stop: $local_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: SoftEther VPN Client
# Description: SoftEther VPN Client daemon
### END INIT INFO
DAEMON=/usr/local/vpnclient/vpnclient
INET=192.168.2.0/24
VPN_INET=192.168.1.10/24
test -x $DAEMON || exit 0
case "$1" in
start)
$DAEMON start
sleep 2
/sbin/ip addr add $VPN_INET brd + dev vpn_vpn
/usr/local/vpnclient/vpncmd /CLIENT localhost /CMD AccountConnect nomeVPN
;;
stop)
/usr/local/vpnclient/vpncmd /CLIENT localhost /CMD AccountDisconnect nomeVPN
$DAEMON stop
;;
restart)
/usr/local/vpnclient/vpncmd /CLIENT localhost /CMD AccountDisconnect nomeVPN
$DAEMON stop
sleep 3
$DAEMON start
sleep 2
/sbin/ip addr add $VPN_INET brd + dev vpn_vpn
/usr/local/vpnclient/vpncmd /CLIENT localhost /CMD AccountConnect nomeVPN
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit 0
- cambiare i permessi dello script
sudo chmod 755 /etc/init.d/vpnclient
- lanciare automaticamente lo script allo startup
sudo update-rc.d vpnclient defaults
L’installazione e la configurazione sono ora completati ed il Raspberry Pi è ora raggiungibile da qualsiasi macchina presente nella rete del server come fosse in locale.
Riferimenti
Argomenti correlati
Questa opera è distribuita con:
licenza Creative Commons Attribuzione - Non commerciale - Condividi allo stesso modo 3.0 Italia.
Si declina ogni responsabilità per eventuali errori ed omissioni e gli eventuali danni che ne dovessero conseguire. Per ulteriori informazioni consultare le note legali.