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
doc:appunti:linux:sa:ipsec_strongswan [2021/02/05 16:34] – [Fine di configurazione] niccolodoc:appunti:linux:sa:ipsec_strongswan [2024/05/06 16:02] (current) – [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>
 +
 +In alternativa si dovrebbe poter specificare **%%rightid=%any%%** in modo che un qualunque IP privato venga accettato. La PSK dovrebbe potersi selezionare in quel caso tramite l'IP pubblico.
 +
 +===== 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 229:
 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 237:
 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.1612539290.txt.gz · Last modified: 2021/02/05 16:34 by niccolo