Empat hal harus selaras sebelum host Linux mengirim hanya SMTP-nya sendiri melalui terowongan: rute di tabel khusus, aturan kebijakan yang memilih lalu lintas, alamat sumber yang akan diterima peer, dan jalur balik yang bertahan terhadap asimetri. Masing-masing adalah konfigurasi terpisah dengan mode kegagalannya sendiri. Urutan di bawah adalah yang membuat kegagalan menunjuk ke bagian yang benar-benar salah. Ini pekerjaan perutean khusus port, bukan permintaan rute default VPN.

Aturan port bukan rute default

Aturan yang mencocokkan TCP yang dibuat secara lokal dengan port tujuan 25 mengirim lalu lintas itu ke tabel yang Anda namai. Aturan itu tidak menciptakan apa pun dengan sendirinya: ia memilih, dan tabel harus memuat rute yang dapat membawa paket. Menggabungkan keduanya hanya mencakup arah keluar satu protokol, jadi penerusan untuk host lain, koneksi surat masuk, dan IPv6 tetap di luar pengaturan. Menyebutnya kebijakan khusus port alih-alih default VPN menjaga batas itu tetap jujur.

Dua pengaturan wg-quick adalah prasyarat, bukan bagian dari kebijakan. AllowedIPs = 0.0.0.0/0 memungkinkan peer membawa tujuan IPv4 sembarang, dan Table = off menghentikan wg-quick memasang rute default-nya sendiri untuk prefiks itu. Jangan campur instruksi ini dengan manajer yang menerapkan kebijakan rutenya sendiri, karena keduanya akan berbeda pendapat tentang siapa yang memiliki tabel utama.

Tulis rute, pemilih, dan penjaga

Pilih nomor tabel dan sepasang prioritas yang tidak dipakai hal lain, lalu terapkan rute, pemilih, dan penjaga dalam urutan itu. Angka di bawah adalah contoh, bukan nilai yang dicadangkan:

ip -4 route add default dev wg0 src 10.77.0.2 table 51825
ip -4 rule add priority 10000 iif lo ipproto tcp dport 25 lookup 51825
ip -4 rule add priority 10001 iif lo ipproto tcp dport 25 unreachable

iif lo membatasi aturan pada lalu lintas yang berasal dari lokal, dan ipproto tcp dport 25 mengidentifikasi arah koneksi; referensi ip-rule mendokumentasikan kedua pemilih. Keduanya ada di kernel dan rilis iproute2 saat ini, dan pada sistem yang lebih lama aturan itu ditolak mentah-mentah, yang merupakan kegagalan lebih jelas daripada aturan yang dimuat dan tidak cocok dengan apa pun.

Aturan unreachable pada prioritas berikutnya adalah penjaga. Tanpanya, rute yang hilang di tabel 51825 jatuh ke default biasa, dan surat keluar melalui tautan fisik selama gangguan terowongan, yang justru merupakan kasus yang hendak dicegah oleh kebijakan itu.

Alamat sumber harus selaras

Preferensi src rute hanya mengisi sumber untuk koneksi yang belum mengikat sumbernya sendiri. Ini bukan terjemahan, dan tidak menggantikan pengikatan eksplisit, jadi daemon yang terikat ke alamat fisik tetap mengirim dari alamat itu. Jika itu yang Anda temukan, ubah pengaturan daemon itu sendiri atau rancang kebijakan terjemahan yang disengaja, karena masquerade menyeluruh yang terlambat adalah solusi lain dengan konsekuensi lain.

Di gateway, peer klien harus mengotorisasi sumber yang benar-benar diterimanya, yaitu 10.77.0.2/32 bukan prefiks tujuan yang lebar. Menyalin 0.0.0.0/0 milik klien ke setiap peer gateway mengaburkan peer mana yang memiliki lalu lintas mana. Gateway juga memerlukan penerusan, kebijakan firewall yang mengizinkan aliran, dan jalur balik, termasuk terjemahan keluar ketika hulu tidak dapat merutekan alamat terowongan privat.

Periksa jalur balik, lalu persistensi

Baca pencarian sebelum mempercayai apa pun, karena itu menunjukkan tabel dan sumber mana yang didapat setiap arah. Satu tujuan di port 25 dan tujuan yang sama di port 443 sudah cukup:

ip -4 route get 198.51.100.25 ipproto tcp dport 25
ip -4 route get 198.51.100.25 ipproto tcp dport 443

Pencarian pertama harus menyebut wg0 dan sumber yang dimaksud, dan yang kedua harus mempertahankan uplink biasa. Saat aplikasi mengikat alamatnya sendiri, tambahkan from dengan alamat itu ke pencarian. Arah balasan yang mencapai wg0 lalu dibuang secara lokal menunjuk ke penyaringan jalur balik IPv4, karena aturan hanya untuk port keluar tidak membuat pencarian balik memilih terowongan.

Di tempat perutean asimetris diizinkan, mode longgar yang dibatasi antarmuka melalui net.ipv4.conf.wg0.rp_filter=2 mungkin sesuai, dan ada baiknya memeriksa dulu maksimum efektif nilai all dan antarmuka. Jangan matikan validasi secara global sebagai jalan pintas. Lalu serahkan tabel, prioritas, dan penjaga kepada pemilik konfigurasi, dan buka koneksi baru setelah menyambung ulang untuk memastikan pemilihan masih berlaku. Ingatlah bahwa balasan dari pendengar SMTP lokal membawa port sumber 25 alih-alih port tujuan 25, yang merupakan pertanyaan kebijakan terpisah.

Artikel terkait