Satu gateway menjalankan WireGuard untuk peranti anda sendiri dan klien OpenVPN ke rangkaian orang lain. Pemajuan antara dua antara muka dalaman berfungsi, dan mudah membuat kesimpulan bahawa subnet hiliran kini sebahagian daripada perkhidmatan huluan. Ia bukan. Laluan yang ditarik oleh klien memberitahu gateway anda ke mana hendak menghantar permintaan; ia tidak berkata apa-apa tentang bagaimana rangkaian jauh memulangkan trafik kepada peranti yang tidak pernah didengarinya. Pilih model pemulangan yang benar-benar disokong huluan sebelum anda menambah satu peraturan pun.

Tentukan model pemulangan sebelum anda menyentuh penghalaan

Dalam panduan ini, klien hiliran menggunakan 10.90.0.0/24, alamat terowong huluan yang diberikan kepada gateway ialah 10.80.0.6, dan sumber jauh yang diluluskan ialah 172.20.0.30. Dua model sesuai dengan bentuk itu: kekalkan sumber hiliran dan dapatkan pihak jauh menghalakannya, atau terjemahkan sumber ke alamat terowong gateway itu sendiri. Semua yang berikut selepas keputusan ini bersifat mekanikal, dan keputusan itu sendiri memerlukan pemilik perkhidmatan. Satu baris di atas ialah perjanjian penghalaan dengan pihak jauh; yang lain ialah perubahan dasar tempatan yang boleh anda lakukan sendiri. Mengelirukan kedua-duanya itulah yang menjadikan perubahan sepuluh minit sebagai rundingan.

preserved:  10.90.0.23 -> 172.20.0.30
translated: 10.80.0.6  -> 172.20.0.30

Pilih satu baris dan berpegang padanya. Baris-baris itu alternatif, bukan langkah, dan mencampurkannya menghasilkan reka bentuk yang tiada siapa dapat jelaskan semasa semakan.

Pengekalan sumber dengan laluan

Pihak jauh menerima permintaan daripada alamat hiliran, jadi ia memerlukan laluan yang disokong dan pemilikan peer untuk subnet itu, serta kebenaran untuk menerimanya. Itu tetapan jauh, dan tiada laluan Linux tempatan menciptanya. Mintalah secara jelas dan bertulis, dengan awalan dan peer terowong yang akan membawanya, dan jangkakan jawapannya bergantung kepada sama ada perkhidmatan itu menyokong susunan tapak-ke-tapak langsung.

Jika jawapannya ya, konfigurasi tempatan adalah kecil: pemajuan diaktifkan, allowed-ips peer WireGuard yang meliputi julat hiliran, dan dasar firewall yang membenarkan lintasan dalam kedua-dua arah.

Terjemahan sumber yang sengaja

Jika perkhidmatan hanya memulangkan trafik ke alamat klien yang bersambung, terjemahkan sumber ke alamat itu semasa keluar dan kekalkan keadaan conntrack yang membalikkannya untuk balasan. Hadkan peraturan kepada sumber hiliran yang dimaksudkan, destinasi jauh yang dimaksudkan dan antara muka huluan. Peraturan yang menterjemah semua yang keluar dari setiap antara muka ialah dasar yang jauh lebih besar daripada keperluan ini, dan ia akan mengejutkan anda kemudian.

IPv6 memerlukan reka bentuknya sendiri; menyalin baris masquerade IPv4 bukanlah seni bina. Uji laluan yang diterjemah dengan sambungan baharu dan bukan yang di-cache.

Laluan data tempatan masih perlu berfungsi

Terjemahan tidak menghapuskan kerja tempatan: gateway masih memerlukan laluan ke destinasi hiliran, pemilikan sumber peer WireGuard yang betul, pemajuan diaktifkan dan dasar firewall sempit antara antara muka. Permintaan yang dijana pada gateway itu sendiri tidak melatih mana-mana kebenaran itu, sebab itulah ujian tempatan pada gateway lulus manakala peranti hiliran masih gagal.

Uji daripada peranti hiliran sebenar, bukan daripada gateway. Alamat sumber ialah inti pati seluruh latihan ini.

Satu sumber bermakna satu identiti sesi

Perkhidmatan jauh melihat sesi gateway yang disahkan dan alamatnya yang diterjemah, bukan pengesahan berasingan untuk setiap peranti hiliran. Kekalkan kebenaran setiap peranti dan identiti aplikasi secara jelas, dan sahkan dengan pemilik perkhidmatan bahawa gateway yang bertindak bagi beberapa peranti memang dibenarkan. Terjemahan bukan cara untuk memintas keperluan pendaftaran setiap peranti; jika perkhidmatan mewajibkan setiap peranti mendaftar, gunakan model itu atau rundingkan susunan tapak-ke-tapak.

Tulis pengesahan itu dalam runbook di sebelah peraturan, kerana penyemak seterusnya akan bertanya sama ada reka bentuk itu diluluskan atau hanya mudah.

Tentukan keadaan terputus, kemudian uji tiga permintaan

Tentukan apa yang berlaku apabila terowong huluan jatuh. Trafik jauh yang dibenarkan tidak sepatutnya mengikut secara senyap sandaran WAN biasa di tempat yang dilarang, jadi dasar firewall yang membenarkan lintasan juga mesti gagal tertutup. Kemudian uji tiga kes daripada peranti hiliran sebenar: permintaan dibenarkan yang berfungsi, permintaan tidak dibenarkan yang gagal, dan kegagalan huluan yang menghentikan yang dibenarkan.

Rekod pengunduran dalam satu baris bagi setiap peraturan, supaya perubahan boleh dibatalkan tanpa membina semula niat.

Artikel berkaitan