Archivi tag: vpn concentrator

OpenVPN e WOL: accendere un PC da remoto attraverso un tunnel VPN

Recentemente mi è stato chiesto se fosse possibile inoltrare un magic packet mediante un tunnel VPN, in modo da accendere un PC da remoto senza forwardare porte aggiuntive sul router di destinazione. Ho quindi scaricato questo programma (free) ed ho subito iniziato i test.

La configurazione del suddetto programma è la seguente:

wol

In particolare, l’IP della workstation che voglio avviare da remoto è 192.168.1.5 e la subnet mask scelta è 255.255.255.255 (questo perchè la subnet della workstation è differente da quella del mio PC, quindi il traffico broadcast di livello 3 viene banalmente droppato dal mio router).

Tirando su uno sniffer sul VPN concentrator remoto:

user@vpn-concentrator:~$ sudo tcpdump -nn -i tun0

ho ottenuto il seguente output (dopo l’invio del magic packet):

17:17:52.386074 IP 192.168.114.2.61234 > 192.168.1.5.9: UDP, length 102
17:17:55.383997 IP 192.168.114.1 > 192.168.114.2: ICMP host 192.168.1.5 unreachable, length 138

ovvero l’interfaccia locale del suddetto VPN concentrator mi ha risposto con un pacchetto ICMP host unreachable.

Dando un’occhiata alla tabella ARP del server in questione ho notato che, essendo la workstation spenta ormai da tempo, non era presente nessuna entry ad essa correlata:

user@vpn-concentrator:~$ arp -a
? (192.168.1.7) associato a <incompleto> su eth0
? (192.168.1.14) associato a <incompleto> su eth0
? (192.168.1.5) associato a <incompleto> su eth0

Ho quindi creato una entry statica mediante il comando:

user@vpn-concentrator:~$ sudo arp -s 192.168.1.5 50:46:5d:54:07:76

ed il successivo invio di un magic packet ha finalmente avuto esito positivo (la macchina si è avviata ed ha iniziato a rispondere ai ping, come si evince dal tracciato tcpdump sottostante):

17:20:23.253400 IP 192.168.114.2.60731 > 192.168.1.5.9: UDP, length 102
17:20:39.211323 IP 192.168.114.2 > 192.168.1.5: ICMP echo request, id 1, seq 34, length 40
17:20:43.815485 IP 192.168.114.2 > 192.168.1.5: ICMP echo request, id 1, seq 35, length 40
17:20:43.815819 IP 192.168.1.5 > 192.168.114.2: ICMP echo reply, id 1, seq 35, length 40

Naturalmente tale settaggio non è più attivo dopo un eventuale riavvio del server. Per renderlo quindi “permanente” occorre modificare il file /etc/rc.local aggiungendo la seguente direttiva:

arp -s 192.168.1.5 50:46:5d:54:07:76

Alla prossima.