[GUIDA] strongSwan per IPsec su OpenWrt e Homeware

  • 249 Risposte
  • 71860 Visite

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline ttt666

  • Membro Giovane
  • **
  • 59
Re:[GUIDA] strongSwan per IPsec su OpenWrt e Homeware
« Risposta #195 il: 19 Novembre 2021, 09:32 »
Forse al punto a) intendevi dire di decommentare rightca=
No, intendevo proprio decommentare (nella sezione 'conn rwPUBKEY') la riga 'rightauth2=eap-mschapv2'  inserita come commento dallo script di FrancYescO. Altrimenti il server non identifica il tipo di autenticazione del client, almeno nel mio caso è stato così.

Se avete suggerimenti o correzioni per migliorare le cose sono ben accetti, grazie mille.

Se può servire allego lo script per la sola generazione multipla dei certificati (1 lato server e 4 lato client), estratto integralmente dall'ottimo script di FrancYescO.
Prerequisito: eliminare i precedenti certificati presenti sul server svuotando le 3 cartelle '/etc/ipsec.conf/cacerts   /etc/ipsec.conf/certs   /etc/ipsec.conf/private'

file '/etc/certGen.sh':
Codice: [Seleziona]
#!/bin/sh
COUNTRYNAME="US"
CANAME="CATechnicolor"
ORGNAME="Technicolor"
CACERTPASSWORD="" #if set will be asked when installing cert on clients or generating new clientCert
SERVERDOMAINNAME=$(uci get ddns.myddns_ipv4.domain) #"myvpnserver.dyndns.org"
CLIENTNAMES="myvpnclient1 myvpnclient2 myvpnclient3 myvpnclient4"
SHAREDSAN="myVpnClients" # iOS clients need to match a common SAN

cd /tmp

echo "Building certificates for [ $SERVERDOMAINNAME ] and client [ $CLIENTNAME (aka $SHAREDSAN) ] "

[ -f "/etc/ipsec.d/private/ca.p12" ] && ln -s /etc/ipsec.d/private/ca.p12 ca.p12

if [ -f "caKey.pem" ] ; then
  echo "caKey exists, using existing caKey for signing serverCert and clientCert...."
elif [ -f "ca.p12" ] ; then
  echo "CA keys bundle exists, accessing existing protected caKey for signing serverCert and clientCert...."
  openssl pkcs12 -in ca.p12 -nocerts -out caKey.pem
else
  echo "generating a new cakey for [ $CANAME ]"
  ipsec pki --gen --outform pem > caKey.pem
fi
echo "generating caCert for [ $CANAME ]..."
ipsec pki --self --lifetime 3652 --in caKey.pem --dn "C=$COUNTRYNAME, O=$ORGNAME, CN=$CANAME" --ca --outform pem > caCert.pem
openssl x509 -inform PEM -outform DER -in caCert.pem -out caCert.crt
echo "Now building CA keys bundle"
openssl pkcs12 -export -inkey caKey.pem -in caCert.pem -name "$CANAME" -certfile caCert.pem -caname "$CANAME" -out ca.p12 -password "pass:$CACERTPASSWORD"

echo "generating server certificates for [ $SERVERDOMAINNAME ]... "
ipsec pki --gen --outform pem > serverKey_$SERVERDOMAINNAME.pem
ipsec pki --pub --in serverKey_$SERVERDOMAINNAME.pem | ipsec pki --issue --lifetime 3652 --cacert caCert.pem --cakey caKey.pem --dn "C=$COUNTRYNAME, O=$ORGNAME, CN=$SERVERDOMAINNAME" --san="$SERVERDOMAINNAME" --flag serverAuth --flag ikeIntermediate --outform pem > serverCert_$SERVERDOMAINNAME.pem
#openssl x509 -inform PEM -outform DER -in serverCert_$SERVERDOMAINNAME.pem -out serverCert_$SERVERDOMAINNAME.crt

for CLIENTNAME in $CLIENTNAMES; do
  if [ -f "clientCert_$CLIENTNAME.pem" ] ; then
    echo "clientCert for [ $CLIENTNAME ] exists, not generating new clientCert."
    continue
  fi
  echo "generating clientCert for [ $CLIENTNAME (aka $SHAREDSAN) ]..."
  ipsec pki --gen --outform pem > clientKey_$CLIENTNAME.pem
  ipsec pki --pub --in clientKey_$CLIENTNAME.pem | ipsec pki --issue --lifetime 3652 --cacert caCert.pem --cakey caKey.pem --dn "C=$COUNTRYNAME, O=$ORGNAME, CN=$CLIENTNAME" --san="$CLIENTNAME" --san="$SHAREDSAN" --outform pem > clientCert_$CLIENTNAME.pem
  openssl x509 -inform PEM -outform DER -in clientCert_$CLIENTNAME.pem -out clientCert_$CLIENTNAME.crt
  echo "Now building Client keys bundle for [ $CLIENTNAME ]"
  openssl pkcs12 -export -inkey clientKey_$CLIENTNAME.pem -in clientCert_$CLIENTNAME.pem -name "$CLIENTNAME" -certfile caCert.pem -caname "$CANAME" -out client_$CLIENTNAME.p12 -password "pass:$CACERTPASSWORD"
  rm clientKey_$CLIENTNAME.pem
  openssl x509 -inform PEM -outform DER -in clientCert_$CLIENTNAME.pem -out clientCert_$CLIENTNAME.crt
done

# where to put them...
mv caCert.pem /etc/ipsec.d/cacerts/
ln -s ../cacerts/caCert.pem /etc/ipsec.d/certs/caCert.pem
mv serverCert*.pem /etc/ipsec.d/certs/
mv serverKey*.pem /etc/ipsec.d/private/
mv clientCert*.pem /etc/ipsec.d/certs/

#These file are not needed on the server
[ ! -f "/etc/ipsec.d/private/ca.p12" ] && mv ca.p12 /etc/ipsec.d/private/ #needed to generate new clients
mv client_*.p12 /etc/ipsec.d/private/
mv clientCert_*.crt /etc/ipsec.d/private/
echo "**** THE END ****"

Offline LuKePicci

  • Global Moderator
  • VIP
  • *****
  • 2789
Re:[GUIDA] strongSwan per IPsec su OpenWrt e Homeware
« Risposta #196 il: 20 Novembre 2021, 13:51 »
Ok forse ho intuito il tipo di problema ma quel punto ti conviene semplicemente rimuovere le sezioni rwPUBKEY visto che non le stai utilizzando. Ne deduco che tu stia utilizzando EAPTLS. Io comunque le ho entrambe attive, sia rwPUBKEY che rwEAPTLS, se mi dai il log e il tuo file config mi faccio un'idea del perchè non riesce a distinguerle.

Offline ttt666

  • Membro Giovane
  • **
  • 59
Re:[GUIDA] strongSwan per IPsec su OpenWrt e Homeware
« Risposta #197 il: 21 Novembre 2021, 10:00 »
Ora la connessione va anche rimettendo il commento sulla riga 'rightauth2=eap-mschapv2'  (sezione 'conn rwPUBKEY')  e quindi non ho possibilità di mettere il file di log :facepalm: Non me lo so spiegare sinceramente.

Nel frattempo ho solo cambiato setting del DNS mettendo list dhcp_option '6,1.1.1.1,192.168.1.1' nella sezione lan di 'etc/config/dhcp'.

Comunque allego il file '/etc/ipsec.conf' attuale:
Codice: [Seleziona]
config setup

conn %default
        keyexchange=ikev2
        ike=aes256-aes128-sha256-sha1-modp3072-modp2048-modp1024
        esp=aes128-aes256-sha256-modp3072-modp2048,aes128-aes256-sha256
        left=%any
        leftauth=pubkey
        leftcert=serverCert_SERVER.IP.pem
        leftid=SERVER.IP
        leftsubnet=0.0.0.0/0;::/0
        right=%any
        rightsourceip=%dhcp
        eap_identity=%identity
        auto=add

conn rwEAPMSCHAPV2
        leftsendcert=always
        #rightauth=eap-mschapv2
        rightsendcert=never

conn rwPUBKEYIOS
        leftsendcert=always
        rightid=myVpnClients
        rightauth=pubkey
        rightca=caCert.pem
        #rightauth2=eap-mschapv2

conn rwEAPTLSIOS
        leftsendcert=always
        rightid=myVpnClients
        rightauth=eap-tls
        rightcert=caCert.pem
        #rightauth2=eap-mschapv2

conn rwPUBKEY
        rightauth=pubkey
        rightcert=caCert.pem
        #rightauth2=eap-mschapv2

conn rwEAPTLS
        rightauth=eap-tls
        rightcert=caCert.pem

log ultima connessione avvenuta correttamente:
Codice: [Seleziona]
Sun Nov 21 09:51:28 2021 daemon.info charon: 09[NET] received packet: from CLIENT.IP[19802] to SERVER.IP[500] (716 bytes)
Sun Nov 21 09:51:28 2021 daemon.info charon: 09[ENC] parsed IKE_SA_INIT request 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) N(HASH_ALG) N(REDIR_SUP) ]
Sun Nov 21 09:51:28 2021 daemon.info charon: 09[IKE] CLIENT.IP is initiating an IKE_SA
Sun Nov 21 09:51:28 2021 authpriv.info charon: 09[IKE] CLIENT.IP is initiating an IKE_SA
Sun Nov 21 09:51:28 2021 daemon.info charon: 09[IKE] remote host is behind NAT
Sun Nov 21 09:51:28 2021 daemon.info charon: 09[IKE] DH group ECP_256 inacceptable, requesting MODP_3072
Sun Nov 21 09:51:28 2021 daemon.info charon: 09[ENC] generating IKE_SA_INIT response 0 [ N(INVAL_KE) ]
Sun Nov 21 09:51:28 2021 daemon.info charon: 09[NET] sending packet: from SERVER.IP[500] to CLIENT.IP[19802] (38 bytes)
Sun Nov 21 09:51:28 2021 daemon.info charon: 05[NET] received packet: from CLIENT.IP[19802] to SERVER.IP[500] (1036 bytes)
Sun Nov 21 09:51:28 2021 daemon.info charon: 05[ENC] parsed IKE_SA_INIT request 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) N(HASH_ALG) N(REDIR_SUP) ]
Sun Nov 21 09:51:28 2021 daemon.info charon: 05[IKE] CLIENT.IP is initiating an IKE_SA
Sun Nov 21 09:51:28 2021 authpriv.info charon: 05[IKE] CLIENT.IP is initiating an IKE_SA
Sun Nov 21 09:51:29 2021 daemon.info charon: 05[IKE] remote host is behind NAT
Sun Nov 21 09:51:29 2021 daemon.info charon: 05[ENC] generating IKE_SA_INIT response 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) N(HASH_ALG) N(MULT_AUTH) ]
Sun Nov 21 09:51:29 2021 daemon.info charon: 05[NET] sending packet: from SERVER.IP[500] to CLIENT.IP[19802] (590 bytes)
Sun Nov 21 09:51:30 2021 daemon.info charon: 13[NET] received packet: from CLIENT.IP[19809] to SERVER.IP[4500] (1364 bytes)
Sun Nov 21 09:51:30 2021 daemon.info charon: 13[ENC] parsed IKE_AUTH request 1 [ EF(1/4) ]
Sun Nov 21 09:51:30 2021 daemon.info charon: 13[ENC] received fragment #1 of 4, waiting for complete IKE message
Sun Nov 21 09:51:30 2021 daemon.info charon: 06[NET] received packet: from CLIENT.IP[19809] to SERVER.IP[4500] (1364 bytes)
Sun Nov 21 09:51:30 2021 daemon.info charon: 06[ENC] parsed IKE_AUTH request 1 [ EF(2/4) ]
Sun Nov 21 09:51:30 2021 daemon.info charon: 06[ENC] received fragment #2 of 4, waiting for complete IKE message
Sun Nov 21 09:51:30 2021 daemon.info charon: 10[NET] received packet: from CLIENT.IP[19809] to SERVER.IP[4500] (1364 bytes)
Sun Nov 21 09:51:30 2021 daemon.info charon: 10[ENC] parsed IKE_AUTH request 1 [ EF(3/4) ]
Sun Nov 21 09:51:30 2021 daemon.info charon: 10[ENC] received fragment #3 of 4, waiting for complete IKE message
Sun Nov 21 09:51:30 2021 daemon.info charon: 11[NET] received packet: from CLIENT.IP[19809] to SERVER.IP[4500] (884 bytes)
Sun Nov 21 09:51:30 2021 daemon.info charon: 11[ENC] parsed IKE_AUTH request 1 [ EF(4/4) ]
Sun Nov 21 09:51:30 2021 daemon.info charon: 11[ENC] received fragment #4 of 4, reassembling fragmented IKE message
Sun Nov 21 09:51:30 2021 daemon.info charon: 11[ENC] parsed IKE_AUTH request 1 [ IDi CERT N(INIT_CONTACT) CERTREQ AUTH CPRQ(ADDR ADDR6 DNS DNS6) N(ESP_TFC_PAD_N) SA TSi TSr N(MOBIKE_SUP) N(NO_ADD_ADDR) N(MULT_AUTH) N(EAP_ONLY) N(MSG_ID_SYN_SUP) ]
Sun Nov 21 09:51:30 2021 daemon.info charon: 11[IKE] received cert request for "C=US, O=Technicolor, CN=CATechnicolor"
Sun Nov 21 09:51:30 2021 daemon.info charon: 11[IKE] received 156 cert requests for an unknown ca
Sun Nov 21 09:51:30 2021 daemon.info charon: 11[IKE] received end entity cert "C=US, O=Technicolor, CN=myvpnclient2"
Sun Nov 21 09:51:30 2021 daemon.info charon: 11[CFG] looking for peer configs matching SERVER.IP[%any]...CLIENT.IP[C=US, O=Technicolor, CN=myvpnclient2]
Sun Nov 21 09:51:30 2021 daemon.info charon: 11[CFG] selected peer config 'rwEAPMSCHAPV2'
Sun Nov 21 09:51:30 2021 daemon.info charon: 11[CFG]   using certificate "C=US, O=Technicolor, CN=myvpnclient2"
Sun Nov 21 09:51:30 2021 daemon.info charon: 11[CFG]   using trusted ca certificate "C=US, O=Technicolor, CN=CATechnicolor"
Sun Nov 21 09:51:30 2021 daemon.info charon: 11[CFG] checking certificate status of "C=US, O=Technicolor, CN=myvpnclient2"
Sun Nov 21 09:51:30 2021 daemon.info charon: 11[CFG] certificate status is not available
Sun Nov 21 09:51:30 2021 daemon.info charon: 11[CFG]   reached self-signed root ca with a path length of 0
Sun Nov 21 09:51:30 2021 daemon.info charon: 11[IKE] authentication of 'C=US, O=Technicolor, CN=myvpnclient2' with RSA_EMSA_PKCS1_SHA2_256 successful
Sun Nov 21 09:51:30 2021 daemon.info charon: 11[IKE] received ESP_TFC_PADDING_NOT_SUPPORTED, not using ESPv3 TFC padding
Sun Nov 21 09:51:30 2021 daemon.info charon: 11[IKE] peer supports MOBIKE
Sun Nov 21 09:51:30 2021 daemon.info charon: 11[IKE] authentication of 'SERVER.ADDRESS' (myself) with RSA_EMSA_PKCS1_SHA2_256 successful
Sun Nov 21 09:51:30 2021 daemon.info charon: 11[IKE] IKE_SA rwEAPMSCHAPV2[4] established between SERVER.IP[SERVER.ADDRESS]...CLIENT.IP[C=US, O=Technicolor, CN=myvpnclient2]
Sun Nov 21 09:51:30 2021 authpriv.info charon: 11[IKE] IKE_SA rwEAPMSCHAPV2[4] established between SERVER.IP[SERVER.ADDRESS]...CLIENT.IP[C=US, O=Technicolor, CN=myvpnclient2]
Sun Nov 21 09:51:30 2021 daemon.info charon: 11[IKE] scheduling reauthentication in 9752s
Sun Nov 21 09:51:30 2021 daemon.info charon: 11[IKE] maximum IKE_SA lifetime 10292s
Sun Nov 21 09:51:30 2021 daemon.info charon: 11[IKE] sending end entity cert "C=US, O=Technicolor, CN=SERVER.ADDRESS"
Sun Nov 21 09:51:30 2021 daemon.info charon: 11[IKE] peer requested virtual IP %any
Sun Nov 21 09:51:30 2021 daemon.info charon: 11[CFG] sending DHCP DISCOVER to 192.168.1.255
Sun Nov 21 09:51:31 2021 daemon.info charon: 11[CFG] sending DHCP DISCOVER to 192.168.1.255
Sun Nov 21 09:51:33 2021 daemon.info charon: 11[CFG] sending DHCP DISCOVER to 192.168.1.255
Sun Nov 21 09:51:33 2021 daemon.info charon: 16[CFG] received DHCP OFFER 192.168.1.56 from 192.168.1.1
Sun Nov 21 09:51:33 2021 daemon.info charon: 11[CFG] sending DHCP REQUEST for 192.168.1.56 to 192.168.1.1
Sun Nov 21 09:51:33 2021 daemon.info charon: 05[CFG] received DHCP ACK for 192.168.1.56
Sun Nov 21 09:51:33 2021 daemon.info charon: 11[IKE] assigning virtual IP 192.168.1.56 to peer 'C=US, O=Technicolor, CN=myvpnclient2'
Sun Nov 21 09:51:33 2021 daemon.info charon: 11[IKE] peer requested virtual IP %any6
Sun Nov 21 09:51:33 2021 daemon.info charon: 11[IKE] no virtual IP found for %any6 requested by 'C=US, O=Technicolor, CN=myvpnclient2'
Sun Nov 21 09:51:33 2021 daemon.info charon: 11[IKE] CHILD_SA rwEAPMSCHAPV2{2} established with SPIs cXXXXXXX_i YYYYYYYY_o and TS 0.0.0.0/0 === 192.168.1.56/32
Sun Nov 21 09:51:33 2021 authpriv.info charon: 11[IKE] CHILD_SA rwEAPMSCHAPV2{2} established with SPIs cXXXXXXX_i YYYYYYYY_o and TS 0.0.0.0/0 === 192.168.1.56/32
Sun Nov 21 09:51:33 2021 daemon.info charon: 11[ENC] generating IKE_AUTH response 1 [ IDr CERT AUTH CPRP(ADDR DNS DNS) SA TSi TSr N(AUTH_LFT) N(MOBIKE_SUP) N(ADD_4_ADDR) N(ADD_4_ADDR) N(ADD_4_ADDR) ]
Sun Nov 21 09:51:33 2021 daemon.info charon: 11[ENC] splitting IKE message with length of 1440 bytes into 2 fragments
Sun Nov 21 09:51:33 2021 daemon.info charon: 11[ENC] generating IKE_AUTH response 1 [ EF(1/2) ]
Sun Nov 21 09:51:33 2021 daemon.info charon: 11[ENC] generating IKE_AUTH response 1 [ EF(2/2) ]
Sun Nov 21 09:51:33 2021 daemon.info charon: 11[NET] sending packet: from SERVER.IP[4500] to CLIENT.IP[19809] (1236 bytes)
Sun Nov 21 09:51:33 2021 daemon.info charon: 11[NET] sending packet: from SERVER.IP[4500] to CLIENT.IP[19809] (276 bytes)
Sun Nov 21 09:51:33 2021 daemon.info charon: 08[NET] received packet: from CLIENT.IP[19809] to SERVER.IP[4500] (1364 bytes)
Sun Nov 21 09:51:33 2021 daemon.info charon: 08[ENC] parsed IKE_AUTH request 1 [ EF(1/4) ]
Sun Nov 21 09:51:33 2021 daemon.info charon: 08[ENC] received fragment #1 of 4, waiting for complete IKE message
Sun Nov 21 09:51:33 2021 daemon.info charon: 12[NET] received packet: from CLIENT.IP[19809] to SERVER.IP[4500] (1364 bytes)
Sun Nov 21 09:51:33 2021 daemon.info charon: 12[ENC] parsed IKE_AUTH request 1 [ EF(2/4) ]
Sun Nov 21 09:51:33 2021 daemon.info charon: 12[ENC] received fragment #2 of 4, waiting for complete IKE message
Sun Nov 21 09:51:33 2021 daemon.info charon: 07[NET] received packet: from CLIENT.IP[19809] to SERVER.IP[4500] (1364 bytes)
Sun Nov 21 09:51:33 2021 daemon.info charon: 07[ENC] parsed IKE_AUTH request 1 [ EF(3/4) ]
Sun Nov 21 09:51:33 2021 daemon.info charon: 07[ENC] received fragment #3 of 4, waiting for complete IKE message
Sun Nov 21 09:51:33 2021 daemon.info charon: 15[NET] received packet: from CLIENT.IP[19809] to SERVER.IP[4500] (884 bytes)
Sun Nov 21 09:51:33 2021 daemon.info charon: 15[ENC] parsed IKE_AUTH request 1 [ EF(4/4) ]
Sun Nov 21 09:51:33 2021 daemon.info charon: 15[ENC] received fragment #4 of 4, reassembling fragmented IKE message
Sun Nov 21 09:51:33 2021 daemon.info charon: 15[ENC] parsed IKE_AUTH request 1 [ IDi CERT N(INIT_CONTACT) CERTREQ AUTH CPRQ(ADDR ADDR6 DNS DNS6) N(ESP_TFC_PAD_N) SA TSi TSr N(MOBIKE_SUP) N(NO_ADD_ADDR) N(MULT_AUTH) N(EAP_ONLY) N(MSG_ID_SYN_SUP) ]
Sun Nov 21 09:51:33 2021 daemon.info charon: 15[IKE] received retransmit of request with ID 1, retransmitting response
Sun Nov 21 09:51:33 2021 daemon.info charon: 15[NET] sending packet: from SERVER.IP[4500] to CLIENT.IP[19809] (1236 bytes)
Sun Nov 21 09:51:33 2021 daemon.info charon: 15[NET] sending packet: from SERVER.IP[4500] to CLIENT.IP[19809] (276 bytes)[code]
« Ultima modifica: 21 Novembre 2021, 10:01 da ttt666 »

Offline ttt666

  • Membro Giovane
  • **
  • 59
Re:[GUIDA] strongSwan per IPsec su OpenWrt e Homeware
« Risposta #198 il: 24 Novembre 2021, 22:29 »
Con la configurazione del post precedente (generata dallo script di FrancYescO), da client vpn (su rete mobile Vodafone) non riesco a raggiungere nessun client dell'unica lan interna 192.168.1.0/24.

Sul server strongswan è presente 'rightsourceip=%dhcp' che rilascia ai client indirizzi di classe 192.168.1.0/24.

Come potrei risolvere?

Offline LuKePicci

  • Global Moderator
  • VIP
  • *****
  • 2789
Re:[GUIDA] strongSwan per IPsec su OpenWrt e Homeware
« Risposta #199 il: 27 Novembre 2021, 00:13 »
Questo dipende da come  hai configurato il firewall, cos'hai messo / cosa ti ha messo lo script come regole di iptables?

Offline ttt666

  • Membro Giovane
  • **
  • 59
Re:[GUIDA] strongSwan per IPsec su OpenWrt e Homeware
« Risposta #200 il: 27 Novembre 2021, 12:50 »
In 'etc/firewall.user' ho le regole che ha aggiunto lo script di FrancYescO, cioè:
Codice: [Seleziona]
#strongswan ipsec
iptables -I INPUT  -m policy --dir in --pol ipsec --proto esp -j ACCEPT
iptables -I FORWARD  -m policy --dir in --pol ipsec --proto esp -j ACCEPT
iptables -I FORWARD  -m policy --dir out --pol ipsec --proto esp -j ACCEPT
iptables -I OUTPUT   -m policy --dir out --pol ipsec --proto esp -j ACCEPT
iptables -t nat -I POSTROUTING -m policy --pol ipsec --dir out -j ACCEPT

Che modifiche suggerisci? Grazie in anticipo

Offline LuKePicci

  • Global Moderator
  • VIP
  • *****
  • 2789
Re:[GUIDA] strongSwan per IPsec su OpenWrt e Homeware
« Risposta #201 il: 29 Novembre 2021, 09:24 »
Vai in /etc/config/dosprotect, disabilita "rpfilter" in globals e commenta le righe in udplimits (se le hai) in questo modo:
Codice: [Seleziona]
config ratelimit 'udplimits'
        option proto 'udp'
#        option per_srcip_burst '2000'
#        option per_srcip_limit '1000'
#        option per_srcip_buckets '2053'
#        option global_burst '10000'
#        option global_limit '5000'
« Ultima modifica: 29 Novembre 2021, 09:27 da LuKePicci »

Offline ttt666

  • Membro Giovane
  • **
  • 59
Re:[GUIDA] strongSwan per IPsec su OpenWrt e Homeware
« Risposta #202 il: 29 Novembre 2021, 10:24 »
Nulla da fare  :worry:

Ricapitolando:
a) ho disattivato rpfilter e anche commentato le regole nella config 'dhcplimits' (io non ho udplimits), secondo il seguente schema nel file '/etc/config/dosprotect':
Codice: [Seleziona]
config globals 'globals'
option enabled '0'
option rpfilter '0'
option rpfilter_log_limit '5/minute'
option block_tcpsyn_withdata '0'

config ratelimit 'dhcplimits'
  option proto 'udp'
  # option extra '--dport 547'
  # option per_srcip_burst '4'
  # option per_srcip_limit '2'
  # option global_burst '100'
  # option global_limit '50'

Ho riavviato naturalmente...e niente: quando mi collego dall'esterno con connessione Vodafone mobile e device android, non vedo i client nella lan (sia client windows che linux)

b) ecco le config custom che ho al momento sul dga4131 18.x:
    - in '/etc/config/dhcp' ho:
Codice: [Seleziona]
config dnsmasq 'dnsmasq'
        ..........
        option cachelocal '1'
        list server '/telecomitalia.it/dns1_per_il_voip'
        list server '/telecomitalia.it/dns2_per_il_voip'

config dhcp 'lan'
        ..........
        list dhcp_option '6,192.168.1.1'

    - oltre alla regole dello script di FrancYescO (messe dentro '/etc/firewall.user'), in '/etc/config/firewall' ho:
Codice: [Seleziona]
config rule 'ipsec_esp'
option src 'wan'
option name 'IPSec ESP'
option proto 'esp'
option target 'ACCEPT'

config rule 'ipsec_ike'
option src 'wan'
option name 'IPSec IKE'
option proto 'udp'
option dest_port '500'
option target 'ACCEPT'

config rule 'ipsec_nat_traversal'
option src 'wan'
option name 'IPSec NAT-T'
option proto 'udp'
option dest_port '4500'
option target 'ACCEPT'

config rule 'ipsec_auth_header'
option src 'wan'
option name 'Auth Header'
option proto 'ah'
option target 'ACCEPT'

   - in '/etc/config/network' ho:
Codice: [Seleziona]
config interface 'wan'
  ...
  option peerdns '0'
  list dns '1.1.1.1'
  list dns '1.0.0.1'

Hai qualche altro suggerimento/prova? Grazie ancora
« Ultima modifica: 29 Novembre 2021, 10:30 da ttt666 »

Offline LuKePicci

  • Global Moderator
  • VIP
  • *****
  • 2789
Re:[GUIDA] strongSwan per IPsec su OpenWrt e Homeware
« Risposta #203 il: 29 Novembre 2021, 10:55 »
dhcplimits sicuro non c'entra, udplimits interviene quando finisci in modalità incapsulata e ti provoca un cap sulla banda, ti ho detto di fixarlo se lo avevi perchè so che diventerebbe un problema in alcuni frangenti ma non ha a che fare col tuo problema.

Non mi viene in mente altro, l'unica altra cosa che farei è verificare effettivamente in che misura tu non li raggiunga, ovvero, mettiti nel caso semplice con client windows remoto (magari connesso su rete cellulare con hotspot da smartphone) e fai una prova a pingare il router o entrarci in ssh. Fai sempre attenzione al fatto che le VPN siano impostate su windows come rete privata.

Fai conto che io ho il tuo stesso router e gli host della lan li raggiungo regolarmente, e per di più rieco anche a fare l'opposto cioè raggiungere servizi esposti sui rw in VPN dalla lan locale.

Offline ttt666

  • Membro Giovane
  • **
  • 59
Re:[GUIDA] StrongSwan IPsec su OpenWrt e Homeware
« Risposta #204 il: 29 Novembre 2021, 14:15 »
Sono riuscito a risolvere anche questo problema. Leggendo questa wiki (https://wiki.strongswan.org/projects/strongswan/wiki/ForwardingAndSplitTunneling) ho eseguito i seguenti comandi:

Codice: [Seleziona]
iptables -t nat -A POSTROUTING -s 192.168.11.0/24 -o br-lan -m policy --dir out --pol ipsec -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.11.0/24 -o br-lan -j MASQUERADE
Adattando quanto suggerito in questo vecchio post alla mia config  in '/etc/firewall.user', ora riesco a pingare e ad accedere a tutti gli hosts dietro il router in vpn ipsec. Leggevo anche che non è una buona soluzione per via del fatto che si arriva sugli hosts della lan con l'ip del router...

EDIT:
- ho disattivato rpfilter anche in '/etc/config/network' nella sezione 'lan' (prima non l'avevo fatto) e non mi pare sia cambiato granchè.

Grazie ancora del supporto.
« Ultima modifica: 29 Novembre 2021, 15:46 da ttt666 »

Offline LuKePicci

  • Global Moderator
  • VIP
  • *****
  • 2789
Re:[GUIDA] strongSwan per IPsec su OpenWrt e Homeware
« Risposta #205 il: 29 Novembre 2021, 16:14 »
Ok e se invece di queste due che hai aggiunto ci metti solo la prima?

La prima regola delle due che hai citato è analoga alla quinta che ti aveva messo lo script, ma lo script usa -I e quindi te la inserisce in cima alla chain di POSTROUTING, mentre tu l'hai aggiunta con -A quindi in fondo alla stessa chain. Inoltre quella in fondo allo script è generale e non limitata con -s e -o mentre  quella che hai citato lo fs in casi più particolari, quindi dovrebbe essere superflua.

La seconda regola invece è un normale masquerade dei pacchetti diretti in LAN con l'ip lan del router.

Faccio notare che nella wiki strongswan citata da cui quelle due regole provengono stava in realtà parlando di regole per traffico destinato su internet e quindi dirette in uscita (-o) su eth0 che in quella wiki sarebbe la porta WAN. Ovviamente il traffico uscente su WAN va masquerato altrimenti gli host pubblici non raggiungerebbero quelli con IP privato.

Il fatto che con quel masquerade che hai aggiunto tu riesca a "risolvere" vuol dire che c'è qualcosa che non va dal punto di vista di un host LAN che cerca di comunicare col client in VPN. Magari controlla che il plugin farp stia funzionando correttamente.
« Ultima modifica: 29 Novembre 2021, 16:44 da LuKePicci »

Offline ttt666

  • Membro Giovane
  • **
  • 59
Re:[GUIDA] strongSwan per IPsec su OpenWrt e Homeware
« Risposta #206 il: 29 Novembre 2021, 16:21 »
Ok e se invece di queste due che hai aggiunto ci metti solo la prima?
Niente da fare, non vedo nulla della lan interna...se le tengo attive entrambe invece tutto ok.

Offline LuKePicci

  • Global Moderator
  • VIP
  • *****
  • 2789
Re:[GUIDA] strongSwan per IPsec su OpenWrt e Homeware
« Risposta #207 il: 29 Novembre 2021, 16:45 »
Ok allora la prima è inutile, puoi toglierla. Leggi sopra per gli ultimi edit.

Offline LuKePicci

  • Global Moderator
  • VIP
  • *****
  • 2789
Re:[GUIDA] strongSwan per IPsec su OpenWrt e Homeware
« Risposta #208 il: 29 Novembre 2021, 17:18 »
Sono quasi convinto che ti manchi il pacchetto strongswan-mod-farp

Offline ttt666

  • Membro Giovane
  • **
  • 59
Re:[GUIDA] strongSwan per IPsec su OpenWrt e Homeware
« Risposta #209 il: 29 Novembre 2021, 18:42 »
BINGO! :clap: :clap: :clap:

Non so come hai fatto...ma 'strongswan-mod-farp' non risultava installato...eppure pensavo che dallo script venissero installate tutte le dipendenze:
Codice: [Seleziona]
root@OpenWrt:~# opkg list_installed | grep strongswan
strongswan - 5.6.3-3
strongswan-charon - 5.6.3-3
strongswan-default - 5.6.3-3
strongswan-ipsec - 5.6.3-3
strongswan-libtls - 5.6.3-3
strongswan-mod-aes - 5.6.3-3
strongswan-mod-attr - 5.6.3-3
strongswan-mod-connmark - 5.6.3-3
strongswan-mod-constraints - 5.6.3-3
strongswan-mod-des - 5.6.3-3
strongswan-mod-dhcp - 5.6.3-3
strongswan-mod-dnskey - 5.6.3-3
strongswan-mod-eap-identity - 5.6.3-3
strongswan-mod-eap-md5 - 5.6.3-3
strongswan-mod-eap-mschapv2 - 5.6.3-3
strongswan-mod-eap-radius - 5.6.3-3
strongswan-mod-eap-tls - 5.6.3-3
strongswan-mod-fips-prf - 5.6.3-3
strongswan-mod-gmp - 5.6.3-3
strongswan-mod-hmac - 5.6.3-3
strongswan-mod-kernel-netlink - 5.6.3-3
strongswan-mod-md4 - 5.6.3-3
strongswan-mod-md5 - 5.6.3-3
strongswan-mod-nonce - 5.6.3-3
strongswan-mod-pem - 5.6.3-3
strongswan-mod-pgp - 5.6.3-3
strongswan-mod-pkcs1 - 5.6.3-3
strongswan-mod-pubkey - 5.6.3-3
strongswan-mod-random - 5.6.3-3
strongswan-mod-rc2 - 5.6.3-3
strongswan-mod-resolve - 5.6.3-3
strongswan-mod-revocation - 5.6.3-3
strongswan-mod-sha1 - 5.6.3-3
strongswan-mod-sha2 - 5.6.3-3
strongswan-mod-socket-default - 5.6.3-3
strongswan-mod-sshkey - 5.6.3-3
strongswan-mod-stroke - 5.6.3-3
strongswan-mod-updown - 5.6.3-3
strongswan-mod-x509 - 5.6.3-3
strongswan-mod-xauth-generic - 5.6.3-3
strongswan-mod-xcbc - 5.6.3-3
strongswan-pki - 5.6.3-3

Dopo averlo installato:
Codice: [Seleziona]
root@OpenWrt:~# opkg install strongswan-mod-farp
Installing strongswan-mod-farp (5.6.3-3) to root...
Downloading https://www.macoers.com/repository/homeware/18/brcm63xx-tch/VANTW/packages/strongswan-mod-farp_5.6.3-3_arm_cortex-a9_neon.ipk
Multiple packages (librt and librt) providing same name marked HOLD or PREFER. Using latest.
Multiple packages (librt and librt) providing same name marked HOLD or PREFER. Using latest.
Multiple packages (libpthread and libpthread) providing same name marked HOLD or PREFER. Using latest.
Multiple packages (libpthread and libpthread) providing same name marked HOLD or PREFER. Using latest.
Configuring strongswan-mod-farp.

va tutto alla grande, naturalmente senza quelle 2 regole sullo split tunneling e persino con rpfilter attivo!

Dalla vpn vedo e pingo (ove possibile) gli host della lan interna. Non ho nemmeno attivato il caricamento di farp nei file di config di strongswan, l'ha fatto in automatico.

GRAZIE!  :pray:
« Ultima modifica: 29 Novembre 2021, 19:12 da ttt666 »