[ITNOG] Strongswan (server) e VTI

Marco Marzetti marco@lamehost.it
Lun 22 Giu 2015 22:48:19 CEST


On 06/20/2015 10:09 AM, Andrea Costantino wrote:
> Sui kernel recenti c'è un hook attraverso Fw marking per fare questa cosa, ma è complicata e decisamente meno elegante.
>
> La soluzione che funziona da subito su tutte le distro è GRE over IPSEC. Puoi fare un tunnel GRE e poi proteggerlo con IPSEC.
>
> Più overhead, ma semplice.
>
>

Ciao,

Oggi c'ho lavorato un paio d'ore e QUASI tutto funziona.

IOS:
!
crypto isakmp policy 10
  encr aes
  authentication pre-share
  group 2
crypto isakmp key <secret> address 0.0.0.0 0.0.0.0
!
!
crypto ipsec transform-set casa esp-aes esp-sha-hmac
!
crypto ipsec profile casa
  set transform-set casa
  set pfs group2
!
interface Tunnel0
  ip address 192.168.2.1 255.255.255.252
  tunnel source Dialer0
  tunnel mode ipsec ipv4
  tunnel destination <ip linux box>
  tunnel protection ipsec profile casa
!

ipsec.conf:
config setup
         nat_traversal=yes
         plutostart=no

conn %default
         ikelifetime=60m
         keylife=20m
         rekeymargin=3m
         keyingtries=1
         keyexchange=ikev1

conn casa
         right=<linux box ip>
         rightsubnet=0.0.0.0/0
         rightid=linux.box.id
         rightauth=psk
         left=%any
         leftsubnet=0.0.0.0/0
         leftauth=psk
         auto=start
         ike=aes128-sha1-modp1024
         esp=aes-sha1-modp2048,aes-sha1-modp1024
         mark=2

bash linux box:
modprobe ip_vti
ip tunnel add vti0 mode vti local <ip linux box> remote <ip cisco> key 2
ip link set vti0 up
ip address add 192.168.2.2/30 dev vti0
echo 0 > /proc/sys/net/ipv4/conf/vti0/rp_filter
echo 1 > /proc/sys/net/ipv4/ip_forward

Così facendo il tunnel sale ed un ICMP echo spedito dalla linux box 
arriva al cisco che risponde correttamente.
Ciò che non va è che la box linux riceve il reply, ma lo ignora ed, allo 
stesso modo, ignora tutti i pacchetti che entrano nel tunnel.

La cosa per me inspigabile è che li vedo perfino passare nel tunnel 
tramite tcpdump.

Un controllo dei counters non mostra pacchetti droppati, non riesco a 
capire dove sia l'errore.

A qualcuno viene un'idea?

Grazie



Maggiori informazioni sulla lista itnog