Tunnel VPN tidak pernah terhubung: di mana paket sebenarnya berhenti
Tunnel yang tidak pernah terbentuk meninggalkan log kosong di kedua ujung. Lacak apakah GRE, ESP, atau UDP 4500 dibuang, dan kenali NAT operator sebelum mengedit server.
Klien terus mencoba lagi, log berhenti sebelum handshake selesai, dan server tidak mencatat apa pun. Pola itu menjauhkan dari kredensial dan mengarah ke jalur: sesuatu di antara kedua ujung menolak membawa protokol yang dibutuhkan tunnel. Tentukan di mana paket berhenti sebelum menyentuh salah satu konfigurasi, karena protokol yang difilter dan kata sandi salah menghasilkan kesalahan ramah yang sama di sebagian besar klien. Pengujian diurutkan menurut biaya, yang termurah lebih dulu.
Buktikan di mana lalu lintas berhenti
Tangkap pada antarmuka keluar klien dan pada server pada saat yang sama. Bandingkan apa yang keluar dengan apa yang tiba, dan catat ke arah mana perbedaannya muncul.
Tidak ada apa pun di server berarti jalur atau NAT pertama membuang lalu lintas, sedangkan kedatangan tanpa balasan menunjuk ke firewall di server atau rute balik yang tidak ada. Router yang sering mengakhiri tunnel jarang menyimpan log yang berguna, jadi tangkapan menjadi catatannya. Catat port tujuan dan nomor protokol, karena kedua kegagalan terlihat sama di dialog klien.
PPTP mati tanpa protokol 47
PPTP membawa kendali pada TCP 1723 dan datanya di dalam GRE, yang merupakan protokol IP 47 dan bukan nomor port. Meneruskan hanya 1723 menghasilkan hasil klasik: koneksi terautentikasi lalu menjadi diam, karena tidak ada aturan untuk protokol yang membawa muatan. Klien tidak dapat membedakannya dari kata sandi yang ditolak, karena itu tangkapan harus datang sebelum perubahan konfigurasi.
Passthrough berjalan ke arah berlawanan dari penerusan masuk, dan firmware cukup sering memakai satu label untuk keduanya sehingga membingungkan semua orang. Pada klien Linux firewall lokal dapat membuang GRE jauh sebelum router terlibat, jadi protokol 47 memerlukan aturannya sendiri dan pembantu conntrack harus dimuat. ufw Ubuntu menyimpan aturan itu di berkas before, karena aturan allow biasa tidak dapat menyatakan nomor protokol. Setelah itu muat ulang firewall alih-alih memulai ulang mesin.
# /etc/ufw/before.rules, inside *filter
-A ufw-before-input -p gre -j ACCEPT
sudo ufw allow 1723/tcp
sudo modprobe nf_conntrack_pptp
sudo conntrack -L | grep greL2TP dan IPsec di belakang dua NAT
L2TP di dalam IPsec memerlukan UDP 500 untuk pertukaran kunci, UDP 4500 saat NAT terdeteksi, dan ESP sebagai protokol 50. Masing-masing difilter secara terpisah, jadi aturan yang mengizinkan satu tidak membuktikan apa pun tentang dua lainnya. Dua router secara seri menerjemahkan setiap paket dua kali, dan kedua ujung tidak lagi sepakat tentang apa yang dinegosiasikan.
Jembatani modem luar, atau matikan NAT pada router dalam, agar alamat publik mencapai perangkat yang mengakhiri tunnel. Di mana keduanya tidak mungkin, tunnel harus dimulai dari dalam batas NAT ganda, bukan diakhiri di sana.
Jaringan operator dan berbagi alamat
Alamat WAN di dalam 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, atau 100.64.0.0/10 berarti router tidak memiliki alamat publik dan tidak ada penerusan masuk dari internet yang dapat mencapainya. NAT tingkat operator juga menyaring protokol yang tidak diharapkannya, dan GRE sering menjadi korban pada tautan seluler. Bandingkan alamat WAN pada router itu sendiri, bukan alamat yang dilaporkan situs pencarian untuk klien di belakangnya.
Menjalankan router yang sama pada jalur kabel memisahkan temuan operator dari kesalahan konfigurasi dalam satu pengujian. Di mana operator menolak protokol itu, pilihan yang tersisa adalah transport lain pada 443 atau tunnel yang dimulai dari dalam.
Baca daftar pendengar sebelum menutup port
Pemindaian port yang mengkhawatirkan sering kali hanya kumpulan fitur yang dikirim dalam keadaan aktif. Inventarisasi pendengar, cocokkan setiap soket dengan fitur, lalu nonaktifkan fiturnya alih-alih memblokir port, agar kedua pandangan tidak menjauh.
ss -lntup
systemctl list-units --type=service --state=running | grep -i vpn
nc -vz 203.0.113.10 1723
nc -vzu 203.0.113.10 4500Bawaan SoftEther adalah contoh bagus: TCP 443, 992, dan 5555, dengan fitur L2TP/IPsec dan tunnel DNS menambahkan soketnya sendiri. Menonaktifkan fitur itu menghapus pendengar alih-alih menyembunyikannya, dan pemeriksaan dari host luar memberi tahu apakah operator membiarkan port lewat sama sekali. Pendengar yang menjawab secara lokal bisa tetap tertutup di hulu, jadi bandingkan alamat WAN router itu sendiri dengan apa yang dilaporkan layanan luar.