OpenVPN bersambung tetapi tiada apa yang mengalir: cari lapisan tempat paket jatuh
Terowong bersambung tanpa trafik mempunyai sekurang-kurangnya lima punca. Buktikan pendengar, tangkap paket luar, kemudian biarkan pembilang atau jejak menamakan peraturan.
OpenVPN berkata bersambung dan tiada trafik bergerak, ayat yang meliputi sekurang-kurangnya lima kerosakan tidak berkaitan. Mengedit peraturan tembok api sebelum tahu lapisan mana yang gagal menggandakan perkara tidak diketahui dan meninggalkan kekecohan kepada jurutera seterusnya. Bekerjalah dari proses ke luar sebaliknya, kerana setiap langkah di bawah sama ada membersihkan satu peringkat atau menyempitkan tempat paket mati. Urutan penting di sini: tangkapan yang diambil sebelum anda tahu alamat mana yang terikat akan membuktikan sesuatu, cuma bukan yang anda perlukan.
Soket itu sama ada terikat atau tidak
Perkhidmatan yang melaporkan aktif masih boleh terikat pada alamat atau pengangkutan yang tidak pernah anda maksudkan. Tanya soket itu sendiri: ss -lunp menyenaraikan pendengar UDP dan ss -ltnp menyenaraikan TCP, dan lajur yang berbaloi dibaca ialah alamat tempatan, bukan keadaan.
Jawapan kosong biasanya bermakna salah satu daripada tiga perkara: proses keluar selepas bermula, ia memuatkan fail konfigurasi lain, atau ia mendengar pada alamat yang berbeza daripada yang didail.
ss -lunp | grep 1194
ss -ltnp | grep 1194
Arahan local memakukan pendengar pada satu alamat, jadi klien yang menuju ke tempat lain pada hos yang sama ditolak sementara perkhidmatan dari luar masih kelihatan sihat. Nama instans juga boleh menunjuk ke fail yang tidak pernah anda edit, yang berlaku pada hos yang menjalankan dua profil bersebelahan.
Tangkap paket luar, bukan terowong
Tapis pada antara muka fizikal dan port sebenar, dengan antara muka anda sendiri diganti: tcpdump -ni eth0 udp port 1194. Paket keluar tanpa apa-apa yang kembali menunjuk kepada apa yang berada di hulu: penapisan penyedia, peranti NAT, atau alamat jauh yang bukan yang anda fikirkan. Ketenangan dalam kedua-dua arah menunjuk kepada penghalaan klien atau tembok api tempatan. Balasan yang tiba tanpa kemajuan terowong menunjuk kepada saluran kawalan, iaitu ketidakpadanan kunci atau sifer, bukan penapisan.
Tangkap kedua-dua arah dan pastikan fail pendek. Tangkapan panjang menimbus tiga saat yang menarik, dan jawapannya hampir selalu ada dalam pertukaran pertama.
Pembilang dahulu, jejak hanya apabila ia berbohong
Mulakan dengan pembilang, kerana ia tidak memakan kos. Sama ada nft list ruleset atau iptables -L -n -v menjawab satu-satunya soalan yang penting di sini: adakah peraturan itu sepadan? Urutan menentukan hasil, kerana padanan pertama menang, itulah sebabnya DROP lebar sebelum ACCEPT kemudian meninggalkan ACCEPT itu mati dan itulah sebabnya menambah peraturan begitu jarang membaiki apa-apa.
Pemilikan juga membuat orang tersandung. Kernel mengaitkan paket yang dijana secara tempatan dengan proses yang membuka soket, dan OpenVPN biasanya berjalan sebagai root, jadi peraturan yang dikunci pada ID pengguna biasa tidak pernah melihat trafik terowong itu sendiri. Periksa UID pemilik sebelum memutuskan bahawa peraturan itu salah.
Hanya apabila pembilang kekal samar-samar barulah log berbaloi dengan bunyi, dan itupun hanya untuk hirisan sempit: peraturan iptables yang mengehadkan kadar dan memberi awalan pada baris lognya, atau peraturan nftables yang membawa meta nftrace set 1 semasa nft monitor trace berjalan. Jejak menamakan rantaian dan peraturan yang menerima atau menggugurkan paket. Buang kedua-duanya selepas itu dan jauhkan pengelogan muatan.
Periksa pengangkutan juga. Perkhidmatan tembok api yang terhad kepada TCP tidak berkata apa-apa tentang pendengar UDP pada nombor itu, jadi peraturan yang dibaca dengan betul masih boleh menggugurkan setiap paket.
Penghalaan dan jalan balik
Paket yang diterima tetapi masih hilang memerlukan laluan destinasinya diperiksa. ip route get melaporkan laluan yang dipilih untuk satu alamat, dan penapisan laluan songsang boleh menggugurkan balasan yang tiba melalui antara muka yang tidak akan dipilih oleh jadual utama. Gejalanya kelihatan tepat seperti guguran tembok api, itulah sebabnya pemeriksaan ini datang sebelum peraturan NAT yang lain.
Pada get laluan, periksa penghantaran dan rantaian forward dan bukan rantaian input. Kemudian sahkan bahawa sisi jauh tahu cara mencapai alamat sumber, kerana jalan keluar yang berfungsi tanpa apa-apa yang kembali ialah ketenangan dalam kedua-dua kes.
Apa yang perlu dikatakan oleh rekod
Bagi setiap perubahan, catat peringkat yang anda uji, bukti yang anda baca dan nilai pembilang pada kedua-dua belahnya. Catatan itulah yang membuatkan "sekarang ia berfungsi" bertahan pada semakan seterusnya.
Dua jalan pintas memastikan catatan itu jujur. Paket yang tidak pernah meninggalkan hos tidak mungkin digugurkan oleh peraturan di tempat lain, seberapa meyakinkan konfigurasi sisi jauh kelihatan. Paket yang keluar dan kembali memindahkan soalan ke atas lapisan rangkaian, di mana pembilang tembok api tidak lagi mempunyai apa-apa untuk diberitahu kepada anda.