Kegagalan penulisan GRE pada pptpd bukan masalah kata laluan
Protokol 47 bukan port 47. Baca dua mesej pptpd sebagai dua kerosakan berbeza, benarkan GRE di tempat hos memajukan, dan kekalkan MPPE daripada mematikannya.
Kegagalan penulisan GRE dalam log, dan naluri pertama ialah menetapkan semula kata laluan pengguna. Naluri itu hampir selalu salah. Mesej ini menerangkan laluan data, bukan pemeriksaan kelayakan: klien mungkin telah disahkan dengan jayanya dan kemudian tersekat pada peringkat ia mendaftar pada rangkaian. Dua mesej berbeza menunjuk kepada dua kerosakan berbeza, dan tiada satu pun selesai dengan kata laluan baharu.
Dua mesej, dua kerosakan berbeza
Kegagalan membaca bermaksud paket GRE tidak pernah sampai ke daemon, atau digugurkan semasa masuk. Sambungan kawalan mungkin kelihatan sihat sepenuhnya sedangkan tiada apa melintasi laluan data. Pengesahan ialah satu-satunya perkara yang terbukti berfungsi.
Kegagalan menulis biasanya bermaksud sesi telah merundingkan sesuatu yang kernel atau klien tidak dapat gunakan. Saluran kawalan selesai, dan pilihan yang dipersetujui semasa pertukaran itu tidak sepadan dengan apa yang titik akhir benar-benar boleh lakukan. Itu perselisihan konfigurasi, bukan peristiwa pengesahan.
Baca yang mana satu daripada dua itu muncul sebelum mengubah apa-apa. Kedua-duanya membawa anda ke lapisan berbeza, dan memperlakukannya sebagai satu simptom ialah sebab pelayan sama ditampal dua kali atas sebab tidak berkaitan. Baris log ialah satu-satunya diagnostik percuma yang anda dapat.
Protokol 47 bukan port 47
PPTP menggunakan TCP 1723 untuk menyediakan panggilan dan GRE untuk membawa muatan. GRE ialah protokol IP 47, bukan nombor port, jadi peraturan firewall yang membuka port 47 tidak membenarkan apa-apa yang berguna.
Penghala di laluan memerlukan ciri passthrough PPTP atau kebenaran GRE yang jelas. Tanpanya, jabat tangan TCP selesai dan terowong tidak pernah membawa paket, yang menghasilkan tepat kegagalan membaca di atas. Peraturan port 47 dalam firewall ialah petang yang paling kerap dibazirkan dalam protokol ini.
Perhatikan kedua-dua arah serentak pada pelayan daripada meneka sisi mana yang menggugurkan trafik: tcpdump -ni any port 1723 or proto gre.
Jika 1723 menunjukkan penyediaan panggilan manakala GRE kekal senyap, sekatan berada di atas hos. Jika GRE tiba dan daemon masih gagal, masalahnya setempat dan pilihan ialah tempat seterusnya untuk dilihat.
Benarkan GRE di tempat hos benar-benar memajukan
Memasukkan peraturan forward untuk GRE ialah ujian munasabah pada hos yang memajukan trafik terowong, dan ia bukan dasar. Peraturan ujian yang menerima segala-galanya satu protokol ialah diagnostik, bukan reka bentuk. Biarkan cukup lama untuk mempelajari sesuatu, kemudian gantikan dengan peraturan terhad.
Tambahkan peraturan input untuk paket yang dialamatkan kepada pelayan itu sendiri, kerana rantaian forward tidak melihatnya. Kemudian lihat pembilang peraturan sebelum dan selepas percubaan sambungan, yang memberitahu anda sama ada paket itu benar-benar tiba.
Kekalkan peraturan melalui perkhidmatan firewall distribusi daripada menjalankannya semula selepas setiap but semula. Pada hos nftables, padankan ip protocol gre dalam rantai input dan rantai forward.
Pastikan modul ppp_generic juga dimuatkan, dan periksa sama ada penjejakan sambungan menggugurkan arah balik. Kedua-duanya menghasilkan kegagalan yang kelihatan seperti masalah firewall dan bukan. Modul kernel yang hilang kelihatan tepat seperti protokol yang disekat sehingga anda memeriksanya.
Padankan pilihan dengan klien yang benar-benar anda miliki
Pembetulan daripada laporan lain terdapat dalam /etc/ppp/pptpd-options, di mana resipi menolak PAP, CHAP dan MSCHAP, mengulas baris require yang sepadan dan mengekalkan MPPE stateful. Resipi itu ditulis untuk satu campuran klien, dan menyalinnya secara buta merosakkan kes biasa. Baca baris penolakan sebagai pernyataan tentang klien yang penulis miliki, bukan sebagai cadangan.
Klien Windows biasanya memerlukan MS-CHAPv2 dengan MPPE-128. Kekalkan keperluan itu dan buang hanya pilihan yang benar-benar tidak dapat dirundingkan oleh klien.
# keep encryption; drop only what this client cannot negotiate
refuse-pap
refuse-chap
refuse-mschap
mppe-stateful
require-mschap-v2
require-mppe-128Mematikan penyulitan supaya sambungan berjaya ialah kemerosotan, bukan pembaikan. Uji varian sedemikian pada pautan makmal, kemudian pulihkan penyulitan sebelum perkhidmatan menghadapi klien sebenar. Sambungan yang berfungsi secara tidak selamat lebih buruk daripada yang gagal dengan jujur.
Baca nombor ralat klien
Kod berangka klien menyempitkan peringkat lebih pantas daripada log pelayan. Bacanya sebelum membaca apa-apa yang lain. 691 bermaksud kelayakan ditolak, 721 bermaksud pelayan tidak pernah menjawab, dan 619 bermaksud sambungan terputus. Dua minit dengan nombor itu menjimatkan satu jam dengan konfigurasi.
Bandingkan kod itu dengan log pelayan sebelum menyunting apa-apa, dan uji semula dengan klien yang sama selepas setiap perubahan. Jika tidak, kerosakan kedua tersembunyi di belakang yang pertama dan pembetulan kelihatan tidak berkesan.
Apabila log masuk berjaya dan tiada trafik bergerak, GRE kekal menjadi suspek. Itulah saatnya untuk kembali kepada tangkapan, bukan kepada stor kelayakan.