Bá ẹrọ ìbáraẹnisọ̀rẹ́ VPN Linux mu pẹ̀lú ìlànà ẹ̀rọ àtijọ́
Ka àwọn ebute tí a tẹ̀jáde ti ẹ̀rọ náà, lẹ́yìn náà fi ẹrọ ìbáraẹnisọ̀rẹ́ tó bá mu ṣiṣẹ́: pppd lórí GRE, strongSwan fún IKEv1 XAuth, tàbí openconnect fún ẹnubodè.
Ẹ̀ka ìlànà mẹ́rin ni ó ń bo fẹ́rẹ̀ẹ́ gbogbo ẹ̀rọ tó ṣì wà nínú àkójọpọ̀, ìkọ̀ọ̀kan wọn sì ń kùnà lọ́nà tó yàtọ̀ lórí Linux. Àwọn ebute tí a tẹ̀jáde àti àwọn àbá tí a ṣètò ní ẹ̀gbẹ́ jìnnà ni ó ń pinnu àpò rẹ, kì í ṣe ìpín tí o ń ṣàdédé ṣiṣẹ́. Fífi ohun tí ìrẹ́jẹ àpérò sọ ṣiṣẹ́ kí o sì ṣàtúnṣe títí ohun kan yóò fi so pọ̀ ni bí ọ̀sán kan ṣe ń pòórá. Ka ẹ̀rọ náà, fi í ṣiṣẹ́ ní ẹ̀kẹta, ṣàyẹ̀wò rẹ̀ ní ẹ̀kẹrin.
Ṣàkọsílẹ̀ ohun tí ẹ̀gbẹ́ jìnnà ń tẹ̀jáde
Kọ ìlànà, àwọn ebute àti ìjẹ́rìí tí ẹ̀rọ náà ń retí ṣáájú kí o tó ṣí olùṣàkóso àpò. Ẹ̀ka mẹ́rin ń bo ọ̀pọ̀ jùlọ ohun èlò àtijọ́, tábìlì tó wà nísàlẹ̀ sì ni gbogbo ìpinnu lórí ojú-ìwé kan.
| Family | Ports | Linux side |
|---|---|---|
| PPTP | TCP 1723 plus GRE, IP protocol 47 | pppd with a peer file |
| L2TP/IPsec | UDP 500, 4500, 1701 | NetworkManager plugin over strongSwan |
| IKEv1 aggressive with XAuth | UDP 500 | native strongSwan connection |
| AnyConnect-style portal | TCP 443 | openconnect with a TUN device |
Ìwé ìtọ́ni àti àwọn òfin odi iná ti ẹ̀rọ fúnra rẹ̀ gbára lé ju orúkọ ìlànà tó wà lójú-ìwé ìwọlé rẹ̀ lọ. Ẹ̀rọ tó ń polówó IPsec lè máa sọ IKEv1 nìkan, ìtẹ̀jáde firmware tí kò sẹ́ni tó fi sílò sì lè jẹ́ èyí tí yóò fi IKEv2 kún ní ìparí. Fi ojú-ọ̀nà dátà àti ebute ìṣètò múlẹ̀ pẹ̀lú, nítorí níbí ni ohun èlò àtijọ́ àti àwọn nẹ́tíwọ́kì òde òní ti yàtọ̀. Ṣíṣe àṣìṣe ní ìgbésẹ̀ yìí túmọ̀ sí ṣíṣàtúnṣe àṣìṣe ẹrọ ìbáraẹnisọ̀rẹ́ rẹ lòdì sí ẹ̀yà tí ẹ̀gbẹ́ kejì kò tíì ní rí.
PPTP: fi GRE hàn ṣáájú kí o tó ṣàtúnṣe pppd
PPTP lórí Linux kì í ṣe daemon tí o ń gbé kalẹ̀ bíkòṣe ìpè pppd, àwọn ohun àmúṣe ìsopọ̀ sì ń gbé inú fáìlì peer onílórúkọ tí pppd ń kà nígbà tí a bá pè é. Àwọn ìpín ṣì ń ṣe àpapọ̀ rẹ̀, bó tilẹ̀ jẹ́ pé àwọn àìlera tí a mọ̀ nípa ìlànà náà mú kí kò yẹ fún ohunkóhun tó ṣe pàtàkì, nítorí náà fi í pamọ́ gbọn-gbọn fún ẹ̀rọ tí kò fi ohunkóhun mìíràn pèsè. Ṣọ́ra fún GRE nígbà tí ẹrọ ìbáraẹnisọ̀rẹ́ ń ṣe ìdúnàádúrà, pẹ̀lú gbígbà kúkúrú dípò àròsọ. Ìkùnà tó ń gbà àkókò púpọ̀ jùlọ kì í ṣe ìjẹ́rìí bíkòṣe ojú-ọ̀nà dátà tó ṣáàsì.
pppd call branch-office
tcpdump -ni any proto gre -c 5
Bí ìṣètò bá parí tí ìsopọ̀ kò sì gbé ìṣàn rí, fura sí ojú-ọ̀nà GRE ṣáájú kí o tó fọwọ́ kan àwọn ẹ̀rí. Àwọn ẹgbẹ́ ààbò ojú-ọ̀run nílò òfin tí ó ṣe kedere fún ìlànà 47, àwọn nẹ́tíwọ́kì kan sì ń dínà rẹ̀ pátápátá láìsí àṣìṣe tó hàn. Dán wò láti inú nẹ́tíwọ́kì tí ìwọ yóò lò ní ti gidi, kì í ṣe láti inú ilé-ìdánwò tí ó gba gbogbo nǹkan láàyè.
L2TP/IPsec: àbá kan tó bá mu ṣẹ́gun ìgbìyànjú mẹ́wàá
Ka àkọsílẹ̀ daemon dípò àpótí ìbáraẹnisọ̀rẹ́ orí tábìlì, nítorí àpótí náà ń so ọ̀pọ̀ ìkùnà ọ̀tọ̀ọ̀tọ̀ pọ̀ sí ìfiránṣẹ́ kan. Àṣìṣe NO_PROPOSAL_CHOSEN jẹ́ ti ìpín àkọ́kọ́: ẹrọ ìbáraẹnisọ̀rẹ́ pèsè ìforúkọpamọ́, hash tàbí ẹgbẹ́ Diffie-Hellman tí olùpèsè kò ní gbà. Ṣe àkójọ ohun tí ẹ̀rọ náà ń ṣèrànwọ́ fún kí o sì kọ àbá kan tó bá mu, nítorí àwọn àdàpọ̀ àìlẹ́rú máa ń fúnni ní àṣìṣe kan náà jẹ́jẹ́. Lórí tábìlì, ẹrọ ìbáraẹnisọ̀rẹ́ tó wúlò ni ẹ̀yà NetworkManager L2TP pẹ̀lú strongSwan tàbí Libreswan nísàlẹ̀.
Okùn àbá tó túmọ̀ sí ohun kan fún ẹ̀yà orí tábìlì lè túmọ̀ sí ohun mìíràn fún daemon tí a ń fi iṣẹ́ lé, nítorí náà pa ìṣọ̀rọ̀-ọ̀rọ̀ mọ́ tó bá yẹ fún ìpele tí o ń ṣàtúnṣe. Bí ẹ̀rọ náà bá tún béèrè àṣírí ojú-ọ̀nà, ìyẹn ìgbésẹ̀ ọ̀tọ̀ ni sí kókó IPsec. Fi ìdánilójú pé èwo nínú àwọn méjèèjì ni ojú-ìwé ń béèrè ṣáájú kí o tó tẹ ohunkóhun sínú rẹ̀.
IKEv1 onígbóná pẹ̀lú XAuth, àti ọ̀ràn ẹnubodè
Ipò ìparí irú FortiGate sábà máa ń fẹ́ ipò onígbóná pẹ̀lú XAuth àti àdírẹ́sì ní ipò tí a ṣètò, èyí tí ẹ̀yà àwòrán lè má ṣàfihàn rárá. Daemon ìbílẹ̀ ń kojú rẹ̀, àti blọ́ọ̀kì tó wà nísàlẹ̀ jẹ́ ìrísí ìṣètò yẹn, kì í ṣe fáìlì kíkún. Wo àwọn ìwé olùpèsè tó wà lọ́wọ́lọ́wọ́ fún àwọn iye àbá.
conn branch
keyexchange=ikev1
aggressive=yes
leftauth=psk
leftauth2=xauth
leftsourceip=%config
right=203.0.113.10
Àwọn ìtẹ̀jáde strongSwan àtijọ́ ń lò xauth=client níbi tí ẹ̀yà 5 ń lò leftauth2=xauth, nítorí náà àfọ́wọ́kó kan lè kùnà lórí ìṣọ̀rọ̀-ọ̀rọ̀ nìkan. Fún ẹnubodè TLS, openconnect tó ń sọ ìlànà AnyConnect ń kojú Cisco àti ọ̀pọ̀ jùlọ àwọn ọjà tí a tún orúkọ wọn ṣe, ó sì nílò ẹ̀rọ TUN pẹ̀lú àwọn ẹ̀tọ́ láti ṣètò rẹ̀. Fi àdírẹ́sì ẹnubodè náà jáde gẹ́gẹ́ bí aṣàwákiri ṣe ń fi í hàn, pẹ̀lú ojú-ọ̀nà èyíkéyìí tí ẹ̀rọ náà ń retí, lẹ́yìn náà ṣàyẹ̀wò àdírẹ́sì tí a yàn ṣáájú kí o tó dán ohunkóhun lẹ́yìn rẹ̀ wò. Ṣíṣe ojú-ìwé náà ṣáájú ń yọ ẹ̀ka ìyàlẹ́nu kan kúrò nígbà ìṣètò.
sudo ip tuntap add dev tun0 mode tun
sudo openconnect --protocol=anyconnect vpn.example.com
So pọ̀, lẹ́yìn náà ṣàyẹ̀wò ní ìtòlẹ́sẹẹsẹ tó dúró ṣinṣin
Ṣiṣẹ́ olùṣàkóso VPN kan ṣoṣo ní ẹ̀ẹ̀kan, nítorí profáìlì NetworkManager àti daemon tí a fi ọwọ́ gbé kalẹ̀ yóò jà fún àwọn ọ̀nà àti DNS. Sọ profáìlì náà kalẹ̀ ṣáájú kí o tó dán ìsopọ̀ ọwọ́ wò, kí o sì fi ìdánilójú pé kò sí ojú-ìwé ojú-ọ̀nà àtijọ́ tó ṣẹ́kù. Lẹ́yìn náà ṣàyẹ̀wò ní ìtòlẹ́sẹẹsẹ yìí: àdírẹ́sì ojú-ọ̀nà, ọ̀nà sí ẹ̀rọ ìkọ̀kọ̀ kan ṣoṣo tí o nílò, ìyọ́nú orúkọ, àti ní ìparí ìbéèrè gidi. Àmì àwọ̀ ewé ń fi ìjẹ́rìí hàn àti kò fi ohunkóhun mìíràn hàn.
ip -4 addr show tun0
ip route get 10.20.30.10
getent hosts app.internal
Bí ìgbésẹ̀ kan bá kùnà, dúró níbẹ̀ dípò dídán èyí tó tẹ̀lé wò, nítorí ìkùnà DNS nísàlẹ̀ ọ̀nà tó já kò kọ́ ọ ní ohunkóhun. Fi ẹ̀dà profáìlì tó ń ṣiṣẹ́ pamọ́ ṣáájú ìdánwò, nítorí fáìlì ìsopọ̀ tí a pa rẹ́ ń sọnù ní ìrọ̀rùn, ó sì máa ń ṣòro láti tún un kọ́. Pa àwọn iye àbá mọ́ nínú àkọsílẹ̀ kan náà pẹ̀lú àwòṣe ẹ̀rọ àti ẹ̀yà firmware, nítorí àkọsílẹ̀ yẹn ni ìyàtọ̀ láàrin ìṣíkiri àti iṣẹ́ àwòkẹ́kọ̀ọ́ ìgbàgbé nígbà tí a bá pààrọ̀ àpótí náà.