IPFire + Mikrotik –> IPsec tunel

Martin

Re:IPFire + Mikrotik –> IPsec tunel
« Odpověď #15 kdy: 31. 08. 2017, 21:20:37 »
V logu je podezřelé:
10:22:56 charon:  07[IKE] IDir '10.109.84.145' does not match to '172.217.23.206'
10:22:56 charon:  07[IKE] deleting IKE_SA tunel01[101] between 192.168.13.99[192.168.13.99]...172.217.23.206[%any]
10:22:56 charon:  07[IKE] deleting IKE_SA tunel01[101] between 192.168.13.99[192.168.13.99]...172.217.23.206[%any]
...
10:23:55 charon:  07[CFG] looking for pre-shared key peer configs matching 192.168.13.99...172.217.23.206[10.109.84.145]


Co je za IP adresu ta 10.109.84.145? V zadání není uvedena. Vyskytuje se někde v konfiguraci? V nastavení IPSecu není a proto je příchozí požadavek odmítnut, očekává se identifikátor 172.217.23.206.
 
IDir je patrně identifikátor druhé strany tunelu. https://doc.pfsense.org/index.php/IPsec_Troubleshooting:

To correct this condition, change the Peer Identifier setting to IP Address and then enter the pre-NAT IP address, which in this example is 192.0.2.10.

S tímto parametrem nemám zkušenost, tunely jsem řešil bez NATu, aspoň jeden prvek měl vždy veřejnou IP adresu na sobě. Jednou jsem řešil něco s OpenSwan, můžete sem dát konfig?


LukasD

Re:IPFire + Mikrotik –> IPsec tunel
« Odpověď #16 kdy: 01. 09. 2017, 06:47:46 »
Je tedy potřeba přidat nějaké pravidlo pro NAT nebo nějakou routu?

Uměl by někdo zkusit vysvětlit, proč ten Mikrotik funguje a IPFire ne?

LukasD

Re:IPFire + Mikrotik –> IPsec tunel
« Odpověď #17 kdy: 01. 09. 2017, 07:01:47 »
V logu je podezřelé:
10:22:56 charon:  07[IKE] IDir '10.109.84.145' does not match to '172.217.23.206'
10:22:56 charon:  07[IKE] deleting IKE_SA tunel01[101] between 192.168.13.99[192.168.13.99]...172.217.23.206[%any]
10:22:56 charon:  07[IKE] deleting IKE_SA tunel01[101] between 192.168.13.99[192.168.13.99]...172.217.23.206[%any]
...
10:23:55 charon:  07[CFG] looking for pre-shared key peer configs matching 192.168.13.99...172.217.23.206[10.109.84.145]


Co je za IP adresu ta 10.109.84.145? V zadání není uvedena. Vyskytuje se někde v konfiguraci? V nastavení IPSecu není a proto je příchozí požadavek odmítnut, očekává se identifikátor 172.217.23.206.
 
IDir je patrně identifikátor druhé strany tunelu. https://doc.pfsense.org/index.php/IPsec_Troubleshooting:

To correct this condition, change the Peer Identifier setting to IP Address and then enter the pre-NAT IP address, which in this example is 192.0.2.10.

S tímto parametrem nemám zkušenost, tunely jsem řešil bez NATu, aspoň jeden prvek měl vždy veřejnou IP adresu na sobě. Jednou jsem řešil něco s OpenSwan, můžete sem dát konfig?

Adresa 10.109.84.145 je podle zadání 10.10.20.99, přehlédl jsem jí, ostatní adresy vkládám tak, že je měním pomocí fce najít a nahradit.

M.

Re:IPFire + Mikrotik –> IPsec tunel
« Odpověď #18 kdy: 01. 09. 2017, 07:57:22 »
Obecný problém té konfigurace je v tom, že pakety, co odesíláš, tak používáš v definici IPsec peera a SPD protistrany veřejné IP protistrany a co prijimáš, po vybalení z NAT-T, tak mají vnitřní IPčka protistrany, takže ti je nenajde v definici peera/spd, pokud je to definováno s těma veřejkama a na to ti to řve.
Můžeš zkusit, že nebudeš IPSec nastavovat mezi těma veřejkama 172.217.23.195..172.217.23.206, ale nastaviš jako oba konce ty neveřejky, co máš na WAN portech 192.168.13.99..10.10.20.99. A k tomu doplníš, routu, že ta vnitřní IP protistrany se routuje na adresu tvé aktuální brány a zároveň, že pro tu vnitřní IP adresy protistrany provdedeš DSTNAT na odchozí provoz stylem 10.10.20.99->172.217.23.206 na její veřejku. A na druhé straně to stejné pro ty IPčka 192.168.13.99->172.217.23.195 (routu a dst nat).
Jiná možnost jak to ojebat (pokud to ten IPFire dovolí), tak je eliminovat to NAT-T a dosáhnout pocitu, že mám veřejky přímo na routeru. Pokud máš NAT 1:1 na obou stranách, tak si udělám virtuální loopback interface na routeru, tomu dám tu skutečnou veřejku/32 a provádím SRC/DSTNAT pro tu veřejku z loopbacku na neveřejku na daném wan portu a pak nastavuji IPsec s koncy těch veřejek a nedojde k aplikaci NAT-T.

LukasD

Re:IPFire + Mikrotik –> IPsec tunel
« Odpověď #19 kdy: 01. 09. 2017, 08:07:20 »
S tímto parametrem nemám zkušenost, tunely jsem řešil bez NATu, aspoň jeden prvek měl vždy veřejnou IP adresu na sobě. Jednou jsem řešil něco s OpenSwan, můžete sem dát konfig?
Chtěl bych více pochopit to, jak je to s tou veřejnou IP adresou, když použiji ty co mi ISP přidělil v Mikrotiku, tak se tunel naváže v pořádku a když to zkouším s IPFire, tak to nefunguje.
Jaký zásadní rozdíl je mezi normální veřejnou IP a veřejnou IP pomocí NAT 1:1 od poskytovatele? To by nás mohlo přivést k vyřešení tohoto problému.
IPFire mám nastavený správně(parametry), když tunel vytvořím IPFire+Mikrotik na stejné lokální síti, tak se naváže hned bez chyb. Neporadí si jen s překladem těch veřejných adres které jsou od ISP pravděpodobně NAT 1:1.


M.

Re:IPFire + Mikrotik –> IPsec tunel
« Odpověď #20 kdy: 01. 09. 2017, 08:23:24 »
IPsec vkládá dovnitř komunikace svoji IP, při navazování spojení pomocí IKE protokolu. Takže odejde paket, který uvnitř má napsáno, že moje IP je X, dojde protistraně  ta vidí, že paket přišel se zdrojovou adresou Y, která se liší od toho, co je uvnitř paketu.
Pokud není NAT u protistrany použit, tak ti dojde IKE paket, kde je zdrojová adresa stejná s tou, co je uvedeno uvnitř protokolu (třeba obě budou 172.217.23.206) a tvým partnerem pro IPsec komunkci je stroj s IP 172.217.23.206.
Ale pokud je u protistrany NAT, tak ti dojde paket, kde je zdrojová IP aresa na paketu je třeba 172.217.23.206, ale uvnitř protokolu to tvrdí, že tvým partnerem je 10.10.20.99. A IPsec se konfiguruje a logicky sestavuje proti té vnitřní adrese 10.10.20.99.
Pokud je takto pojebána NATem jen jedna strana, je to OK, pokud obě, tak se to kapánek komplikuje.

LukasD

Re:IPFire + Mikrotik –> IPsec tunel
« Odpověď #21 kdy: 01. 09. 2017, 08:43:20 »
A k tomu doplníš, routu, že ta vnitřní IP protistrany se routuje na adresu tvé aktuální brány a zároveň, že pro tu vnitřní IP adresy protistrany provdedeš DSTNAT na odchozí provoz stylem 10.10.20.99->172.217.23.206 na její veřejku

Začíná to vypadat, že se blížíme ke zdárnému konci s úspěšným řešením. S routami zatím moc nepracuji ale chtěl bych se to pořádně naučit, koupím nějaké knížky a budu číst co se dá.
V tuhle chvíli, poradil by si prosím přesněji jak budou vypadat příkazy pro routu na tu aktuální bránu a zároveň routu pro tu vnitřní IP protistrany jak si psal výše?

M.

Re:IPFire + Mikrotik –> IPsec tunel
« Odpověď #22 kdy: 01. 09. 2017, 09:06:23 »
Prvně bych zkusil nastavit na té IPfire straně správně identifikátor té protistrany v definici IPsecu. Posílal to už kolega výše. To by ten dopad NATu protistrany také měl řešit:
https://doc.pfsense.org/index.php/IPsec_Troubleshooting#Mismatched_Identifier_with_NAT

LukasD

Re:IPFire + Mikrotik –> IPsec tunel
« Odpověď #23 kdy: 01. 09. 2017, 09:38:12 »
Prvně bych zkusil nastavit na té IPfire straně správně identifikátor té protistrany v definici IPsecu. Posílal to už kolega výše. To by ten dopad NATu protistrany také měl řešit:
https://doc.pfsense.org/index.php/IPsec_Troubleshooting#Mismatched_Identifier_with_NAT

Nejsem si jistý, zdali přesně rozumím tomuto:
To correct this condition, change the Peer Identifier setting to IP Address and then enter the pre-NAT IP address, which in this example is 192.0.2.10.

Když na straně IPFire nastavím pro peers (Remote host/IP: 10.10.20.99) namísto 172.217.23.206 tak se stane následující, z konzole IPFire vyčteno:

sending packet: from 192.168.13.99[500] to 10.10.20.99[500] (200 bytes)
received packet: from 172.217.23.206[500] to 192.168.13.99[500] (348 bytes)

a jak bych tušil, nefunguje to.

Přikládám kus logu:

Kód: [Vybrat]
09:24:20 charon:  15[CFG] added configuration 'test001'
09:24:20 charon:  04[CFG] received stroke: initiate 'test001'
09:24:20 charon:  04[IKE] initiating Main Mode IKE_SA test001[172] to 10.10.20.99
09:24:20 charon:  04[IKE] initiating Main Mode IKE_SA test001[172] to 10.10.20.99
09:24:20 charon:  04[ENC] generating ID_PROT request 0 [ SA V V V V V V ]
09:24:20 charon:  04[NET] sending packet: from 192.168.13.99[500] to 10.10.20.99[500] (200 bytes)
09:24:20 charon:  03[NET] error writing to socket: Operation not permitted
09:24:20 charon:  05[CFG] received stroke: initiate 'test001'
09:24:24 charon:  07[IKE] sending retransmit 1 of request message ID 0, seq 1
09:24:24 charon:  07[NET] sending packet: from 192.168.13.99[500] to 10.10.20.99[500] (200 bytes)
09:24:24 charon:  03[NET] error writing to socket: Operation not permitted
09:24:31 charon:  12[IKE] sending retransmit 2 of request message ID 0, seq 1
09:24:31 charon:  12[NET] sending packet: from 192.168.13.99[500] to 10.10.20.99[500] (200 bytes)
09:24:31 charon:  03[NET] error writing to socket: Operation not permitted
09:24:33 charon:  15[NET] received packet: from 172.217.23.206[500] to 192.168.13.99[500] (348 bytes)
09:24:33 charon:  15[ENC] parsed ID_PROT request 0 [ SA V V V V V V V V V V V V V ]
09:24:33 charon:  15[IKE] no IKE config found for 192.168.13.99...172.217.23.206, sending NO_PROPOSAL_CHOSEN
09:24:33 charon:  15[ENC] generating INFORMATIONAL_V1 request 2902255063 [ N(NO_PROP) ]
09:24:33 charon:  15[NET] sending packet: from 192.168.13.99[500] to 172.217.23.206[500] (40 bytes)
09:24:43 charon:  04[NET] received packet: from 172.217.23.206[500] to 192.168.13.99[500] (348 bytes)
09:24:43 charon:  04[ENC] parsed ID_PROT request 0 [ SA V V V V V V V V V V V V V ]
09:24:43 charon:  04[IKE] no IKE config found for 192.168.13.99...172.217.23.206, sending NO_PROPOSAL_CHOSEN
09:24:43 charon:  04[ENC] generating INFORMATIONAL_V1 request 1951789508 [ N(NO_PROP) ]
09:24:43 charon:  04[NET] sending packet: from 192.168.13.99[500] to 172.217.23.206[500] (40 bytes)
09:24:44 charon:  09[IKE] sending retransmit 3 of request message ID 0, seq 1
09:24:44 charon:  09[NET] sending packet: from 192.168.13.99[500] to 10.10.20.99[500] (200 bytes)
09:24:44 charon:  03[NET] error writing to socket: Operation not permitted

Co kdybychom to zkusili přes ty routy a DSTNAT, poradili byste jak budou přesněji vypadat příkazy pro tu routu a pro dstnat?

M.

Re:IPFire + Mikrotik –> IPsec tunel
« Odpověď #24 kdy: 01. 09. 2017, 09:47:42 »
Prvně bych zkusil nastavit na té IPfire straně správně identifikátor té protistrany v definici IPsecu. Posílal to už kolega výše. To by ten dopad NATu protistrany také měl řešit:
https://doc.pfsense.org/index.php/IPsec_Troubleshooting#Mismatched_Identifier_with_NAT

Nejsem si jistý, zdali přesně rozumím tomuto:
To correct this condition, change the Peer Identifier setting to IP Address and then enter the pre-NAT IP address, which in this example is 192.0.2.10.

Když na straně IPFire nastavím pro peers (Remote host/IP: 10.10.20.99) namísto 172.217.23.206 tak se stane následující, z konzole IPFire vyčteno:

sending packet: from 192.168.13.99[500] to 10.10.20.99[500] (200 bytes)
received packet: from 172.217.23.206[500] to 192.168.13.99[500] (348 bytes)

a jak bych tušil, nefunguje to.

Ach jo, ten popis je snad jasný.  Remote host samozřejmě zůstavá ta veřejka 172.217.23.206, ale je tam někde i volba "Peer Identifier" a tu je třeba dát na tu 10.10.20.99.

LukasD

Re:IPFire + Mikrotik –> IPsec tunel
« Odpověď #25 kdy: 01. 09. 2017, 10:02:40 »
Tak všem moc děkuji za pomoc, problém vyřešen, již to funguje.

Opravdu stačilo správně nastavit identifikátor protistrany, konkrétně v IPFire to je"Remote ID:" v pfsense to je "Peer Identifier".

LukasD

Re:IPFire + Mikrotik –> IPsec tunel
« Odpověď #26 kdy: 01. 09. 2017, 10:31:52 »
Ještě prosím o jednu úvahu, připojuji se k síti, která je rozsáhlá, 10.109.84.0/24, 10.109.255.0/24.

Jak vytvořím spojení na všechny, je to nějak možné?

Zatím to mám nastaveno jen pro
Remote subnet: 10.109.84.0/24 
...jak to nastavit abych byl ve všech sítích 10.109.*.0 ?

M.

Re:IPFire + Mikrotik –> IPsec tunel
« Odpověď #27 kdy: 01. 09. 2017, 11:27:46 »
Zatím to mám nastaveno jen pro
Remote subnet: 10.109.84.0/24 
...jak to nastavit abych byl ve všech sítích 10.109.*.0 ?
Remote subnet: 10.109.0.0/16
Za předpokladu, že lokální segment není v tom /16 zahrnut (či-li lokální LAN nepoužívá třeba 10.109.66.0/24).