CREATE A VPN OVER SSH WITH PPP Hal
CREATE A VPN OVER SSH WITH PPP Table of Contents 1) INTRODUZIONE...1 1.1 COSA SERVE?...1 2) INSTALLAZIONE & CONFIGURAZIONE...2 2.1 INSTALLAZIONE...2 2.2 CONFIGURAZIONE...2 3) TODO...4 4) REFERENCE...5 4.1 AUTHORS...5 4.2 LINKS...5 i
1) INTRODUZIONE Prima di tutto che cos'e' una VPN? Il termina inglese identifica un acronimo per: Virtual Private Network ovvero Rete Virtuale Privata. Praticamente e' una connessione, che solitamente usa internet, per far passare dati fra 2 o piu' computer in modo sicuro; evitando che chiunque malintenzionato riesca a leggere i dati trasmessi. A chi puo' servire? Beh a tutti quelli che hanno 2 computer remoti e vogliono trasmettere dati in modo "sicuro" e comodo. La soluzione che vi propongo usa software standard reperibile per la tutti i sistemi operativi Unix e Unix Like oggi disponibili. 1.1 COSA SERVE? Root account SSH Server e client PPP Sudo 1) INTRODUZIONE 1
2) INSTALLAZIONE & CONFIGURAZIONE 2.1 INSTALLAZIONE Prima di tutto e' necessario avere l'accesso di root sulle proprie macchine! Se non lo avete! AhiAHiAHi Installate openssh su gli host che volete mettere in comunicazione; con altre versioni di ssh il tutto dovrebbe funzionare senza problemi ma non l'ho mai testato. Sudo e' inceve necessario solo sull'host Server, quello che riceve la connessione. 2.2 CONFIGURAZIONE LATO CLIENT Crea la coppia di chiavi pubblica/privata; la chiave pubblica dovra' essere messa sul server per permettere di collegarsi al server senza password. ssh keygen t rsa b 2048 LATO SERVER Crea un gruppo ed un utente personalizzato per la vpn; l'utente dovra' essere diverso tra i vari utenti a cui si vuole dare l'accesso: groupadd vpnuser useradd g vpnuser d /home/vpnuser s /home/vpnuser/connect vpnuser Abilita il gruppo vpnuser a lanciare il Cmnd_Alias VPN senza password aggiungendo le seguenti linee al file sudoers; usa il comando visudo da root se disponibile. Cmnd_Alias VPN=/usr/sbin/pppd, /sbin/route %vpnuser ALL=NOPASSWD:VPN Inserisci lo scriprt di connessione nella lista di shell valide cat /home/vpnuser/connect >> /etc/shells Sistema i permessi della home directory e della shell connect in modo che l'utente non possa scrivere nella directory ma possa solo eseguire la shell connect. chmod 500 /home/vpnuser chmod 500 /home/vpnuser/connect Inserisci la chiave pubblica dell'utente prima generata mkdir /home/vpnuser/connect/.ssh cat id_rsa.pub >> /home/vpnuser/connect/.ssh/authorized_keys Crea lo script di connessione "/home/vpnuser/connect" che deve essere personalizzato per ogni utente. #!/bin/bash /usr/bin/sudo /usr/sbin/pppd noauth lock 192.168.252.2:192.168.252.1 # eventuale routing remoto per abilitare la comunicazioni delle 2 diverse reti. exit 0 Lo script deve essere di root e non editabile dall'utente; gli ip devono essere cambiati per ogni utente. chown root:root /home/vpnuser/connect chmod 555 /home/vpnuser/connect LATO CLIENT 2) INSTALLAZIONE & CONFIGURAZIONE 2
CREATE A VPN OVER SSH WITH PPP Abilita il tuo utente a lanciare ppp e route senza la necessita' di diventare root. Usa il comando visudo da root se disponibile. User_Alias TEST = test Cmnd_Alias VPN=/usr/sbin/pppd, /sbin/route TEST ALL=NOPASSWD:VPN Dal tuo utente lancia la stringa di connessione /usr/bin/sudo /usr/sbin/pppd noauth debug dump logfd 2 passive updetach name vpn client linkname vpn pty '/usr/bin/ssh p 53 l vpnuser t SERVER_REMOTO C' A questo punto aggiungi le rotte che ti servono per far passare il traffico che vuoi attraverso il canale criptato: # MSN ROUTE sudo /sbin/route add net 65.54.0.0 netmask 255.255.0.0 gw 192.168.252.1 sudo /sbin/route add net 207.46.0.0 netmask 255.255.255.0 gw 192.168.252.1 # YAHOO ROUTE sudo /sbin/route add net 216.155.193.0 netmask 255.255.255.0 gw 192.168.252.1 # VODAFONE MAIL sudo /sbin/route add popmail.vodafone.it gw 192.168.252.1 # MAIL SUPEREVA sudo /sbin/route add mail.supereva.it gw 192.168.252.1 #YAHOO MAIL sudo /sbin/route add pop.mail.yahoo.it gw 192.168.252.1 # LIBERO MAIL sudo /sbin/route add popmail.libero.it gw 192.168.252.1 sudo /sbin/route add smtp.libero.it gw 192.168.252.1 ## LDAP sudo /sbin/route add ils.seconix.com gw 192.168.252.1 ## dict.org sudo /sbin/route add dict.org gw 192.168.252.1 2.2 CONFIGURAZIONE 3
3) TODO 3) TODO 4
4) REFERENCE 4.1 AUTHORS Hal 4.2 LINKS Sudo PPP Home Page PPP SSH VPN on TLDP 4) REFERENCE 5