Linux: Amministrazione sistema, Documentazione, HowTo, Tutorial, Recensioni, Manuale, Programmi, Software
LinuxGuide.it - Amministrazione Linux, Documentazione, HowTo, Tutorial, Recensioni, FAQ, Guide, News, Open Source...
Amministrazione sistema
 Amministrazione sistema Fondamentis  Fondamentis
 Amministrazione sistema Ambiente di sistema  Ambiente di sistema
 Amministrazione sistema Comandi Linux  Comandi Linux
 Amministrazione sistema Boot loader  Boot loader
 Amministrazione sistema Filesystem  Filesystem
 Amministrazione sistema Backup  Backup
 Amministrazione sistema Gruppi e Utenti  Gruppi e Utenti
 Amministrazione sistema Permessi  Permessi
 Amministrazione sistema Archivi e file compressi  Archivi e file compressi
 Amministrazione sistema Pacchetti (rpm, deb...)  Pacchetti (rpm, deb...)
 Amministrazione sistema Periferiche  Periferiche
 Amministrazione sistema Autenticazione utenti  Autenticazione utenti
 Amministrazione sistema Rete  Rete
 Amministrazione sistema Servizi di Rete (Server)  Servizi di Rete (Server)
 Amministrazione sistema Sviluppo  Sviluppo
 
Tutorial & HowTo
 Tutorial & HowTo Applicazioni  Applicazioni
 Tutorial & HowTo Internet  Internet
 Tutorial & HowTo Rete  Rete
 
FAQ Linux
 FAQ Linux Amministrazione sistema  Amministrazione sistema
 FAQ Linux Reti e rete  Reti e rete
 FAQ Linux Programmi  Programmi
 FAQ Linux X Window System  X Window System
 FAQ Linux Applicazioni  Applicazioni
 FAQ Linux Stampa  Stampa
 FAQ Linux Editoria  Editoria
 FAQ Linux I Caratteri font  I Caratteri font
 FAQ Linux Immagini  Immagini
 FAQ Linux Masterizzazione  Masterizzazione
 FAQ Linux Audio  Audio
 FAQ Linux Programmazione  Programmazione
 FAQ Linux Hardware  Hardware
 
Recensioni
 Recensioni Anno 2008  Anno 2008
 
Software Linux
Software Linux Giochi  Giochi
Software Linux Grafica  Grafica
Software Linux Internet  Internet
Software Linux Multimedia  Multimedia
Software Linux Rete  Rete
Software Linux Server  Server
Software Linux Sicurezza  Sicurezza
Software Linux Sistema  Sistema
Software Linux Sviluppo  Sviluppo
 
News Letter
Per essere sempre aggiornato!
 
 
RSS Feed
News in tempo reale!
 
Seguici su Facebook
Unisciti al nostro Linux Facebook Group
 
Popular tags
 
 
 
 
 
 
 
Home page Amministrazione sistema Rete
Cerca:
 Categoria: Amministrazione sistema > Rete

Linux: VPN con IPSec/L2TP

 
è stato letto: 2029 volte
voto: 2 / 4
rating:
Vota OK questo articolo Vota KO questo articolo (vota questo articolo)
 
 
Condividiamo documentazione, howto, info, news, articoli, manuali linux Condividi questo documento su:
 

IPSec/L2TP




Introduzione
OpenSwan, rappresenta l'implementazione di IPSec su sistemi Linux.
In questa guida spiegheremo come configurare un Gateway VPN - IPSec L2TP con OpenSwan e L2TP.
Vedremo anche come configurare un client vpn con Microsoft Windows XP per la connessione in vpn attraverso un Gateway IPSec L2TP Linux.
Inoltre affronteremo anche l'argomento cross-authentication tra un sistema linux(nel nostro caso il vpn gateway) e un dominio Microsoft Windows, ossia vedremo come convalidare l'accesso di un utente alla VPN gestita da un sistema linux mediante autenticazione inoltrata su un Controller di Dominio Microsoft.

Installazione dei pacchetti
Per cominciare, occorre verificare la presenza dei seguenti pacchetti sul server:
openswan, l2tpd e ppp
nel caso in cui non fossero presenti bisogna installarli

Su Fedora/RedHat

# rpm -ivh openswan-2.4.4-1.1.2.1.i386.rpm
# rpm -ivh l2tpd-0.69-0.4.20051030.fc5
# rpm -ivh ppp-2.4.3-6.2.1.i386.rpm

è possibile scaricare gli ultimi pacchetti aggiornati, da http://rpm.pbone.net

Su Debian

# apt-get install openswan ppp rpm alien

Purtroppo su debian il pacchetto l2tpd e` ancora in fase "unstable", quindi abbiamo dovuto installare i pacchetti
"rpm" ed "alien" per poter convertire da .rpm a .deb il source l2tpd-0.69-0.2.20051030.al2.src.rpm

Convertiamo il pacchetto dal formato .rpm al formato .deb
1) scaricare il pacchetto source l2tpd con wget
# wget ftp://ftp.icm.edu.pl/vol/rzm/linux-aurora/aurora/extras/2/SRPMS/l2tpd-0.69-0.2.20051030.al2.src.rpm
2) # rpmbuild --rebuild l2tpd-0.69-0.2.20051030.al2.src.rpm
3) # alien /usr/src/rpm/RPMS/i386/l2tpd-0.69-0.2.20051030.i386.rpm
4) # dpkg -i l2tpd_0.69-1.2_i386.deb
a questo punto tutti i pacchetti sono stati installati.

Configurazione di IPSec.
In questa configurazione implementeremo un tunnel IPSec con Preshared Key(PSK), significa che entrambi
client e server condividono la medesima chiave(key) per l`autenticazione.

File di configurazione di IPSec:
/etc/ipsec.conf (file di configurazione principale)
/etc/ipsec.d/ipsec-psk.conf (file di configurazione del tunnel)
/etc/ipsec.secrets (file di configurazione delle preshared keys)

Configurate il file ipsec.conf come segue:

# /etc/ipsec.conf - Openswan IPsec configuration file version 2.0
# conforms to second version of ipsec.conf specification

# basic configuration
config setup
# Debug-logging controls: "none" for (almost) none, "all" for lots
# klipsdebug=none
# plutodebug="control parsing"
nat_traversal=yes

include /etc/ipsec.d/*.conf


Configurazione del tunnel ipsec-psk - /etc/ipsec.d/ipsec-psk.conf
Su /etc/ipsec.d va creato un file di configurazione per il nuovo tunnel chiamato ipsec-psk.conf con le seguenti direttive:

conn ipsec-psk
authby=secret
pfs=no
auto=add
keyingtries=3
rekey=no
left=%defaultroute
leftprotoport=17/1701
right=%any
rightprotoport=17/1701


Se desideriamo configurare altri tunnel, e` possibile farlo creando altri file specificando sulla direttiva
"conn ..." il nome del tunnel in maniera univoca.

Configurazione ipsec.secrets - /etc/ipsec.secrets
Qui andiamo a configurare la preshared-key sul file /etc/ipsec.secrets, chiaramente va configurato secondo
le proprie esigenze:

#IP_ADDRESS_SERVER %any : PSK "chiave-condivisa"
# esempio - accetta connessioni da qualsiasi peer
192.168.1.1 %ANY : PSK "L1nuXgu1D3"
# esempio - accetta connessioni solo dal peer specificato
192.168.1.1 192.168.1.90 : PSK "L1nuXgu1D3"


A questo punto IPSec e` pronto e possiamo avviare il servizio:

# /etc/init.d/ipsec start

Per verificare se IPSec e` pronto per ricevere richieste di connessioni, lanciare il seguente comando:

# ipsec auto --status

dovreste ottenere qualcosa del genere:
..... <omettiamo parte dell`output>...
000 "ipsec-l2tp": IP_ADDRESS_SERVER:17/1701---GATEWAY...%any:17/1701; unrouted; eroute owner: #0
000 "ipsec-l2tp": ike_life: 3600s; ipsec_life: 28800s; rekey_margin: 540s; rekey_fuzz: 100%; keyingtries: 3
000 "ipsec-l2tp": policy: PSK+ENCRYPT+TUNNEL+DONTREKEY; prio: 32,32; interface: eth1;
000 "ipsec-l2tp": newest ISAKMP SA: #0; newest IPsec SA: #0;
000 "ipsec-l2tp": IKE algorithms wanted: 5_000-1-5, 5_000-1-2, 5_000-2-5, 5_000-2-2, flags=-strict
000 "ipsec-l2tp": IKE algorithms found: 5_192-1_128-5, 5_192-1_128-2, 5_192-2_160-5, 5_192-2_160-2,
000 "ipsec-l2tp": ESP algorithms wanted: 3_000-1, 3_000-2, flags=-strict
000 "ipsec-l2tp": ESP algorithms loaded: 3_000-1, 3_000-2, flags=-strict
..... <omettiamo parte dell`output>...
 

Configurazione di L2TPD con autenticazione utenti su file locale(sconsigliato)
Qui occorre configurare L2TPD e PPP affinchè le connessioni "Layer 2 Tunnel Protocol" all`interno di IPSec possano avvenire.

Principali file di configurazione di L2TPD/PPP:
/etc/l2tpd.conf o /etc/l2tpd/l2tpd.conf
/etc/ppp/options.l2tpd
/etc/ppp/chap-secrets

Configurate il file /etc/l2pd.conf o /etc/l2tpd/l2tpd.conf come segue adattantolo alle vostre esigenze:

[global]
; listen-addr = 192.168.1.98
[lns default]
; range ip da assegnare ai client ppp che si collegano
ip range = 10.8.0.1-10.8.0.100
;indirizzo da assegnare al server sull`interfaccia ppp
local ip = 10.8.0.254
require chap = yes
require pap = yes
require authentication = yes
name = LinuxVPNserver
ppp debug = yes
pppoptfile = /etc/ppp/options.l2tpd
length bit = yes


Configurate il file /etc/ppp/options.l2tpd come segue adattantolo alle vostre esigenze:

ipcp-accept-local
ipcp-accept-remote
# dns server
ms-dns 192.168.5.4
ms-dns 192.168.1.3
# wins server
#ms-wins 192.168.1.2
#ms-wins 192.168.1.4
#
noccp
auth
crtscts
idle 1800
mtu 1410
mru 1410
nodefaultroute
debug
lock
proxyarp
connect-delay 5000
require-pap
require-chap
require-mschap
require-mschap-v2
noccp
nobsdcomp
logfile /var/log/l2tpd.log


poi creaimo il file di log per l2tpd:

# touch /var/log/l2tpd.conf


Configurazione del file /etc/ppp/chap-secrets.
All`interno di questo file, andiamo a specificare gli utenti che si autenticheranno via CHAP sul protocollo PPP per avere accesso alla VPN.
Supponiamo di creare quindi due utenti "user1" con password "pass1" e "user2" con password "pass2".

Il file andrà quindi configurato come segue:

 # Secrets for authentication using CHAP
# client server secret IP addresses
user1 * pass1 *
user2 * pass2 *


Questo ultimo tipo di autenticazione menzionato non e` certamente il massimo della sicurezza, non è scalabile e non permette la mutua autenticazione(cambio password da parte dell`utente), ma e` sicuramente un buon approcio per iniziare.

In alternativa è possibile utilizzare altri sistemi di autenticazione che offrono piu` sicurezza e scalabilita` come:

  • "Unix Authentication" che utilizza gli account locali del sistema(consigliato),
  • "Winbind" che puo` utilizzare gli account di un Dominio Microsoft Windows(consigliato).

Autenticazione di tipo "Unix Authentication"
E' sufficiente aggiungere la seguente direttiva all`interno del file di configurazione /etc/l2tpd/l2tpd.conf o /etc/l2tpd.conf:

unix authentication = yes


Autenticazione di tipo "Winbind" in cross-authentication
Se desideri implementare un sistema di autenticazione che consenta l'accesso alla VPN mediante autenticazione su Dominio Microsoft segui il seguente paragrafo, altrimenti saltalo.

Configura prima  Winbind come indicato su questa guida cliccando QUI e poi configura L2TPD con il supporto del plugin winbind.so


Configurazione di L2TPD per il supporto del plugin winbind.so

Se desideri implementare un sistema di autenticazione che consenta l'accesso alla VPN mediante autenticazione su Dominio Microsoft segui il seguente paragrafo, altrimenti saltalo.

Prima di procedere con la seguente configurazione devi aver configurato WINBIND

Configurate il file /etc/l2pd.conf o /etc/l2tpd/l2tpd.conf come segue adattantolo alle vostre esigenze:

[global]
; listen-addr = 192.168.1.98
[lns default]
; range ip da assegnare ai client ppp che si collegano
ip range = 10.8.0.1-10.8.0.100
;indirizzo da assegnare al server sull`interfaccia ppp
local ip = 10.8.0.254
require chap = no
require pap = no
require authentication = yes
name = LinuxVPNserver
ppp debug = yes
pppoptfile = /etc/ppp/options.l2tpd
length bit = yes


Configurate il file /etc/ppp/options.l2tpd come segue adattantolo alle vostre esigenze
:

ipcp-accept-local
ipcp-accept-remote
# dns server
ms-dns 192.168.5.4
ms-dns 192.168.1.3
# wins server
#ms-wins 192.168.1.2
#ms-wins 192.168.1.4
#
noccp
auth
crtscts
idle 1800
mtu 1410
mru 1410
nodefaultroute
debug
lock
proxyarp
connect-delay 5000
require-pap
require-chap
require-mschap
require-mschap-v2
noccp
nobsdcomp
logfile /var/log/l2tpd.log
plugin winbind.so
ntlm_auth-helper "/usr/bin/ntlm_auth --helper-protocol=ntlm-server-1"


Attivazione del routing IP
Infine e` necessario attivare l`IP Forwarding per l`inoltro dei pacchetti provenienti dalla VPN verso le reti interne.

Modificare sul file /etc/sysctl.conf la direttiva net.ipv4.ip_forward=1 (0 di default)
oppure lanciare il comando - non rende permanente l'impostazione dopo un reboot

# echo "1" > /proc/sys/net/ipv4/ip_forward


A questo punto il nostro Server VPN e` pronto per accettare connessioni IPSec/L2TP.

Troubleshooting:
I seguenti comandi sono utili per diagnosticare eventuali malfunzionamenti:

# ipsec auto --status
# tail -f /var/log/l2tpd.conf

Problemi con Access-list / Firewall
Se il vostro vpn server funge da firewall o ha davanti un firewall, ricordatevi ti aprire le seguenti porte/protocolli.
IKE usa la porta UDP 500. Il protocollo "ESP" di "IPSec" usa il Protocollo numero 50, il protocollo "AH" di "IPSec" usa il Protocollo numero 51, il servizio L2TPD usa la porta UDP 1701.
Dunque assicuratevi che eventuali access-list applicate, siano configurate cosi` che i protocolli 50, 51 e la porte UDP 500 e 1701 non vengano bloccate.

Ecco come eventualmente configurare iptables:
- Protocollo ESP di IPSec - ipv6-crypt

# /sbin/iptables -A INPUT -p 50 -j ACCEPT

- Protocollo AH di IPSec - ipv6-auth

# /sbin/iptables -A INPUT -p 51 -j ACCEPT

- Porta UDP 500 - ISAKMP

# /sbin/iptables -A INPUT -p udp --dport 500 -j ACCEPT

- Porta UDP 1701 - L2TPD

# /sbin/iptables -A INPUT -p udp --dport 1701 -j ACCEPT


Configurazione di un Client VPN IPSec/L2TP su Windows XP
Per configurare un client VPN IPSec/L2TP, consultare la seguente guida cliccando QUI

 
 
 
Ultimo aggiornamento: 2009-06-25 10:23:33
 
 
 
 
Lascia un commento
no obbligatorio, non sarà mai mostrato

 
 
»Home | About | Legale | Privacy | Pubblicità | Contatti