Dua terowongan OpenVPN di satu host Linux: siapa pemilik rutenya?
Dua profil klien dapat hidup berdampingan setelah kumpulan alamat, rute yang didorong, dan klaim rute bawaan ditetapkan. Putuskan kepemilikan lebih dulu, lalu gunakan tanda untuk jalur kembali.
Dua profil terhubung, dan salah satunya diam-diam membawa lalu lintas yang ditujukan untuk yang lain. Host Linux dapat menjalankan kedua klien OpenVPN sekaligus tanpa kesulitan. Yang tidak dapat dilakukannya adalah memutuskan untuk Anda proses mana yang boleh mengklaim prefiks mana. Keputusan itu harus diambil sebelum terowongan kedua naik, bukan setelah sumber daya berhenti menjawab.
Mulai dari pekerjaan yang harus dilakukan tautan kedua
Kantor yang dapat dijangkau melalui satu profil dan laboratorium yang dapat dijangkau melalui profil lain memerlukan kedua terowongan naik dan tidak ada yang mengklaim semuanya. Satu aplikasi keras kepala yang harus keluar melalui profil kedua memerlukan aturan kebijakan, bukan rute bawaan kedua. Tautan cadangan hanya memerlukan satu terowongan berjalan pada satu waktu, jadi cadangannya tidak boleh mulai bersama mesin.
Itu tiga konfigurasi berbeda, dan ketiganya rancu karena semuanya dimulai dengan cara yang sama: profil kedua dan koneksi yang berhasil. Tuliskan tata letak yang dimaksud lebih dulu, lalu konfigurasikan ke arah itu. Satu kalimat niat menghemat satu jam pengambilan paket.
systemctl list-units --type=service 'openvpn-client@*' ip -4 route show default
Perintah pertama mendaftar instans yang berjalan, termasuk yang dijalankan secara manual di luar manajer. Perintah kedua mencetak klaim rute bawaan saat ini, yaitu keadaan yang nanti harus Anda jelaskan.
Kumpulan alamat yang tumpang tindih rusak sebelum perutean
Dua server akan dengan senang hati membagikan alamat dari 10.8.0.0/24 yang sama. Klien lalu memegang dua antarmuka dalam satu prefiks tanpa apa pun yang menyatakan tujuan mana milik yang mana, dan perilaku yang dihasilkan tampak seperti kerusakan perutean tetapi sebenarnya kerusakan penomoran. Penomoran ulang kumpulan alamat berbiaya satu suntingan konfigurasi; setiap akal-akalan perutean setelahnya berbiaya satu akhir pekan. Periksa kumpulan alamat sebelum Anda menambahkan rute untuknya.
Lihat juga LAN lokal. LAN rumah bernomor 192.168.1.0/24 yang juga dibuka satu terowongan menghasilkan ambiguitas yang sama, dan gejalanya adalah nama host yang ter-resolve sementara koneksi tidak pernah selesai. Itu tampak seperti kerusakan resolusi nama sampai Anda mencetak rutenya.
ip -4 addr show ip route show table all | grep -E '10\.|192\.168\.'
Bandingkan kedua keluaran dengan kedua konfigurasi server sebelum menyentuh klien. Jika prefiksnya tumpang tindih, berhenti dan nomori ulang, karena berapa kali pun di-restart tidak akan memisahkannya.
Beri setiap profil unitnya sendiri dan setiap prefiks seorang pemilik
Setiap profil mendapat nama instans sendiri dan berkas konfigurasi sendiri, jadi instans bernama office memuat office.conf sementara yang bernama lab memuat lab.conf. Konfirmasikan pemetaan itu melalui manajer layanan alih-alih memercayai daftar direktori, karena drop-in dapat mengubah berkas mana yang dimuat. Salah memetakan berarti Anda menyetel profil yang tidak berjalan.
Lalu tetapkan siapa yang memasang rute. Ketika server mendorong kumpulan yang tidak kompatibel, entah tolak dorongan itu dan daftar prefiksnya sendiri, atau biarkan satu profil mempertahankan rute bawaan dan arahkan yang lain dengan aturan kebijakan. Dua proses yang keduanya memasang rute bawaan berakhir dengan pemenang diam-diam dan tanpa catatan tertulis atas keputusan itu.
systemctl cat [email protected] grep -E 'route-nopull|pull-filter|redirect-gateway' /etc/openvpn/client/lab.conf
Yang pertama menampilkan unit beserta penimpaan apa pun yang mengubah argumennya. Yang kedua menunjukkan apakah profil menerima rute yang didorong sama sekali, dan itulah sakelar yang menentukan semua hal berikutnya.
Tanda menahan balasan pada antarmuka tempat balasan itu datang
Ketika setiap terowongan melayani sumber yang berbeda, balasan bisa keluar melalui tautan yang salah dan koneksi mati setelah paket pertama. Pola yang bertahan adalah menandai paket yang datang berdasarkan antarmuka masukan, memulihkan tanda itu pada balasan, dan memberi setiap tanda tabel dengan gateway bawaannya sendiri.
Penyaringan jalur balik yang longgar biasanya harus dilonggarkan untuk antarmuka yang terdampak, karena balasan memang sah datang melalui tautan yang tidak akan pernah dipilih tabel utama. Jaga tanda tetap sempit agar tidak pernah menangkap lalu lintas terenkripsi terowongan itu sendiri, yang akan mengirim terowongan melewati dirinya sendiri.
ip rule show ip route show table 101 sysctl net.ipv4.conf.all.rp_filter
Baca aturan yang ada sebelum menambahkan satu lagi. Prioritas ganda dan tabel yang terlupakan adalah alasan biasa kebijakan tanda tampak tidak berefek sama sekali.
Buktikan isolasi dengan menghentikan satu tautan
Dengan kedua terowongan naik, catat alamat setiap antarmuka, rute ke satu host di belakang setiap terowongan, dan jalur yang diambil tujuan yang tidak terkait. Mintalah pencarian kepada kernel alih-alih membaca satu tabel, karena satu tabel tidak pernah menunjukkan keputusan akhir.
Lalu hentikan satu instans dan saksikan antarmuka serta rutenya lenyap sementara yang lain terus berjalan. Putus pada yang bertahan berarti keduanya masih berbagi nama perangkat, rute, atau aturan firewall yang tidak dipisahkan siapa pun.
Bawa kembali profil yang dihentikan dan ulangi pemeriksaan yang sama. Ketika terowongan hanya bertahan pada start pertama setelah reboot, Anda sedang melihat cacat siklus hidup, bukan desain perutean.