Openswan terhubung ke beberapa subnet kanan tidak berfungsi

14

Saya mencoba menggunakan Openswan (versi 2.6.37) untuk menghubungkan IPsec VPN dari jaringan lokal saya ke situs jarak jauh. Semuanya berfungsi dengan baik ketika saya hanya ingin terhubung ke satu subnet di situs remote. Namun, situs jarak jauh juga memiliki subnet tambahan yang ingin saya akses.

Ini adalah konfigurasi saya:

conn myConn
        type=tunnel
        left=192.168.139.14
        leftsubnet=192.168.139.0/24
        leftxauthclient=yes
        right=X.X.X.X
        rightsubnet=172.16.1.0/24
        keyexchange=ike
        auth=esp
        authby=secret
        phase2alg=3des-sha1
        pfs=yes

Ketika saya ganti rightsubnetdengan rightsubnets, seperti:

rightsubnets={172.16.1.0/24 192.168.3.0/24}

... maka koneksi berhasil dibuat tetapi hanya subnet terakhir dalam daftar yang tersedia. Setiap upaya untuk melakukan ping apa pun pada 172.16.1.0subnet gagal. Jika saya menukar urutan subnet di sekitar maka saya bisa ping 172.16.1.Xtetapi tidak bisa melakukan ping apa pun di subnet lainnya. Seolah-olah Openswan hanya menggunakan subnet terakhir dalam daftar untuk membuat koneksi.

Apakah saya melakukan sesuatu yang salah di sini?

Sedikit informasi tambahan yang saya lupa sebutkan (walaupun saya tidak yakin itu relevan): Klien Openswan saya ada di belakang router menggunakan NAT dan saya miliki nat_traversal=yesdi ipsec.conffile saya .

FixMaker
sumber
Apakah Anda menggunakan VLAN? Saya memiliki masalah yang hampir persis sama dan masalahnya adalah kesalahan VLAN
Sudahkah Anda mencoba membuat dua asosiasi keamanan, satu untuk setiap subnet?
gimmesudo
@Tyke, tidak, saya tidak menggunakan VLAN. Klien OpenSwan saya ada di belakang router menggunakan NAT - saya telah memperbarui pertanyaan untuk mencerminkan itu.
FixMaker
@ gimmesudo: Saya mencoba menduplikasi konfigurasi saya di atas untuk koneksi baru ( connection myConn2), dengan semuanya identik kecuali untuk rightsubnet. Ketika saya menggunakan ipsec auto --up myConnsaya bisa ping 172.168.1.X. Ketika saya mencoba memunculkan koneksi kedua ( ipsec auto --up myConn2), saya bisa melakukan ping 192.168.3.X tetapi koneksi pertama mati sepenuhnya.
FixMaker
Untuk menghubungkan sebagai klien di banyak router IPSec (seperti Cisco), Anda akan lebih mudah menggunakannya vpnc!
F. Hauri

Jawaban:

3

Sepertinya pemisah yang biasa untuk banyak subnet adalah koma , tetapi setidaknya openswan-2.6.32 bekerja dengan spasi juga.

Informasi menarik harus dicatat /var/log/secureyang bisa berisi petunjuk mengapa itu tidak berfungsi. Juga memposting output dari ip x s shdan ip x p sh.

skarap
sumber
Jika Anda sampai di sini mencoba untuk beralih dari satu host ke beberapa host, perhatikan bahwa kunci untuk beberapa subnet adalah dalam bentuk jamak ( rightsubnet*s*) alih-alih tunggal.
mgarciaisaia
1

Buat connkonfigurasi bagian untuk setiap subnet pada KEDUA titik akhir terowongan. Hanya satu dari mereka (yang pertama dimulai) yang akan memulai negosiasi SA, yang kedua (atau lebih) hanya akan membuat SPD baru dari subnet lebih lanjut.

Endre Szabo
sumber
Sayangnya saya tidak bisa melakukan ini karena titik akhir jarak jauh adalah router FortiGate pihak ketiga (tidak menjalankan OpenSwan). Saya mulai bertanya-tanya apakah masalahnya mungkin terkait dengan router yang tidak dapat mengatasi beberapa terowongan antara titik akhir yang sama.
FixMaker
1

Jika Anda menggunakan, rightsubnetsAnda harus menggunakan leftsubnetsjuga, tidak leftsubnet. Bahkan jika hanya ada satu subnet di sisi itu. Halaman manual ipsec.conf tidak dapat menjelaskan hal ini dengan baik, tetapi ada di sana.

Saya memiliki masalah yang sama selama berbulan-bulan dan baru saja menemukan jawabannya di sini: /server/571352/openswan-multiple-subnets-routing-issue

exor314
sumber
1
Bukan kasusnya. leftsubnets = {singletone}, harus identik dengan leftsubnet =. (Saya menulis kode)
mcr
Ini adalah solusi yang berhasil bagi saya menggunakan libeswan 3.15. Kiri saya punya satu subnet dan kanan punya beberapa. Jika saya mengkonfigurasi kiri menggunakan leftsubnet = dan kanan menggunakan rightsubnets = {} maka hanya hakubnet terakhir yang benar-benar terhubung. Setelah saya mengkonfigurasi kiri untuk menggunakan leftsubnets = {} dengan satu subnet, itu terhubung ke semua.
Adam Plumb
1

Sepertinya ada bug di OpenSwan di mana daftar subnet membutuhkan koma tambahan di akhir untuk berfungsi dengan benar. Mencoba:

rightsubnets={172.16.1.0/24,192.168.3.0/24,}

Perhatikan koma tambahan di bagian akhir.

Ryan Shillington
sumber
Bukan itu masalahnya, tidak ada kasus atau contoh uji yang memiliki koma ekstra.
mcr
-3

Seharusnya seperti ini

rightsubnets={172.16.1.0/24,192.168.3.0/24}

Gunakan koma ( ,) dan bukan spasi untuk memisahkan entri.

Madhu
sumber
1
Sepertinya itulah jawaban dari dua tahun lalu.
G-Man Mengatakan 'Reinstate Monica'