User Tools

Site Tools


doc:appunti:linux:sa:ipsec_strongswan

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
doc:appunti:linux:sa:ipsec_strongswan [2021/02/05 16:44] – [Verifica stato della connessione] niccolodoc:appunti:linux:sa:ipsec_strongswan [2024/05/03 16:37] – [File di configurazione] niccolo
Line 12: Line 12:
  
 ===== File di configurazione ===== ===== File di configurazione =====
 +
 +Qesti gli indirizzi IP coinvolti:
 +
 +  * **Lato Left (host locale)**
 +    * IP pubblico: **132.82.168.98**
 +    * Classe IP privata: **172.17.48.96/29** (broadcast 172.17.48.103)
 +  * **Lato Right (host remoto)**
 +    * IP pubblico: **134.191.21.5**
 +    * Classe IP privata: **172.17.48.80/28** (broadcast 172.17.48.95)
  
 **/etc/ipsec.conf** **/etc/ipsec.conf**
Line 56: Line 65:
         dpdtimeout=120s         dpdtimeout=120s
         dpdaction=restart         dpdaction=restart
 +        closeaction=restart
 +</file>
 +
 +L'opzione ''closeaction=restart'' dovrebbe servire a far ripartire la connessione nel caso in cui il remote invii un segnale **DELETE**, altrimenti si rischia che la connessione termini con questo log e non riparta più:
 +
 +<file>
 +charon: 07[IKE] received DELETE for IKE_SA office1-office2[5]
 +charon: 07[IKE] deleting IKE_SA office1-office2[5]
 +                between 132.82.168.98[213.182.68.98]...134.191.21.5[134.191.21.5]
 +ipsec[30830]: 07[IKE] received DELETE for IKE_SA office1-office2[5]
 +ipsec[30830]: 07[IKE] deleting IKE_SA office1-office2[5]
 +              between 132.82.168.98[213.182.68.98]...134.191.21.5[134.191.21.5]
 </file> </file>
  
Line 66: Line 87:
 # ------- Site 2 Gateway (office2-office1) ------- # ------- Site 2 Gateway (office2-office1) -------
 134.191.21.5 132.82.168.98 : PSK "de66979eaa77587d6b0e74d5bf871565" 134.191.21.5 132.82.168.98 : PSK "de66979eaa77587d6b0e74d5bf871565"
 +</file>
 +
 +====== Host remoto (right) dietro NAT ======
 +
 +Se l'host remoto è dietro NAT è necessario cambiare la configurazione, altrimenti la SA non si stabilisce e nei log si trova qualcosa del genere:
 +
 +<code>
 +ipsec[21090]: 05[NET] received packet: from 134.191.21.5[4500] to 213.182.68.98[4500] (224 bytes)
 +ipsec[21090]: 05[ENC] parsed IKE_AUTH response 1 [ IDr AUTH N(MSG_ID_SYN_SUP) SA TSi TSr ]
 +ipsec[21090]: 05[IKE] authentication of '10.151.252.18' with pre-shared key successful
 +ipsec[21090]: 05[CFG] constraint check failed: identity '134.191.21.5' required
 +ipsec[21090]: 05[CFG] selected peer config 'office1-office2' unacceptable: constraint checking failed
 +ipsec[21090]: 05[CFG] no alternative config found
 +</code>
 +
 +Si vede che l'host remoto ha indirizzo IP 10.151.252.18, ma si presenta dietro NAT dall'IP 134.191.21.5. Nonostante la pre-shared key sia corretta, il controllo di identità dell'host remoto viene considerato fallito.
 +
 +Anche questo messaggio è esplicativo: il match dell'host remoto con **IP_pubblico[IP_privato]** fallisce:
 +
 +<code>
 +ipsec[21090]: 09[CFG] looking for peer configs matching 132.82.168.98[%any]...134.191.21.5[10.151.252.18]
 +ipsec[21090]: 09[CFG] no matching peer config found
 +</code>
 +
 +Nel file di configurazione **office1-office2.conf** va aggiunta l'opzione **rightid** per identificare l'host remoto con il suo IP privato:
 +
 +<file>
 +    right=134.191.21.5
 +    rightid=10.151.252.18
 +    rightsubnet=172.17.50.192/28
 +</file>
 +
 +e quindi nel file delle PSK si deve mettere l'IP privato:
 +
 +<file>
 +# ------- Site 1 Gateway (office1-office2) -------
 +132.82.168.98 10.151.252.18 : PSK "de66979eaa77587d6b0e74d5bf871565"
 +
 +# ------- Site 2 Gateway (office2-office1) -------
 +10.151.252.18 132.82.168.98 : PSK "de66979eaa77587d6b0e74d5bf871565"5"
 </file> </file>
  
Line 77: Line 138:
 ACCEPT   net:134.191.21.5    $FW    udp     4500 ACCEPT   net:134.191.21.5    $FW    udp     4500
 </file> </file>
 +
 +**ATTENZIONE**: In effetti la porta **4500/UDP** viene usata solo se il traffico IPsec deve attraversare qualche apparato che fa **NAT** e che non potrebbe trasportare il protocollo ESP (che non ha porte). In tal caso il traffico ESP viene incapsulato in pacchetti UDP con la porta 4500.
  
 **/etc/shorewall/tunnels** **/etc/shorewall/tunnels**
doc/appunti/linux/sa/ipsec_strongswan.txt · Last modified: 2024/05/06 16:02 by niccolo