Archivio di ottobre 2009
Vpn con Mac os x in tre passi.
Una Virtual Private Network o VPN è una rete privata instaurata tra soggetti che utilizzano un sistema di trasmissione pubblico e condiviso come per esempio Internet. [Wikipedia]
In parole povere grazie ad una vpn da casa ci si può collegare alla rete lan dell’azienda (per esempio) come se si fosse effettivamente in ufficio.
O viceversa.
Per instaurare un collegamento vpn tra due pc, c’è bisogno di una macchina che faccia da server, o meglio, che su di una macchina all’interno della lan alla quale ci si vuole collegare, giri un demone server, e su quella che è all’esterno sia lanciato il client.
Mac os x, non permette di configurare con strumenti visuali user friendly il server, sebbene esso sia presente (/usr/sbin/vpnd); al contrario vi è la possibilità di configurare molto facilmente il client.
Vediamo cosa fare per configurare manualmente il server in tre semplici passi.
Primo passo
Prima di tutto cambiamo al file /etc/hostconfig la riga seguente: VPNSERVERS=-NO- con VPNSERVERS=-YES-, oppure aggiungiamola.
Dopodichè creiamo il file /Library/Preferences/SystemConfiguration/com.apple.RemoteAccessServers.plist, con questo contenuto:
<dict>
<key>Servers</key>
<dict>
<key> VPNname </key>
<dict>
<key>Interface</key>
<dict>
<key>Type</key>
<string>PPP</string>
<key>SubType</key>
<string>PPTP</string>
</dict>
<key>Addresses</key>
<array>
<string>192.168.0.7</string>
</array>
<key>IPv4</key>
<dict>
<key>DestAddresses</key>
<array>
<string>192.168.0.200</string>
<string>192.168.0.201</string>
<string>192.168.0.202</string>
<string>192.168.0.203</string>
</array>
</dict>
<key>PPP</key>
<dict>
<key>CCPEnabled</key>
<integer>1</integer>
<key>CCPProtocols</key>
<array>
<string>MPPE</string>
</array>
<key>MPPEKeySize40</key>
<integer>40</integer>
<key>AuthenticatorProtocol</key>
<array>
<string>MSCHAP2</string>
</array>
</dict>
<key>AuthenticatorEAPPlugins</key>
<array>
</array>
<key>Server</key>
<dict>
<key>VerboseLogging</key>
<integer>100</integer>
</dict>
</dict>
</dict>
</dict>
Questo è il file per la configurazione del server.
Potete personalizzare, ovviamente il nome della vpn, l’indirizzo IP di ascolto (Addresses) dove va indicato l’IP della macchina server, o, meglio, quello pubblico del router (WAN IP), in quanto presumo vorrete collegarvi da fuori alla LAN, si puo anche mettere un array con piu indirizzi ip.
Secondo passo
Bisogna creare il file /etc/ppp/chap-secrets che conterrà le user e password per l’autenticazione con CHAP (Challenge Handshake Authentication Protocol):
# Secret for authentication using CHAP
# client server secret IP addresses
vpn * vpn *
Ovviamente potete cambiare lo user e la password a vostro piacere.
Cambiate anche i permessi in 600 col comandosudo chmod 600 /etc/ppp/chap-secrets
Terzo Passo
Assicuratevi di aprire le porte 1723 e 47 sul Router, e di controllare che non sia impostato il DMZ. Generalmente queste operazioni si effettuano impostando il virtual servers o altrimenti chiamato port forwarding a seconda dei router, e lasciando vuota la casella dell’indirizzo del DMZ, ovviamente il tutto frugando tra le impostazioni del vostro router.
Alla fine possiamo lanciare il server.
se vogliamo che stampi a video le stringhe di log possiamo lanciare vpnd -dxi VPNname, altrimenti basta vpnd -i VPNname
Avvertenze
Per quanto mi sembra aver capito, con questa configurazione si utilizza un metodo di atenticazione (CHAP) poco sicuro, o addirittura in chiaro. (approfondirò..)
Normalmente il modo piu sicuro per attivare una vpn è quello di attivarla all’interno di un tunnel ssh.
Il procedimento descritto in questo post, non è l’unico procedimento, né tantomeno il più sicuro.
Ringrazio Guybrush, per approfondimenti date uno sguardo a questo thread