LINUX.ORG.RU

Strongswan, IKEv2, no shared key found

 , ,


0

1

Всем привет. Хочу научится настраивать впн сервера и это мой первый, так что прошу не судить строго.

Хочу настроить Strongswan, клиент - iOS, всё действо происходит в локальной сети (я подумал, что для тестов вполне сойдет).

Неделю бьюсь и никак не могу настроить. Лучшее, чего добился, это попытка соединения ифона, но утыкается в сообщение no shared key found

уже обгуглился, чтобы это значило, но так и не понял, поэтому прошу помощи улья.

Вот мой конфиг:

connections {
    vpn {
        version = 2 
	local_addrs = %any
	remote_addrs = %any
	local_port = 500
        proposals = aes192gcm16-aes128gcm16-prfsha256-ecp256-ecp521,aes192-sha256-modp3072,aes256gcm16-sha384-prfsha384-ecp384,aes256-aes128-sha256-sha1-modp3072-modp2048-modp1024,default
        rekey_time = 0s
        fragmentation = yes
        dpd_delay = 300s
#        vips=0.0.0.0,::
        local {
#			pubkeys = qweqwe 
            auth = eap-mschapv2
            eap_id = xakup
        }
        remote {
            auth = eap-mschapv2
            eap_id = xakup 
        }
        children {
            vpn {
                remote_ts = 0.0.0.0/0
                rekey_time = 0s
                dpd_action = clear
                esp_proposals = aes192gcm16-aes128gcm16-prfsha256-ecp256-modp3072,aes192-sha256-ecp256-modp3072,aes256-aes128-sha256-sha1-modp3072-modp2048-modp1024,default
            }
        }
    }
}

secrets {
    eapvpn {
        secret = qweqwe
		idvpn = xakup
    }
}

а вот кусок логов

loaded certificate from '/etc/swanctl/x509/server-cert.pem'
ноя 20 22:34:27 polet swanctl[4261]: loaded certificate from '/etc/swanctl/x509ca/ca-cert.pem'
ноя 20 22:34:27 polet swanctl[4261]: loaded rsa key from '/etc/swanctl/rsa/peer-key.pem'
ноя 20 22:34:27 polet swanctl[4261]: loaded rsa key from '/etc/swanctl/rsa/server-key.pem'
ноя 20 22:34:27 polet swanctl[4261]: loaded eap secret 'eapvpn'
ноя 20 22:34:27 polet swanctl[4261]: no authorities found, 0 unloaded
ноя 20 22:34:27 polet swanctl[4261]: no pools found, 0 unloaded
ноя 20 22:34:27 polet swanctl[4261]: loaded connection 'vpn'
ноя 20 22:34:27 polet swanctl[4261]: successfully loaded 1 connections, 0 unloaded
ноя 20 22:34:27 polet systemd[1]: Started strongSwan IPsec IKEv1/IKEv2 daemon using swanctl.
ноя 20 22:34:51 polet charon-systemd[4244]: received packet: from 192.168.0.169[500] to 192.168.0.111[500] (604 bytes)
ноя 20 22:34:51 polet charon-systemd[4244]: parsed IKE_SA_INIT request 0 [ SA KE No N(REDIR_SUP) N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) ]
ноя 20 22:34:51 polet charon-systemd[4244]: 192.168.0.169 is initiating an IKE_SA
ноя 20 22:34:51 polet charon-systemd[4244]: selected proposal: IKE:AES_CBC_256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/MODP_2048
ноя 20 22:34:51 polet charon-systemd[4244]: sending cert request for "CN=STRONGSWAN_TEST"
ноя 20 22:34:51 polet charon-systemd[4244]: generating IKE_SA_INIT response 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) CERTREQ N(FRAG_SUP) N(CHDLESS_SUP) N(MULT_AUTH) ]
ноя 20 22:34:51 polet charon-systemd[4244]: sending packet: from 192.168.0.111[500] to 192.168.0.169[500] (481 bytes)
ноя 20 22:34:51 polet charon-systemd[4244]: received packet: from 192.168.0.169[4500] to 192.168.0.111[4500] (544 bytes)
ноя 20 22:34:51 polet charon-systemd[4244]: unknown attribute type INTERNAL_DNS_DOMAIN
ноя 20 22:34:51 polet charon-systemd[4244]: parsed IKE_AUTH request 1 [ IDi N(INIT_CONTACT) IDr AUTH CPRQ(ADDR MASK DHCP DNS ADDR6 DHCP6 DNS6 DOMAIN) N(ESP_TFC_PAD_N) N(NON_FIRST_FRAG) SA TSi TSr N(MOBIKE_SUP) ]
ноя 20 22:34:51 polet charon-systemd[4244]: looking for peer configs matching 192.168.0.111[192.168.0.111]...192.168.0.169[xakup]
ноя 20 22:34:51 polet charon-systemd[4244]: selected peer config 'vpn'
ноя 20 22:34:51 polet charon-systemd[4244]: no shared key found for '192.168.0.111' - 'xakup'
ноя 20 22:34:51 polet charon-systemd[4244]: received ESP_TFC_PADDING_NOT_SUPPORTED, not using ESPv3 TFC padding
ноя 20 22:34:51 polet charon-systemd[4244]: peer supports MOBIKE
ноя 20 22:34:51 polet charon-systemd[4244]: generating IKE_AUTH response 1 [ N(AUTH_FAILED) ]
ноя 20 22:34:51 polet charon-systemd[4244]: sending packet: from 192.168.0.111[4500] to 192.168.0.169[4500] (80 bytes)
ноя 20 22:34:51 polet charon-systemd[4244]: received packet: from 192.168.0.169[500] to 192.168.0.111[500] (604 bytes)
ноя 20 22:34:51 polet charon-systemd[4244]: parsed IKE_SA_INIT request 0 [ SA KE No N(REDIR_SUP) N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) ]

Что ему не нравится? в секции secrets же занесены логин и пароль! Или под ключом он что то другое имеет ввиду?

ох щи. ты хоть примерно понимаешь что делаешь? судя по pkill tmux внутри ssh сессии интеллектуальная катастрофа же.

Anoxemian ★★★★★ ()

Посоны, я настроил конфиг, и теперь хотя бы аутентификация проходит.

connections {
    	ios {
		version = 2
		local_addrs = 192.168.0.111
                proposals = aes192gcm16-aes128gcm16-prfsha256-ecp256-ecp521,aes192-sha256-modp3072,aes256gcm16-sha384-prfsha384-ecp384,aes256-aes128-sha256-sha1-modp3072-modp2048-modp1024,default
		pools = xvpn
		local {
			auth = psk
			id = STRONGSWAN_SAN
			}
		remote {
			auth = psk
			}
		children {
		ios {
            esp_proposals = aes192gcm16-aes128gcm16-prfsha256-ecp256-modp3072,aes192-sha256-ecp256-modp3072,aes256-aes128-sha256-sha1-modp3072-modp2048-modp1024,default
			}
	}
	}
}

pools {
	xvpn {
		addrs = 192.168.20.0/16 
	}
}

secrets {
   	ike-qwe {
		id = xakup	
		secret = qweqwe
		}
}

Однако, появились новые вопросы:

  1. Почему то, при подключении извне, мой IP не меняется на 192,168,0,111 (адрес впн сервера), а остается как и был на устройстве с которого подключаюсь извне. Что не так? (не напоминайте мне, что я тупой, пожалуйста). ip_forwarding включен. В документации говорится, что local_ts по умолчанию dynamic и принимает значение назначенного virtual ip. Ну и я так понял, что всё, что идёт с назначенного виртуального ip, должно со страшной силой заворачиваться в esp и новоиспеченные пакеты обретают уже адрес впн сервера.

Алгоритмов шифрования напихал все возможные, чтоб на всякий случай. Позже уберу не нужные.

  1. Почему remote адрес у меня присваивается с маской /32, хотя в пуле указано 16? и локальный сервер 192,168,0,111 тоже 32.
ios: #1, ESTABLISHED, IKEv2, c68b39c86119854b_i 494e5a1defc705c3_r*
  local  'STRONGSWAN_SAN' @ 192.168.0.111[4500]
  remote 'xakup' @ 91.193.177.72[53481] [10.3.0.1]
  AES_CBC-256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/MODP_2048
  established 347s ago, rekeying in 13008s
  ios: #1, reqid 1, INSTALLED, TUNNEL-in-UDP, ESP:AES_CBC-256/HMAC_SHA2_256_128
    installed 347s ago, rekeying in 2925s, expires in 3613s
    in  cb3c7dfb,      0 bytes,     0 packets
    out 05312fe2,      0 bytes,     0 packets
    local  192.168.0.111/32
    remote 192.168.20.0/32

Вопросы кажутся вам глупыми, но будьте снисходительны к новичкам.

SpaceRanger ()
Последнее исправление: SpaceRanger (всего исправлений: 2)

Всё настроил и всё работает. Для тех, кто наткнётся на этот тред, привожу решение.

Это конфиг

connections {
	ikev2-vpn {
		fragmentation=yes
		rekey_time=60s
		version=2
		remote_addrs=%any
		local_addrs=*IP ADDRESS OF YOUR LOCAL VPN SERVER*
		proposals = aes192gcm16-aes128gcm16-prfsha256-ecp256-ecp521,aes192-sha256-modp3072,aes256gcm16-sha384-prfsha384-ecp384,aes256-aes128-sha256-sha1-modp3072-modp2048-modp1024,default
		pools=psubnet
		encap=yes
		dpd_delay=300s
		children {
			ikev2-vpn {
				start_action=none
				esp_proposals = aes192gcm16-aes128gcm16-prfsha256-ecp256-modp3072,aes192-sha256-ecp256-modp3072,aes256-aes128-sha256-sha1-modp3072-modp2048-modp1024,default
				local_ts=0.0.0.0/0
				dpd_action=clear
			}
			
		}
		local {
			auth = psk
			id = *SAN OF YOUR RESPONDER*
		}
		remote {
			auth = psk
			id = %any
		}
	}
}
pools {
	psubnet {
		addrs=10.10.10.0/24
		dns=8.8.8.8,8.8.4.4
	}
}
authorities {
}
secrets {
	ike-qwe {
        id = *your ID*
        secret = *YOUR PASSWORD*
    }
}

в UFW настроаиваем построутинг в before.rules

*nat
-A POSTROUTING -s 10.10.10.0/24 -o *YOUR INTERFACE* -m policy --pol ipsec --dir out -j ACCEPT
-A POSTROUTING -s 10.10.10.0/24 -o *YOUR INTERFACE* -j MASQUERADE
COMMIT

А также проброс портов

-A ufw-before-forward --match policy --pol ipsec --dir in --proto esp -s 10.10.10.0/24 -j ACCEPT
-A ufw-before-forward --match policy --pol ipsec --dir out --proto esp -d 10.10.10.0/24 -j ACCEPT

На этом у меня всё заработало

SpaceRanger ()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.