Хэн нэгэн 1723-ыг дамжуулж, клиент серверт хүрч, баталгаажуулалт эхэлсний дараа бүх зүйл алдаагүйгээр зогсдог. Байгалийн дүгнэлт нь буруу нууц үг тул нууц үгийг гурван удаа дахин бичдэг. Дамжуулалт нь зөв байсан бөгөөд нэвтрэх мэдээлэл нь зөв байсан. Эвдэрсэн зүйл бол дамжуулалт хэзээ ч хамраагүй хоёр дахь протокол, мөн түүнд туслахаа чимээгүй зогсоосон цөмийн өгөгдмөл утга юм.

Дамжуулалт хэзээ ч асуудал байгаагүй

Порт дамжуулах дүрэм нь TCP эсвэл UDP урсгалыг тодорхойлдог. Сессийн дунд өөр IP протокол руу шилждэг ачааг тодорхойлж чадахгүй бөгөөд PPTP яг үүнийг хийдэг.

Тиймээс холболт гацах хүртэл эрүүл харагдана. Порт дүрмийн удирдаж чадах хэсэг нь амжилттай болсон бөгөөд удирдаж чадахгүй хэсэг нь яг бүтэлгүйтсэн хэсэг юм.

Удирдлагад TCP, өгөгдөлд GRE

Дуудлагыг TCP 1723 дээр тохиролцдог. Тэр боссны дараа ачаа GRE рүү, IP 47 протокол руу шилждэг бөгөөд энэ нь портын дугаар огт зөөдөггүй. Портуудад тулгуурласан дүрэмд тааруулах зүйл байхгүй.

GRE-ийн зөөдөг зүйл бол толгой хэсэгт байх дуудлагын танигч бөгөөд NAT орчуулагч тэр талбарыг хоёр чиглэлд тууштай дахин бичих ёстой, эс тэгвээс сессийн хоёр хагас хоорондоо санал нийлэхээ болино. Нэг чиглэлийг дахин бичээд нөгөөг бичихгүй бол баталгаажсаны дараа өгөгдлийн пакет бүрийг хаядаг сесс үүснэ. Шинж тэмдгийн хэлбэр яг ийм байдаг: амжилт, дараа нь чимээгүй.

PPTP-гүй нүцгэн GRE ийм дахин бичилт шаарддаггүй, тиймээс энгийн GRE туннель нэг л зам дээр PPTP клиентэд бүтэлгүйтдэг чиглүүлэгчээр ажиллаж чадна.

Дөрвөн модуль ба тэдгээрийг унтраасан sysctl

Хоёр модуль фрэймчлэлийг хариуцаж, nf_conntrack_proto_gre ба nf_nat_proto_gre. Өөр хоёр нь дуудлагын танигчийг хариуцаж, nf_conntrack_pptp ба nf_nat_pptp. Сүүлийг нь ачаалснаар бусад нь хамаарлаар татагдана, тиймээс модулийн жагсаалтад дөрвийг нь харуулах ёстой.

Хуучин заавар 2.6 үеийн ip_ угтвар ашигладаг. Эдгээр команд юу ч ачаалахгүй байхдаа ажиллаж байгаа мэт харагдаж болно, тиймээс гарах төлөв биш, ачаалагдсан жагсаалтыг шалгаарай.

Тэднийг ачаалсан байх нь хангалттай байхаа больсон. Linux 4.7-оос хойш net.netfilter.nf_conntrack_helper sysctl анхдагчаар 0 бөгөөд энэ нь шинэ урсгалуудад туслахын автомат оноолтыг идэвхгүй болгодог. Чиглүүлэгч бүх модультай байж болох ба гэсэн хэдий ч юу ч орчуулахгүй байж болно. Модулийн жагсаалтыг дахин харахын өмнө үр дүнтэй утгыг шалгаарай.

Нэг бол автомат оноолтыг бүхэлд нь дахин асаа, эсвэл туслахыг хэрэгтэй урсгалуудад холбож, бусад бүхнийг тайван орхи:

iptables -t raw -A PREROUTING -p tcp --dport 1723 -j CT --helper pptp

Хоёр дахь хувилбар нь илүү тохиромжтой. Энэ нь бүх чиглүүлэгч дээр автомат оноолтыг дахин идэвхжүүлэхийн оронд зан төлөвийг PPTP урсгалаар хязгаарладаг.

Портгүй протоколыг нээх

1723-ыг зөвшөөрдөг галт ханын дүрэм 47 протоколын талаар юу ч хэлдэггүй. firewalld дээр протоколыг клиент рүү харсан бүсэд зөвшөөр. Энгийн iptables дээр оролтын хэлхээнд gre протоколыг хүлээн ав.

Дараа нь хоёр талд бичлэг хий. Клиентээс гарч буй пакетуудад хариу ирэхгүй бол буцах зам нь шүүгдсэн гэсэн үг бөгөөд энэ нь татгалзсан итгэмжлэлээс өөр гэмтэл юм.

Холбогдсоны дараа хэмжээний хязгаар

GRE толгой нэмж, доторх PPP бүр ч нэмдэг тул ажиллаж буй холбоос 1500-аас хамаагүй доогуур MTU мэдээлдэг. Жижиг хариунууд ачаалагдаж, том нь гацдаг нь эхний асуудал шийдэгдэх мөчид гарч ирэх хоёр дахь, хамааралгүй асуудал мэт харагддаг.

Клиентийн PPP адаптер дээр MTU-г уншиж, чиглүүлэгчийн өөрийн тооцоололтой нийцүүл ямар нэг зүйл ажиллах хүртэл тоог буулгахын оронд. Бүрэн хэмжээний пакетууд гарч юу ч буцаж ирэхгүй бол энэ нь орчуулга биш, тэр хязгаар руу заадаг.

Замыг засах нь хэрэглэгчийг ажилд нь буцаадаг бөгөөд энэ нь PPTP-г сайн сонголт болгодоггүй. MS-CHAPv2 ба RC4 эртнээс хоцрогдсон тул модуль ачаалахыг түр зуурын засвар гэж үзэж, дэмжигддэг протокол руу шилжихийг төлөвлөөрэй.

Холбоотой нийтлэлүүд