İki AWS örneği arasındaki Strongswan VPN tüneli bağlanmayacak


10

Ubuntu 14.04.2 LTS çalıştıran iki Amazon AWS EC2 örneği arasında StrongSwan 5.1.2 kullanarak bir VPN tüneli kurmaya çalışıyorum. StrongSwan'ı kullanmadan önce, iyi çalışan bir Amazon RedHat AMI'de açık (libre) kuğu kullandım. Nedense burada IKE'nin StrongSwan için çalışmasını bile sağlayamıyorum. AWS yapılandırmalarımı üç kez kontrol ettim ve her şey iyi görünüyor, bu yüzden StrongSwan yapılandırmasında bir sorun olmalı.

Aşağıda göreceğiniz gibi, aldığım hata "Sokete yazma hatası: Geçersiz argüman" . Çevrimiçi baktım ve bunun çözümünü gerçekten bulamıyorum. Ben strongswan ipsec.conf yanlış yapılandırılmış olduğuna ikna oldum.

İşte ne ile çalışıyorum:

Instance #1: N.Virginia - 10.198.0.164 with public EIP 54.X.X.X
Instance #2: Oregon - 10.194.0.176 with public EIP 52.Y.Y.Y

(Basit) topoloji aşağıdaki gibidir:

[ Instance #1 within N.Virginia VPC <-> Public internet <-> Instance #2 within Oregon VPC ]

Aşağıdaki AWS yapılandırmalarının doğru olduğunu doğruladım:

Security groups permit all
IP information is correct
Src/Dest disabled on both instances
ACLs permit all
routes are present and correct (route to 10.x will point to that local instance in order to be routed out to the VPN tunnel)

Aşağıda /etc/ipsec.conf (bu Oregon'dur, ancak sol | sağ değerlerin tersine çevrilmesi dışında N.Virginia örneğinde aynıdır) :

config setup
        charondebug="dmn 2, mgr 2, ike 2, chd 2, job 2, cfg 2, knl 2, net 2, enc 2, lib 2"
conn aws1oexternal-aws1nvexternal
        left=52.Y.Y.Y (EIP)
        leftsubnet=10.194.0.0/16
        right=54.X.X.X (EIP)
        rightsubnet=10.198.0.0/16
        auto=start
        authby=secret
        type=tunnel
        mobike=no
        dpdaction=restart

Aşağıda /etc/ipsec.secrets * (başka bir örnek için tersine çevrilmiştir):

54.X.X.X 52.Y.Y.Y : PSK "Key_inserted_here"

/Etc/strongswan.conf dosyası aşağıdadır:

charon {
        load_modular = yes
        plugins {
                include strongswan.d/charon/*.conf
        }
}

/Etc/sysctl.conf dosyası aşağıdadır:

net.ipv4.ip_forward=1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0

İşte / var / log / syslog hata ayıklama çıktı Buradaki sorun "sokete yazma hatası: Geçersiz argüman; denediğim her şeyden sonra aynı hatayı almaya devam ediyorum :

Jun 17 17:34:48 ip-10-198-0-164 charon: 13[IKE] retransmit 5 of request with message ID 0
Jun 17 17:34:48 ip-10-198-0-164 charon: 13[NET] sending packet: from 54.X.X.X[500] to 52.Y.Y.Y[500] (1212 bytes)
Jun 17 17:34:48 ip-10-198-0-164 charon: 03[JOB] next event in 75s 581ms, waiting]
Jun 17 17:34:48 ip-10-198-0-164 charon: 16[NET] sending packet: from 54.X.X.X[500] to 52.Y.Y.Y[500]
Jun 17 17:34:48 ip-10-198-0-164 charon: 13[MGR] checkin IKE_SA aws1vexternal-aws1oexternal[1]
Jun 17 17:34:48 ip-10-198-0-164 charon: 13[MGR] check-in of IKE_SA successful.
Jun 17 17:34:48 ip-10-198-0-164 charon: 16[NET] error writing to socket: Invalid argument
Jun 17 17:36:04 ip-10-198-0-164 charon: 03[JOB] got event, queuing job for execution
Jun 17 17:36:04 ip-10-198-0-164 charon: 03[JOB] no events, waiting
Jun 17 17:36:04 ip-10-198-0-164 charon: 08[MGR] checkout IKE_SA
Jun 17 17:36:04 ip-10-198-0-164 charon: 08[MGR] IKE_SA aws1vexternal-aws1oexternal[1] successfully checked out
Jun 17 17:36:04 ip-10-198-0-164 charon: 08[IKE] giving up after 5 retransmits
Jun 17 17:36:04 ip-10-198-0-164 charon: 08[IKE] establishing IKE_SA failed, peer not responding
Jun 17 17:36:04 ip-10-198-0-164 charon: 08[MGR] checkin and destroy IKE_SA aws1vexternal-aws1oexternal[1]
Jun 17 17:36:04 ip-10-198-0-164 charon: 08[IKE] IKE_SA aws1vexternal-aws1oexternal[1] state change: CONNECTING => DESTROYING
Jun 17 17:36:04 ip-10-198-0-164 charon: 08[MGR] check-in and destroy of IKE_SA successful

Aşağıda şimdiye kadar denedim:

1) Doğrulanmış katman 3

2) Yeniden Başlatılan Makineler

3) Solda ekleme denendi =

4) ipsec güncellemesi yaptıktan sonra ipsec yeniden başlatmayı denedi

5) Confif kurulumu altında nat_traversal = yes eklemeyi denedim (belgelere göre otomatik olarak nat_traversal kullanan ipsec statusall IKEv2 kullanılarak doğrulandığından bunun önemli olmaması gerektiğini unutmayın)

6) Virtual_private atlamayı denedi <- AWS openswan belgelerine göre kullanıldım, bu yüzden ben strongswan yapılandırmasına dahil ettim.

7) /etc/sysctl.conf dosyasında net.ipv4.conf.all.send_redirects = 0 ve net.ipv4.conf.all.accept_redirects = 0'ı devre dışı bırakmayı denedi

8) EIP yerine özel IP kullanılarak denenmiştir. Artık soket hatası almıyorum, ancak açıkçası iki IP birbirleriyle eşleşmek için iletişim kuramıyor ...

9) Bunu strongswan.conf dosyasına eklemeyi denedim: load = aes des sha1 sha2 md5 gmp rastgele nonce hmac inme çekirdeği-netlink soketi-varsayılan yukarı aşağı

10) leftfirewall kullanılarak denendi = evet, işe yaramadı

Lütfen yardım et! Teşekkürler!

DÜZENLEME # 1:

Michael'ın yanıtı orijinal sorunu çözdü, ancak yönlendirme ile ilgili yeni bir sorunum var. Her iki VPN örneği birbirine ping atamaz. Ayrıca, alt ağdaki rastgele bir örnekten, başka bir rastgele örneğe veya uzak uç VPN örneğine ping işlemi yapmaya çalıştığımda, aşağıdaki ping yanıtını alıyorum:

root@ip-10-194-0-80:~# ping 10.198.0.164
PING 10.198.0.164 (10.198.0.164) 56(84) bytes of data.
From 10.194.0.176: icmp_seq=1 Redirect Host(New nexthop: 10.194.0.176)
From 10.194.0.176: icmp_seq=2 Redirect Host(New nexthop: 10.194.0.176)
From 10.194.0.176: icmp_seq=3 Redirect Host(New nexthop: 10.194.0.176)
From 10.194.0.176: icmp_seq=4 Redirect Host(New nexthop: 10.194.0.176)

Açıkçası bu, Oregon alt ağındaki 10.194.0.80 ana bilgisayarı Oregon VPN örneğinden bir yanıt alabildiğinden, iki VPN örneği arasında bir yönlendirme sorunu olmalıdır (büyük olasılıkla strongswan yapılandırması veya örnek yönlendirme tablosu nedeniyle). Güzergah tablosu + örnekte traceroute:

root@ip-10-194-0-80:~# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         10.194.0.1      0.0.0.0         UG        0 0          0 eth0
10.194.0.0      0.0.0.0         255.255.255.0   U         0 0          0 eth0

root@ip-10-194-0-80:~# traceroute 10.198.0.164
traceroute to 10.198.0.164 (10.198.0.164), 30 hops max, 60 byte packets
 1  10.194.0.176 (10.194.0.176)  0.441 ms  0.425 ms  0.409 ms^C

OpenSwan'ı kullanırken, her örneğin yönlendirme tablosunda herhangi bir manuel değişiklik yapmam gerekmedi.

Oregon VPN örneğinin yönlendirme tablosu:

root@ip-10-194-0-176:~# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         10.194.0.1      0.0.0.0         UG        0 0          0 eth0
10.194.0.0      0.0.0.0         255.255.255.0   U         0 0          0 eth0

Biraz şaşırdım.

DÜZENLEME # 2:

VPN örnekleri arasında yönlendirme sorunu olmayabilir gibi görünüyor: / var / log / syslog, bir VPN örneğinden genel IP'den diğer VPN örneğine alınan paketleri gösterir

Jun 23 19:57:49 ip-10-194-0-176 charon: 10[NET] received packet: from 54.X.X.X[4500] to 10.194.0.176[4500] (76 bytes)

Çocuk Güvenlik Dernekleri ile ilgili bir sorun olduğu anlaşılıyor:

aws1oexternal-aws1nvexternal:   child:  10.194.0.0/16 === 10.198.0.0/16 TUNNEL, dpdaction=restart
Security Associations (1 up, 0 **connecting**):

/ Var / log / syslog:

Jun 23 19:52:19 ip-10-194-0-176 charon: 02[IKE] failed to establish CHILD_SA, keeping IKE_SA
Jun 23 19:52:48 ip-10-194-0-176 charon: 11[IKE] queueing CHILD_CREATE task
Jun 23 19:52:48 ip-10-194-0-176 charon: 11[IKE]   activating CHILD_CREATE task
Jun 23 19:52:48 ip-10-194-0-176 charon: 06[IKE] establishing CHILD_SA aws1oexternal-aws1nvexternal
Jun 23 19:52:48 ip-10-194-0-176 charon: 10[IKE] received FAILED_CP_REQUIRED notify, no CHILD_SA built
Jun 23 19:52:48 ip-10-194-0-176 charon: 10[IKE] failed to establish CHILD_SA, keeping IKE_SA
Jun 23 19:52:49 ip-10-194-0-176 charon: 14[CFG] looking for a child config for 10.194.0.0/16 === 10.198.0.0/16 
Jun 23 19:52:49 ip-10-194-0-176 charon: 14[CFG] found matching child config "aws1oexternal-aws1nvexternal" with prio 10
Jun 23 19:52:49 ip-10-194-0-176 charon: 14[IKE] configuration payload negotiation failed, no CHILD_SA built
Jun 23 19:52:49 ip-10-194-0-176 charon: 14[IKE] failed to establish CHILD_SA, keeping IKE_SA

*** EDIT # 3: Sorun çözüldü (uhh, aslında aşağıdaki EDIT # 4'e bakın ...) ****

Sorun düzeltildi.

1) Michael'ın yapılandırma talimatlarını doğru bir şekilde takip etmedim. Ayrıca bir rightsourceip ve leftsourceip'i birlikte yapılandırdım, böylece her iki örneğin de her ikisinin de başlatıcı olduklarına inanmasına neden oldum. Birinin başlatıcı, diğerinin talep sahibi olmasını sağladım; bu IKE sorununu çözdü.

2) Ben de açıkça esp parametresini ayarlamak zorunda olduğunu anladım. Halihazırda bir varsayılan olmasına rağmen (aes128-sha1,3des-sha1), örneğin esp OR ah (ancak her ikisini birden değil) kullanmayı bilmesi için esp parametresinin ayarlanması gerekir. Sonunda aes128-sha1-modp2048 kullandım.

Umarım bu yazı bir sonraki linux acemi bu kurmak yardımcı olur !!

Şerefe!

EDIT # 4: Sorun (gerçekten değil) çözüldü

Strongswan ile ilgili ayrı bir sorunu giderirken, "sol güvenlik duvarı" parametresini değiştirdim, test ettim, ayrı sorunumu düzeltmedim, sonra orig yapılandırmasına önceden geri döndüm (sol güvenlik duvarından yorum yaptı). Daha sonra artık tünele ping atamadığımı fark ettim. Ne olduğunu anlamaya çalışarak saatlerce çıldırdıktan sonra, ne olacağını görmek için esp parametresini yorumladım: ŞİMDİ TÜNELE KARŞI PING YAPABİLİRİM! <- Yani, bana hile oynamak etrafında çalışan bazı ipsec hayaletler olasılığı vardır ve esp parametresi gerçekten TS_UNACCEPTABLE hataları için düzeltme değildir (diğer kaynaklar çevrimiçi esp parametresi düzeltmek olduğunu belirtmek ...)

EDIT # 5: Sorun tamamen çözüldü

Sonunda her şeyi bir test ortamına taşıdım ve sıfırdan başladım. Ubuntu deposundaki (5.1.2) eski sürüm yerine en son sürümü (5.3.2) kullanarak kaynaktan yükledim. Bu, yukarıda yaşadığım sorunu çözdü ve VPN tüneli üzerinden birden fazla alt ağ arasında netcat (harika araç !!) kullanarak katman 7 bağlantısını doğruladı.

Ayrıca: VPC için DNS ana makine adlarını etkinleştirmek gerekli DEĞİLDİR (Amazon tarafından yanlış bir şekilde inanmaya yönlendirildiğim için), FYI>

Umarım bu yardımcı olur !!!!!!

Ek düzenleme 2/11/2017:

JustEngland'ın isteğine göre, aşağıdaki çalışma yapılandırmasını kopyalamak (herhangi bir şekilde tanımlamayı önlemek için belirli ayrıntıları dışarıda bırakmak):

Yan a:

# ipsec.conf - strongSwan IPsec configuration file

# basic configuration
config setup
# Add connections here.
conn %default
 ikelifetime= You choose; must match other side
 keylife= You choose; must match other side
 rekeymargin= You choose; must match other side
 keyingtries=1
 keyexchange= You choose; must match other side
 authby=secret
 mobike=no

conn side-a
 left=10.198.0.124
 leftsubnet=10.198.0.0/16
 leftid=54.y.y.y
 leftsourceip=10.198.0.124
 right=52.x.x.x
 rightsubnet=10.194.0.0/16
 auto=start
 type=tunnel
# Add connections here.


root@x:~# cat /etc/ipsec.secrets 
A.A.A.A B.B.B.B : PSK "Your Password"

B Tarafı:

# ipsec.conf - strongSwan IPsec configuration file

# basic configuration
config setup

conn %default
 ikelifetime= You choose; must match other side
 keylife= You choose; must match other side
 rekeymargin= You choose; must match other side
 keyingtries=1
 keyexchange= You choose; must match other side
 authby=secret
 mobike=no

conn side-b
 left=10.194.0.129
 leftsubnet=10.194.0.0/16
 leftid=52.x.x.x
 right=54.y.y.y
 rightsubnet=10.198.0.0/16
 rightsourceip=10.198.0.124
 auto=start
 type=tunnel

root@x:~# cat /etc/ipsec.secrets 
B.B.B.B A.A.A.A : PSK "Your Password"

Çalışma yapılandırmasını gönderir misiniz?
JustEngland

emin, yapılandırmayı orijinal soru gönderime düzenleme olarak ekleyecek. Artık kuruluma erişimim olmadığına dikkat edin, bu yüzden yapılandırmaların doğru olup olmadığını% 100 doğrulayamam; Ancak, olmalı :)
lobi

Yanıtlar:


7

VPC'de, bir örneğin genel IP adresi hiçbir zaman örneğin yığına bağlı değildir, bu nedenle hem iç özel adresi hem de dış genel adresi yapılandırmanız gerekir. Geçersiz argüman tahminen sizin örneğine bilinmemektedir genel IP adresi, doğrudan kaynak trafiğine deneyerek kaynaklanır.

left=10.10.10.10         # instance private IP of local system
leftsourceip=10.10.10.10 # instance private IP of local system
leftid=203.x.x.x         # elastic IP of local system
leftsubnet=10.x.x.x/xx

rightsubnet=10.x.x.x/xx
right=198.x.x.x          # elastic IP of remote system

Merhaba Michael, bu orijinal sorunu düzeltti, ancak şimdi strongswan yapılandırmasının neden olduğu bir yönlendirme sorunu var gibi görünüyor. Bir VPN örneğinden diğer VPN örneğine (zaman aşımları) ping atamıyorum ve alt ağ içinden farklı bir örnekten ping işlemi yapmaya çalışırsam, aşağıdakileri alıyorum: 10.194.0.176: icmp_seq = 4 Yönlendirme Ana Bilgisayarı (Yeni nexthop: 10.194.0.176)
lobi

Orijinal
yazımı

Anladım. Michaels'ın yapılandırmasını doğru bir şekilde uygulamıyordum (aynı zamanda rightsourceip'i dahil ettim, böylece hangisinin başlatıcı olduğunu ve hangisinin istekte bulunan olduğunu karıştırdım). Ben de açıkça esp parametresini ayarlamak gerekiyordu.
lobi

1

Sorun düzeltildi.

1) Michael'ın yapılandırma talimatlarını doğru bir şekilde takip etmedim. Ayrıca bir rightsourceip ve leftsourceip'i birlikte yapılandırdım, böylece her iki örneğin de her ikisinin de başlatıcı olduklarına inanmasına neden oldum. Birinin başlatıcı, diğerinin talep sahibi olmasını sağladım; bu IKE sorununu çözdü.

2) Ben de açıkça esp parametresini ayarlamak zorunda olduğunu anladım. Halihazırda bir varsayılan olmasına rağmen (aes128-sha1,3des-sha1), örneğin esp OR ah (ancak her ikisini birden değil) kullanmayı bilmesi için esp parametresinin ayarlanması gerekir. Sonunda aes128-sha1-modp2048 kullandım.


Bunun% 100 sabit olup olmadığından emin değilim. Orijinal yayında # 4 numaralı düzenlemeye bakın.
lobi
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.