Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[OpenBSD] IPSEC, doutes sur ipsecadm flow -src et -dst

2 réponses
Avatar
cplasschaert
Bonjour,
Voila en essayant IPSEC sous OpenBSD et aprés lecture de la RFC 2401
je ne suis pas certain de comprendre les options -src et -dst de
ipsecadm flow.

Pour faire les liaisons entre les SPDs et les SAs, la RFC indique
que l'on se base sur un triplet SPI/adresse de destination/protocol.

L'exemple donné dans vpn.8 en mode manuel est le suivant:
Les SAs:

SA1 # ipsecadm new esp -src $GATEWAY_A -dst $GATEWAY_B \
-spi $SPI_AB -forcetunnel -enc 3des -auth sha1 \
-keyfile $ENCRYPTION_KEY_FILE \
-authkeyfile $AUTHENTICATION_KEY_FILE

SA2 # ipsecadm new esp -src $GATEWAY_B -dst $GATEWAY_A \
-spi $SPI_BA -forcetunnel -enc 3des -auth sha1 \
-keyfile $ENCRYPTION_KEY_FILE \
-authkeyfile $AUTHENTICATION_KEY_FILE


Les SPDs:
sur la passerelle du réseau A
flowA1 # ipsecadm flow -out -require -proto esp \
-src $GATEWAY_A -dst $GATEWAY_B \
-addr $NETWORK_A $NETWORK_B
flowA2 # ipsecadm flow -in -require -proto esp \
-src $GATEWAY_A -dst $GATEWAY_B \
-addr $NETWORK_B $NETWORK_A

sur la passerelle du réseau B

flowB1 # ipsecadm flow -out -require -proto esp \
-src $GATEWAY_B -dst $GATEWAY_A \
-addr $NETWORK_B $NETWORK_A
flowB2 # ipsecadm flow -in -require -proto esp \
-src $GATEWAY_B -dst $GATEWAY_A \
-addr $NETWORK_A $NETWORK_B

avec

GATEWAY_A = "192.168.1.13"
GATEWAY_B = "192.168.1.15"
NETWORK_A = "10.0.50.0/24"
NETWORK_B = "10.0.99.0/24"

De quelle manière sont mappés les SA par rapport aux SPDS ?
Se base-t'on sur la route définie par -addr ou sur la destination
donnée par -dst ?

Si vous avez une idée, je suis preneur.

C. Plasschaert

2 réponses

Avatar
cplasschaert
Rebonjour,

Je complètes mon interrogation.

cplasschaert writes:

Bonjour,
Voila en essayant IPSEC sous OpenBSD et aprés lecture de la RFC 2401
je ne suis pas certain de comprendre les options -src et -dst de
ipsecadm flow.

Pour faire les liaisons entre les SPDs et les SAs, la RFC indique
que l'on se base sur un triplet SPI/adresse de destination/protocol.

L'exemple donné dans vpn.8 en mode manuel est le suivant:
Les SAs:

SA1 # ipsecadm new esp -src $GATEWAY_A -dst $GATEWAY_B
-spi $SPI_AB -forcetunnel -enc 3des -auth sha1
-keyfile $ENCRYPTION_KEY_FILE
-authkeyfile $AUTHENTICATION_KEY_FILE

SA2 # ipsecadm new esp -src $GATEWAY_B -dst $GATEWAY_A
-spi $SPI_BA -forcetunnel -enc 3des -auth sha1
-keyfile $ENCRYPTION_KEY_FILE
-authkeyfile $AUTHENTICATION_KEY_FILE


Les SPDs:
sur la passerelle du réseau A
flowA1 # ipsecadm flow -out -require -proto esp
-src $GATEWAY_A -dst $GATEWAY_B
-addr $NETWORK_A $NETWORK_B

flowA2 # ipsecadm flow -in -require -proto esp
-src $GATEWAY_A -dst $GATEWAY_B
-addr $NETWORK_B $NETWORK_A

sur la passerelle du réseau B

flowB1 # ipsecadm flow -out -require -proto esp
-src $GATEWAY_B -dst $GATEWAY_A
-addr $NETWORK_B $NETWORK_A
flowB2 # ipsecadm flow -in -require -proto esp
-src $GATEWAY_B -dst $GATEWAY_A
-addr $NETWORK_A $NETWORK_B

avec

GATEWAY_A = "192.168.1.13"
GATEWAY_B = "192.168.1.15"
NETWORK_A = "10.0.50.0/24"
NETWORK_B = "10.0.99.0/24"



Depuis mon précédant post, j'ai regardé avc tcpdump les paquets
ainsi que leurs SPIs associés.

J'ai constaté le fonctionnement que j'attendais. C'est à dire
que les paquets en provenance de la GATEWAY_A ont bien un SPI
SPI_AB et ceux provenant de la GATEWAY_B ont bien leur SPI mis
à SPI_BA.

De quelle manière sont mappés les SA par rapport aux SPDS ?
Se base-t'on sur la route définie par -addr ou sur la destination
donnée par -dst ?


Donc, le choix du SA en émission (-out) se fait bien avec les
options -dst et -src (cf. les commandes flowA1 et flowB1).

Par contre, je suis toujours ennuyé avec les commandes flowA2
et flowB2 en ingress.

Par exemple,

flowA2 # ipsecadm flow -in -require -proto esp
-src $GATEWAY_A -dst $GATEWAY_B
-addr $NETWORK_B $NETWORK_A

devrait dire que seul les paquets utilisant esp en provenance du
réseaux B pour aller vers le réseaux A et utilisant le SPI_AB
sont autorisés.
Mais pourtant je constate (et cela me parait logique) que les
paquets en question ont un SPI_BA.

Quelqu'un à une idée ?

C. Plasschaert

Avatar
cplasschaert
cplasschaert writes:

Par contre, je suis toujours ennuyé avec les commandes flowA2
et flowB2 en ingress.

Par exemple,

flowA2 # ipsecadm flow -in -require -proto esp
-src $GATEWAY_A -dst $GATEWAY_B
-addr $NETWORK_B $NETWORK_A

devrait dire que seul les paquets utilisant esp en provenance du
réseaux B pour aller vers le réseaux A et utilisant le SPI_AB
sont autorisés.
Mais pourtant je constate (et cela me parait logique) que les
paquets en question ont un SPI_BA.

Quelqu'un à une idée ?


Aprés une énième lecture des man, je pense avoir trouvé dans
ipsecadm.8.

flow Create a flow determining what security parameters a packet
should have (input or output). Allowed modifiers are: -src,
-dst, -proto, -addr, -transport, -sport, -dport, -delete, -in,
-out, -srcid, -dstid, -srcid_type, -dstid_type, -acquire,
-require, -dontacq, -use, -bypass, -permit and -deny.

The netstat(1) command shows all specified flows.

Flows are directional, and the -in and -out modifiers are used
to specify the direction. By default, flows are assumed to
apply to outgoing packets. The kernel will attempt to find an
appropriate Security Association from those already present (an
SA that matches the destination address, if set, and the secu­
rity protocol). If the destination address is set to all zeroes
(0.0.0.0) or left unspecified, the destination address from the
packet will be used to locate an SA (the source address is used
for incoming flows).
-> For incoming flows, the destination address (if specified)
-> should point to the expected source of the SA (the remote
-> SA peer).

Ce qui voudrait dire que lorsque l'on crée un SPD de type ingress
filter avec 'ipsecadm flow -in' l'argument de l'option -dst doit
être le même que l'argument de l'option -src du SA correspondant.

Quelqu'un pour confirmer ?