Dua aturan terpisah menentukan apakah sebuah terowongan VPN bertahan melewati firewall: port yang dihubungi klien dan protokol yang membawa muatan. Buka hanya yang pertama dan terowongan akan terautentikasi, lalu tidak memindahkan data. Minimumnya adalah satu port TCP plus GRE untuk PPTP, dua port UDP plus ESP untuk L2TP/IPsec dan IKEv2, serta satu port untuk SSTP, OpenVPN dan WireGuard. Arah, pelacakan status dan NAT menentukan sisanya.

Mulailah dari port yang dihubungi klien

Setiap keluarga punya titik masuk yang dihubungi klien lebih dulu, dan titik masuk itulah yang harus disebut aturan izin Anda. Klien PPTP terhubung ke TCP 1723. L2TP/IPsec memulai IKE pada UDP 500 dan berpindah ke UDP 4500 saat traversal NAT dipakai, dengan kerangka L2TP sendiri berada pada UDP 1701 di dalam terowongan. SSTP membungkus sesi dalam TLS pada TCP 443, IKEv2 bernegosiasi pada UDP 500 dan 4500, OpenVPN secara bawaan memakai UDP 1194 tetapi sering dipindahkan ke TCP 443, dan WireGuard mendengarkan pada UDP 51820.

FamilyRule to add on the gatewayTypical mistake
WireGuardUDP port from ListenPort, for the peer addressAssuming 51820 when the config says otherwise
OpenVPNThe configured UDP or TCP port, often 443Opening 1194 after the server moved
SSTPTCP 443 limited to the gateway IPAllowing 443 to any destination
IKEv2UDP 500 and UDP 4500, plus ESPAllowing only 500 and losing NAT-T
L2TP/IPsecUDP 500, 4500, ESP, and 1701 inside the tunnelExposing 1701 to the internet
PPTPTCP 1723 and IP protocol 47Writing a rule for TCP 47

Perlakukan angka-angka itu sebagai nilai bawaan, bukan sifat tetap. Antarmuka WireGuard memakai port dengar apa pun yang dinyatakan konfigurasinya, dan server OpenVPN bisa berada di port mana pun yang dipilih administrator. Baca konfigurasi server sebelum menulis aturan, karena firewall yang dibuka untuk 1194 tidak berguna bagi server yang dipindahkan ke 443.

Kolom ketiga adalah tempat sebagian besar tiket perubahan salah arah. Aturannya ada, tetapi menunjuk tujuan yang salah, arah yang salah, atau transport yang salah.

GRE dan ESP adalah nomor protokol, bukan port

GRE dan ESP tidak punya port sama sekali, jadi formulir firewall yang hanya menerima nomor port tidak bisa menyatakannya. GRE adalah protokol IP 47 dan ESP adalah protokol IP 50, keduanya dicocokkan melalui bidang protokol pada tajuk IP. Aturan yang ditulis sebagai port TCP 47 tidak cocok dengan apa pun, dan begitulah kebijakan PPTP terlihat benar namun tetap menjatuhkan setiap paket setelah jabat tangan.

Router konsumen menyembunyikan ini di balik kotak centang tembus yang memasang aturan protokol dan, untuk GRE, pembantu NAT yang diperlukan untuk memetakan aliran. Di firewall sungguhan Anda menambahkan protokolnya sendiri: izinkan protokol IP 47 ke server PPTP, izinkan protokol IP 50 ke gateway IPsec. Bila platform tidak menyediakan bidang protokol, enkapsulasi adalah jalan keluarnya, itulah sebabnya IKEv2 bisa mundur ke UDP 4500 dan mengapa OpenVPN serta WireGuard tidak pernah menemui masalah ini.

Periksa apa yang sebenarnya dicocokkan aturan sebelum menyalahkan klien. Penghitung paket yang tetap nol di gateway berarti aturan itu tidak pernah terpicu, dan berapa kali pun dipasang ulang di sisi klien, itu tidak berubah.

Arah, status dan NAT mengubah jawabannya

Klien yang menghubungi keluar dan gateway yang mendengarkan ke dalam adalah kebutuhan berbeda, dan daftar port yang sama bisa benar pada satu arah dan salah pada arah lainnya. Firewall berstatus melacak aliran UDP pada 500 dan 4500 dan membiarkan balasan kembali tanpa aturan kedua. ESP dan GRE tidak membawa port, jadi perangkat NAT tidak punya pegangan dan membutuhkan pembantu atau enkapsulasi untuk mengikuti sesi.

Traversal NAT adalah bagian yang sering terlewat. IKEv2 mulai pada UDP 500, mendeteksi perangkat NAT dan melanjutkan pada UDP 4500, sehingga kebijakan yang hanya mengizinkan 500 memberi terowongan yang terbentuk lalu diam. L2TP/IPsec melakukan gerakan yang sama. Jika tangkapan Anda menunjukkan pertukaran pertama tetapi bukan lalu lintas berkelanjutan, carilah aturan yang berhenti di 500.

Catat arah pada setiap aturan. «Izinkan UDP 4500» tidak berarti apa-apa sampai Anda menyebut dari mana ke mana, dan aturan yang benar untuk klien keliling biasanya salah untuk rekan situs-ke-situs.

Periksa setiap jalur dengan tangkapan

Jalankan tangkapan di gateway, bukan di klien: klien hanya mencatat apa yang tiba. Filter ini mencakup keluarga di atas dan menunjukkan tahap mana yang hilang:

sudo tcpdump -ni any tcp port 1723
sudo tcpdump -ni any udp port 500 or udp port 4500
sudo tcpdump -ni any proto gre
sudo tcpdump -ni any proto 50

Baca keluaran sebagai rangkaian. Ketika negosiasi muncul tetapi protokol muatan tidak, penjatuhan terjadi di suatu tempat antara klien dan gateway. Ketika keduanya muncul dan halaman tetap gagal, firewall bukan lagi tersangka; lihat perutean, DNS atau kumpulan alamat yang diberikan ke klien.

Pada mesin tanpa tcpdump, bukti yang sama datang dari penghitung antarmuka dan aturan. Bita masuk tetapi tidak keluar pada antarmuka terowongan menunjuk jalur balik, bukan aturan izin awal.

Tinggalkan seperangkat aturan yang bisa Anda pertahankan

SSTP pada TCP 443 tidak bisa dibedakan dari HTTPS biasa oleh filter berbasis port mana pun, dan itulah intinya ketika jaringan hanya mengizinkan lalu lintas web. Karena itu pula aturan 443 harus menyebut gateway sebagai tujuan, bukan seluruh internet. Hapus aturan sementara apa-saja-ke-apa-saja begitu terowongan berfungsi. Tulis aturan mana yang cocok, nomor protokol bila ada, dan arahnya, agar orang berikutnya mulai dari bukti.

Gateway cloud titik-ke-situs membuat pilihan terlihat: profil yang diunduh memakai SSTP pada 443 atau IKEv2 pada 500 dan 4500, dan Anda sebaiknya hanya membuka yang benar-benar dipilih profil. PPTP tidak sepadan dengan pengecualian GRE di jaringan modern, karena operator seluler sering menjatuhkan protokol 47 terlepas dari firewall Anda. Sebelum menutup tiket, pastikan aturan cocok dengan port pada konfigurasi server, bidang protokol diatur di tempat yang dibutuhkan keluarga itu, dan tujuannya adalah gateway bukan alamat sembarang.

Artikel terkait