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
Last revisionBoth sides next revision
doc:appunti:linux:sa:ipsec_strongswan [2021/02/05 16:34] – [Fine di configurazione] niccolodoc:appunti:linux:sa:ipsec_strongswan [2024/05/06 15:57] – [Host remoto (right) dietro NAT] niccolo
Line 11: Line 11:
 In alternativa al pacchetto **strongswan** è possibile installare **[[#alternativa_charon-systemd|charon-systemd]]**, che offre alcuni vantaggi in termini di semplicità di integrazione con **systemd**, ma non utilizza il tradizionale file di configurazione **/etc/ipsec.conf** né i tradizionali processi **/usr/lib/ipsec/starter** e **/usr/lib/ipsec/charon**. In alternativa al pacchetto **strongswan** è possibile installare **[[#alternativa_charon-systemd|charon-systemd]]**, che offre alcuni vantaggi in termini di semplicità di integrazione con **systemd**, ma non utilizza il tradizionale file di configurazione **/etc/ipsec.conf** né i tradizionali processi **/usr/lib/ipsec/starter** e **/usr/lib/ipsec/charon**.
  
-===== Fine 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**
  
 <file> <file>
 +config setup
 +        # strictcrlpolicy=yes
 +        # uniqueids = no
 +        charondebug="all"
 +        # More control on Charon debug. Default level is 1 "control",
 +        # level 2 is "controlmore".
 +        #charondebug="ike 2, knl 2, cfg 2, net 2, esp 2, dmn 2, mgr 2"
 +        uniqueids = yes
 +
 include /etc/ipsec.d/office1-office2.conf include /etc/ipsec.d/office1-office2.conf
 </file> </file>
Line 35: Line 53:
         authby=secret         authby=secret
         left=132.82.168.98         left=132.82.168.98
-        leftsubnet=172.16.48.97/29+        leftsubnet=172.17.48.97/29
         right=134.191.21.5         right=134.191.21.5
-        rightsubnet=172.16.48.81/28+        rightsubnet=172.17.48.81/28
         ike=aes256-sha256-modp1536         ike=aes256-sha256-modp1536
         esp=aes256-sha256-modp1536         esp=aes256-sha256-modp1536
Line 47: 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 57: 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
 +    ...
 +</file>
 +
 +e quindi nel file delle PSK si deve identificare l'host remoto con il suo 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>
 +
 +===== Configurazione Shorewall =====
 +
 +**/etc/shorewall/rules**
 +
 +<file>
 +ACCEPT   net:134.191.21.5    $FW    esp
 +ACCEPT   net:134.191.21.5    $FW    udp     500
 +ACCEPT   net:134.191.21.5    $FW    udp     4500
 +</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**
 +
 +<file>
 +ipsec    net    134.191.21.5  # Remote IPSEC gateway
 +</file>
 +
 +**/etc/shorewall/zones**
 +
 +<file>
 +sec    ipv4
 +</file>
 +
 +**/etc/shorewall/hosts**
 +
 +<file>
 +sec    eth0:172.17.48.80/28,134.191.21.5 ipsec
 </file> </file>
  
Line 126: Line 227:
 office1-office2:   local:  [132.82.168.98] uses pre-shared key authentication office1-office2:   local:  [132.82.168.98] uses pre-shared key authentication
 office1-office2:   remote: [134.191.21.5] uses pre-shared key authentication office1-office2:   remote: [134.191.21.5] uses pre-shared key authentication
-office1-office2:   child:  172.16.48.96/29 === 172.16.48.80/28 TUNNEL, dpdaction=restart+office1-office2:   child:  172.17.48.96/29 === 172.17.48.80/28 TUNNEL, dpdaction=restart
 Security Associations (1 up, 0 connecting): Security Associations (1 up, 0 connecting):
 office1-office2[1]: ESTABLISHED 31 seconds ago, 132.82.168.98[132.82.168.98]...134.191.21.5[134.191.21.5] office1-office2[1]: ESTABLISHED 31 seconds ago, 132.82.168.98[132.82.168.98]...134.191.21.5[134.191.21.5]
Line 134: Line 235:
 office1-office2{1}:  INSTALLED, TUNNEL, reqid 1, ESP in UDP SPIs: cdd18e01_i 866f2f1a_o office1-office2{1}:  INSTALLED, TUNNEL, reqid 1, ESP in UDP SPIs: cdd18e01_i 866f2f1a_o
 office1-office2{1}:  AES_CBC_256/HMAC_SHA2_256_128, 578 bytes_i (10 pkts, 21s ago), ... office1-office2{1}:  AES_CBC_256/HMAC_SHA2_256_128, 578 bytes_i (10 pkts, 21s ago), ...
-office1-office2{1}:   172.16.48.96/29 === 172.16.48.80/28+office1-office2{1}:   172.17.48.96/29 === 172.17.48.80/28
 </code> </code>
  
doc/appunti/linux/sa/ipsec_strongswan.txt · Last modified: 2024/05/06 16:02 by niccolo