Olùpèsè náà ń fọwọ́ sí, PPP ń bá àdírẹ́sì dúnnú, lẹ́yìn náà kò sí ohun tó ń lọ. Ping kùnà, aṣàwákiri kùnà, àpótí sì dà bí ẹni tó so mọ́ ní gbogbo àkókò. Àwòrán yìí kì í ṣe ìṣòro tábìlì ìtọ́nà, nítorí ìṣòro ìtọ́nà sábà máa ń fọ́ ìsopọ̀ ìṣàkóso pẹ̀lú. Ó jẹ́ ipa ẹrù, nínú PPTP sì ni ẹrù jẹ́ ètò ìsọ̀rọ̀ mìíràn yàtọ̀ sí èyí tí ó ṣẹ́ṣẹ̀ tán.

Àyẹ̀wò márùn-ún, ní ọ̀nà tí ó ń dá àkókò pọ̀ jù.

Àyẹ̀wò 1: ya ọ̀nà ìṣàkóso kúrò nínú ẹrù

PPTP ń fọwọ́ sí lórí TCP 1723, lẹ́yìn náà ó gbé ẹrù PPP nínú GRE, ètò ìsọ̀rọ̀ IP 47. GRE kì í ṣe TCP tàbí UDP, nítorí náà gbogbo ìlànà tí ó ń gbé ibùdókọ̀ ìṣàkóso kọjá kò sọ ohun kankan nípa rẹ̀. NAT tàbí ògiri iná tí ó ń gbà 1723 kọjá lè ju ètò ìsọ̀rọ̀ 47 sílẹ̀ láìsí ẹ̀dùn, ìpàdé sì wà ní ìdajì tí a kọ́ ní ọ̀nà tí ó dà bí àṣeyọrí.

Bí ìwọlé bá ń ṣiṣẹ́ tí kò sì sí pákẹ́tí tó padà, kọ́kọ́ gbà pé GRE ni, lẹ́yìn náà fi ìdí rẹ̀ múlẹ̀.

Àyẹ̀wò 2: fìdí olùrànlọ́wọ́ múlẹ̀ nínú kérnẹ́lì olùgbàlejò

Ìtọ́pọ̀ ìsopọ̀ kò lè so ìsopọ̀ ìṣàkóso TCP mọ́ ìṣàn GRE láìsí olùrànlọ́wọ́. Módùùlì náà ni nf_conntrack_pptp, ó ń gbé inú kérnẹ́lì olùgbàlejò, àti gbígbé rẹ̀ sínú àwòrán àpótí kò ní àbájáde nítorí àwọn módùùlì máa ń kan gbogbo olùgbàlejò. lsmod | grep nf_conntrack_pptp lórí olùgbàlejò Docker ni àyẹ̀wò náà. Bí kò bá sí, modprobe nf_conntrack_pptp ń gbé e fún kérnẹ́lì tó ń ṣiṣẹ́ kò sì sọ ohun kankan nípa ìgbà tó ń bọ̀, nítorí náà fi kún ìṣètò olùgbàlejò pẹ̀lú.

Módùùlì tí ó ń pòórá nígbà àtúnbí wá di tikẹ́ẹ̀tì kan náà ní oṣù tó ń bọ̀.

Àyẹ̀wò 3: ka ìlànà kérnẹ́lì tí ó ń pa á

Kódà tí módùùlì bá wà, àwọn kérnẹ́lì láti 4.7 máa ń ṣètò net.netfilter.nf_conntrack_helper sí 0 ní àkọ́kọ́, èyí tí ó ń pa ìpín olùrànlọ́wọ́ aládàáṣeṣe fún gbogbo ètò ìsọ̀rọ̀. Àkọ́kọ́ yìí ni ìdí tí módùùlì tí a fi sísọ́ tòótọ́ kò ṣe ohun kankan: kóòdù wà, ìlànà sì sọ pé kí a má lò ó. sysctl net.netfilter.nf_conntrack_helper ń sọ iye tó wà báyìí, ṣíṣe é sí 1 nígbà ṣíṣe ń jẹ́ kí olùrànlọ́wọ́ wà lẹ́ẹ̀kan sí. Tọ́jú iye náà nípasẹ̀ ìṣètò sysctl olùgbàlejò bí àfọwọ́kọ bá gbà á.

Ìpín aládàáṣeṣe ń jẹ́ kí ìrìnàjò dá àwọn ìrètí kalẹ̀ lọ́nà àìṣe déédé, ìdí náà sì ni tí a fi yí àkọ́kọ́ padà. Fi ààlà dé olùgbàlejò tí a gbẹ́kẹ̀lé, tàbí lo ìlànà tí ó ṣe kedere tí ó ń tọ́ olùrànlọ́wọ́.

Àyẹ̀wò 4: wo ọ̀nà àpótí lọ́tọ̀ọ̀tọ̀

Olùrànlọ́wọ́ tí a gbé kò dá ọ̀nà kankan. Àpótí nílò ọ̀nà sí olùpèsè PPTP, gbígbéjáde lórí olùgbàlejò sì gbọ́dọ̀ gba GRE láàyè ní ẹ̀gbẹ́ méjèèjì: iptables -L FORWARD -v -n ń fi hàn bóyá a gbà ètò ìsọ̀rọ̀ 47 àti bóyá àwọn kàńtà ń lọ. Àwọn ìlànà masquerade Docker ń túmọ̀ TCP àti UDP, kì í ṣe ètò ìsọ̀rọ̀ 47, nítorí náà àpótí aláàfò lè nílò ìgbàláàyè forward tí ó ṣe kedere àti, lórí àwọn olùgbàlejò kan, ìlànà ìtúmọ̀ tirẹ̀. Túbọ̀ fìdí rẹ̀ múlẹ̀ pé àpótí ní àtìlẹ́yìn ẹ̀rọ PPP tí àwòrán rẹ̀ ń retí.

Ka àwọn kàńtà dípò ọ̀rọ̀ ìlànà. Ìlànà tí ó wà tí kò sì bá ohunkóhun mu jẹ́ ọ̀ṣọ́.

Àyẹ̀wò 5: fi ìdí múlẹ̀ pé a ń tọ́pa GRE, lẹ́yìn náà pinnu nípa PPTP

Bí olùpèsè ṣe ń ṣiṣẹ́, ka tábìlì ìtọ́pọ̀. Ìwọlé ìṣàkóso PPTP tí ó dúró pẹ̀lú ìwọlé GRE tí ó ní í ṣe pẹ̀lú túmọ̀ sí pé olùrànlọ́wọ́ ń so àwọn ìṣàn pọ̀ àti pé àlébù tó kù wà níbòmíràn. Ìwọlé ìṣàkóso láìsí ìwọlé GRE túmọ̀ sí pé a ń ju ẹrù sílẹ̀ tàbí a kò ń tọ́pa rẹ̀, èyí tí ó ń mú ọ padà sí àyẹ̀wò 2 àti 3.

PPTP fúnra rẹ̀ ti pẹ́, MS-CHAPv2 sì rẹ̀wẹ̀sì. Bí olùpèsè bá tún pèsè L2TP/IPsec, IKEv2 tàbí WireGuard, gbígbé sí ọ̀kan nínú wọn yóò mú gbogbo ẹ̀ka ìṣòro yìí kúrò.

Níbi tí PPTP gbọ́dọ̀ dúró, ṣíṣe olùpèsè lórí olùgbàlejò dípò inú àpótí ń mú ìpele NAT àti àṣẹ́wọ́ kan kúrò, èyí tí ó sábà jẹ́ ìpinnu tó pọ̀ mọ́.

Àwọn àpilẹ̀kọ tó jọra