Kas soovid tööl Linuxit kasutada, aga sinu ettevĂ”tte VPN ei luba? Siis vĂ”ib see artikkel abiks olla, kuigi ma pole kindel. Tahan sind ette hoiatada, et ma ei saa vĂ”rguadministreerimisest eriti hĂ€sti aru, seega on vĂ”imalik, et tegin kĂ”ik valesti. Teisest kĂŒljest on vĂ”imalik, et suudan kirjutada juhendi, mis on tavainimestele arusaadav, seega soovitan sul seda proovida.
Artiklis on palju ebavajalikku infot, aga ilma selle teadmiseta poleks ma suutnud lahendada probleeme, mis mul VPN-i seadistamisega ootamatult tekkisid. Arvan, et kÔigil, kes seda juhendit rakendavad, tekivad probleemid, mida minul polnud, ja loodan, et see ebavajalik info aitab neil need probleemid iseseisvalt lahendada.
Enamik selles juhendis kasutatud kĂ€ske tuleb kĂ€ivitada sudo kaudu, mis on lĂŒhiduse huvides eemaldatud. Pidage seda meeles.
Enamik IP-aadresse on tugevalt hÀgustatud, seega kui nÀete aadressi nagu 435.435.435.435, peaks seal olema mingi tavaline IP-aadress, mis on teie juhtumile omane.
Mul on Ubuntu 18.04. aprill, aga ma arvan, et juhendit saaks vÀikeste muudatustega rakendada ka teistele distributsioonidele. Selles tekstis aga Linux == Ubuntu.
Cisco Connect
Need, kes istuvad Windows vĂ”i macOS saavad meie ettevĂ”tte VPN-iga ĂŒhenduse luua Cisco Connecti kaudu, mis nĂ”uab iga ĂŒhenduse loomisel lĂŒĂŒsi aadressi mÀÀramist ja parooli sisestamist, mis koosneb fikseeritud osast ja Google Authenticatori genereeritud koodist.
Linuxi puhul ei Ônnestunud Cisco Connecti kÀivitada, aga Google'ist sai otsida soovituse kasutada spetsiaalselt Cisco Connecti asendamiseks mÔeldud OpenConnecti.
Openconnect
Teoreetiliselt on Ubuntul OpenConnecti jaoks spetsiaalne graafiline liides, aga minu puhul see ei toiminud. VÔib-olla ongi see parim lahendus.
Ubuntus installitakse openconnect paketihalduri kaudu.
apt install openconnectVPN-iga ĂŒhenduse loomise vĂ”ite proovida kohe pĂ€rast installimist
openconnect --user poxvuibr vpn.evilcorp.comvpn.evilcorp.com on fiktiivse VPN-i aadress
poxvuibr â vĂ€ljamĂ”eldud kasutajanimi
OpenConnect palub teil sisestada parooli, mis, tuletan teile meelde, koosneb fikseeritud osast ja Google Authenticatori koodist ning seejĂ€rel proovib see VPN-iga ĂŒhendust luua. Kui see töötab, siis palju Ă”nne, vĂ”ite keskmise osa, mis on vĂ€ga tĂŒlikas, julgelt vahele jĂ€tta ja minna edasi punkti, mis kĂ€sitleb OpenConnecti taustal töötamist. Kui see ei tööta, siis vĂ”ite jĂ€tkata. Kuigi kui see töötab nĂ€iteks tööl kĂŒlalis-Wi-Fi kaudu ĂŒhenduse loomisel, siis vĂ”ib rÔÔmustamiseks olla veel vara, peate proovima protseduuri kodust korrata.
Tunnistus
On suur tÔenÀosus, et midagi ei kÀivitu ja openconnecti vÀljund nÀeb vÀlja umbes selline:
POST https://vpn.evilcorp.com/
Connected to 777.777.777.777:443
SSL negotiation with vpn.evilcorp.com
Server certificate verify failed: signer not found
Certificate from VPN server "vpn.evilcorp.com" failed verification.
Reason: signer not found
To trust this server in future, perhaps add this to your command line:
--servercert sha256:4444444444444444444444444444444444444444444444444444444444444444
Enter 'yes' to accept, 'no' to abort; anything else to view: fgets (stdin): Operation now in progressĂhelt poolt on see ebameeldiv, kuna VPN-ĂŒhendust ei tekkinud, kuid teisalt on selle probleemi lahendamine pĂ”himĂ”tteliselt selge.
Siin saatis server meile sertifikaadi, mille abil saame kindlaks teha, et ĂŒhendus on loodud kohaliku korporatsiooni serveriga, mitte kurja petturiga, kuid sĂŒsteem seda sertifikaati ei tea. Ja seetĂ”ttu ei saa see kontrollida, kas server on ehtne vĂ”i mitte. Ja seetĂ”ttu igaks juhuks see lakkab töötamast.
Selleks, et openconnect serveriga ĂŒhenduse saaks luua, peate sellele selgesĂ”naliselt ĂŒtlema, milline sertifikaat peaks VPN-serverist pĂ€rinema, kasutades vĂ”tit âservercert.
Ja openconnecti vĂ€ljatrĂŒkkidest nĂ€ete otse, millise sertifikaadi server meile saatis. Siin on sellest artiklist:
To trust this server in future, perhaps add this to your command line:
--servercert sha256:4444444444444444444444444444444444444444444444444444444444444444
Enter 'yes' to accept, 'no' to abort; anything else to view: fgets (stdin): Operation now in progressSelle kĂ€suga saate uuesti ĂŒhendust luua
openconnect --servercert sha256:4444444444444444444444444444444444444444444444444444444444444444 --user poxvuibr vpn.evilcorp.comVĂ”ib-olla see nĂŒĂŒd toimib, siis saame edasi liikuda lĂ”ppu. Aga isiklikult nĂ€itas Ubuntu mulle seda figuuri sellisel kujul.
POST https://vpn.evilcorp.com/
Connected to 777.777.777.777:443
SSL negotiation with vpn.evilcorp.com
Server certificate verify failed: signer not found
Connected to HTTPS on vpn.evilcorp.com
XML POST enabled
Please enter your username and password.
POST https://vpn.evilcorp.com/
Got CONNECT response: HTTP/1.1 200 OK
CSTP connected. DPD 300, Keepalive 30
Set up DTLS failed; using SSL instead
Connected as 192.168.333.222, using SSL
NOSSSSSHHHHHHHDDDDD
3
NOSSSSSHHHHHHHDDDDD
3
RTNETLINK answers: File exists
/etc/resolvconf/update.d/libc: Warning: /etc/resolv.conf is not a symbolic link to /run/resolvconf/resolv.conf/ Etc / resolv.conf
# Generated by NetworkManager
search gst.evilcorpguest.com
nameserver 127.0.0.53/run/resolvconf/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.
nameserver 192.168.430.534
nameserver 127.0.0.53
search evilcorp.com gst.publicevilcorp.comhabr.com lahendatakse, aga te ei saa sellele ligi. Aadresse nagu jira.evilcorp.com ei lahendata ĂŒldse.
Mis siin juhtus, pole mulle selge. Aga katse nÀitab, et kui lisada rida faili /etc/resolv.conf
nameserver 192.168.430.534Siis hakkavad VPN-i sees olevad aadressid maagiliselt lahendama ja saate nende vahel navigeerida, st see, mida otsitakse, millist DNS-i aadresside lahendamiseks otsitakse, otsitakse konkreetselt /etc/resolv.conf failist, mitte kusagilt mujalt.
VPN-ĂŒhenduse olemasolu ja toimimist saab kontrollida ilma faili /etc/resolv.conf muutmata. Selleks sisesta brauserisse lihtsalt VPN-i ressursi IP-aadress, mitte selle sĂŒmboolne nimi.
Selle tulemusena on kaks probleemi.
- VPN-iga ĂŒhenduse loomisel selle DNS-i ei valita
- Kogu liiklus lÀheb lÀbi VPN-i, mis ei vÔimalda teil internetti minna
Ma ĂŒtlen teile nĂŒĂŒd, mida teha, aga kĂ”igepealt natuke automatiseerimist.
Parooli fikseeritud osa automaatne sisestamine
TÔenÀoliselt olete parooli sisestanud vÀhemalt viis korda ja see protseduur on teid juba Àra vÀsitanud. Esiteks seetÔttu, et parool on pikk ja teiseks seetÔttu, et peate selle sisestama kindla aja jooksul.
Probleemi lÔplikku lahendust artiklis ei olnud, aga seda on vÔimalik teha nii, et parooli fikseeritud osa ei pea mitu korda sisestama.
Oletame, et parooli fikseeritud osa on âfixedPasswordâ ja Google Authenticatori osa on 567 987. Kogu openconnecti parooli saab edastada standardsisendi kaudu argumendi --passwd-on-stdin abil.
echo "fixedPassword567987" | openconnect --servercert sha256:4444444444444444444444444444444444444444444444444444444444444444 --user poxvuibr vpn.evilcorp.com --passwd-on-stdinNĂŒĂŒd saate pidevalt naasta viimase sisestatud kĂ€su juurde ja muuta ainult sealset Google Authenticatori osa.
EttevÔtte VPN ei vÔimalda teil internetti pÀÀseda.
See pole ĂŒldse mugav, kui pead Habri minekuks kasutama eraldi arvutit. Stackoverfow'st kopeerimise ja kleepimise vĂ”imatus vĂ”ib su töö tĂ€ielikult halvata, seega pead midagi ette vĂ”tma.
Peame selle kuidagi korraldama nii, et kui meil on vaja sisevÔrgust ressursile ligi pÀÀseda, lÀheb Linux VPN-i ja kui meil on vaja Habr-ile ligi pÀÀseda, lÀheb see internetti.
PĂ€rast VPN-ĂŒhenduse loomist ja kĂ€ivitamist kĂ€ivitab openconnect spetsiaalse skripti, mis asub kaustas /usr/share/vpnc-scripts/vpnc-script. Skriptile edastatakse sisendiks mĂ”ned muutujad ja see konfigureerib VPN-i. Kahjuks ei suutnud ma vĂ€lja mĂ”elda, kuidas jagada liiklusvooge ettevĂ”tte VPN-i ja ĂŒlejÀÀnud Interneti vahel natiivse skripti abil.
Ilmselt töötati vpn-slice utiliit vÀlja spetsiaalselt minusugustele inimestele, mis vÔimaldab teil suunata liiklust kahe kanali kaudu ilma tamburiiniga tantsimata. Noh, see tÀhendab, et peate tantsima, aga te ei pea olema ƥamaan.
Liikluse jagamine vpn-slice'i abil
Esiteks peate installima vpn-slice'i, peate selle ise vĂ€lja mĂ”tlema. Kui kommentaarides on kĂŒsimusi, kirjutan sellest eraldi postituse. Aga see on tavaline Pythoni programm, seega ei tohiks raskusi tekkida. Paigaldasin selle virtualenv abil.
Ja seejÀrel tuleb utiliit rakendada, kasutades vÔtit -script, mis nÀitab, et tavalise skripti asemel tuleb kasutada vpn-slice'i.
echo "fixedPassword567987" | openconnect --servercert sha256:4444444444444444444444444444444444444444444444444444444444444444 --user poxvuibr --passwd-on-stdin
--script "./bin/vpn-slice 192.168.430.0/24 " vpn.evilcorp.com Funktsioonis âscript edastatakse kĂ€suga string, mida tuleb skripti asemel kutsuda. ./bin/vpn-slice â kĂ€ivitatava faili tee vpn-slice 192.168.430.0/24 â aadresside mask, mida tuleks VPN-i minekuks kasutada. See tĂ€hendab, et kui aadress algab numbritega 192.168.430, siis tuleks selle aadressiga ressurssi otsida VPN-ist.
NĂŒĂŒd peaks olukord olema peaaegu normaalne. Peaaegu. NĂŒĂŒd saate minna Habr-i ja IP-aadressi jĂ€rgi ettevĂ”ttesisese ressursi juurde, aga sĂŒmboolse nime jĂ€rgi ettevĂ”ttesisese ressursi juurde ei saa. Kui registreerite sĂŒmboolse nime ja aadressi vastavuse hostides, peaks kĂ”ik toimima. Ja toimima kuni IP-aadressi muutumiseni. Linux saab nĂŒĂŒd minna internetti vĂ”i ettevĂ”ttesisesesse vĂ”rku, olenevalt IP-aadressist. Aga aadressi mÀÀramiseks kasutatakse endiselt mitte-ettevĂ”tte DNS-i.
Probleem vĂ”ib avalduda ka sel viisil - tööl on kĂ”ik korras, aga kodus pÀÀsete ettevĂ”tte ressurssidele ligi ainult IP kaudu. Seda seetĂ”ttu, et kui olete ĂŒhendatud ettevĂ”tte WiFi-ga, kasutatakse ka ettevĂ”tte DNS-i ja VPN-i sĂŒmboolsed aadressid lahendatakse selles, hoolimata asjaolust, et te ei pÀÀse ikkagi sellisele aadressile juurde ilma VPN-i kasutamata.
Hosts-faili automaatne muutmine
Kui kĂŒsida vpn-slice'ilt viisakalt, saab see pĂ€rast VPN-i loomist minna oma DNS-i, leida vajalike ressursside IP-aadressid nende sĂŒmboolsete nimede jĂ€rgi ja sisestada need hosts'i. PĂ€rast VPN-i vĂ€ljalĂŒlitamist kustutatakse need aadressid hosts'ist. Selleks tuleb vpn-slice'ile argumentidena sĂŒmboolsed nimed edastada. NĂ€iteks nii.
echo "fixedPassword567987" | openconnect --servercert sha256:4444444444444444444444444444444444444444444444444444444444444444 --user poxvuibr --passwd-on-stdin
--script "./bin/vpn-slice 192.168.430.0/24 jira.vpn.evilcorp.com git.vpn.evilcorp.com " vpn.evilcorp.com NĂŒĂŒd peaks kĂ”ik toimima nii kontoris kui ka rannas.
Otsi kÔigi VPN-i antud DNS-i alamdomeenide aadresse
Kui vĂ”rgus on vĂ€he aadresse, on hosts-faili automaatse muutmise lĂ€henemisviis ĂŒsna toimiv. Aga kui vĂ”rgus on palju ressursse, peate skriptile pidevalt lisama ridu nagu zoidberg.test.evilcorp.com. Zoidberg on ĂŒhe testimisstendi nimi.
Aga nĂŒĂŒd, kui me natuke aru saame, mis on mis, saab selle vajaduse kĂ”rvaldada.
Kui pÀrast VPN-i kÀivitamist vaadata faili /etc/hosts, on nÀha jÀrgmine rida
192.168.430.534 dns0.tun0 # vpn-slice-tun0 AUTOMAATSELT LOODUD
Ja resolv.conf faili lisati uus rida. LĂŒhidalt, vpn-slice tegi kuidagi kindlaks, kus asub VPN-i DNS-server.
NĂŒĂŒd peame selle nii tegema, et domeeninime IP-aadressi, mis lĂ”peb evilcorp.com-iga, teadasaamiseks lĂ€heb Linux ettevĂ”tte DNS-i ja kui on vaja midagi muud, siis vaikeseadesse.
Guugeldasin tĂŒkk aega ja avastasin, et selline funktsionaalsus on Ubuntus kohe olemas. See tĂ€hendab vĂ”imalust kasutada nimede lahendamiseks kohalikku DNS-serverit dnsmasq.
See tÀhendab, et on vÔimalik teha nii, et Linux otsib IP-aadresse alati kohalikust DNS-serverist, mis omakorda, olenevalt domeeninimest, otsib IP-aadressi vastavalt vÀliselt DNS-serverilt.
Ubuntu kasutab NetworkManagerit kĂ”ige vĂ”rkude ja vĂ”rguĂŒhendustega seonduva haldamiseks ning graafiline liides nĂ€iteks WiFi-ĂŒhenduse valimiseks on vaid selle esiots.
Peame selle konfiguratsiooniga nokitsema.
- Loo fail kausta /etc/NetworkManager/dnsmasq.d/evilcorp
aadress=/.evilcorp.com/192.168.430.534
Pane tÀhele punkti enne sÔna "evilcorp". See annab dnsmasq-ile mÀrku, et ettevÔtte DNS-is tuleks otsida kÔiki evilcorp.com alamdomeene.
- Paluge NetworkManageril nimede lahendamiseks kasutada dnsmasq-i
VÔrguhalduri konfiguratsioon asub failis /etc/NetworkManager/NetworkManager.conf. Sinna tuleb lisada:
[peamine]
dns=dnsmasq
- TaaskÀivita NetworkManager
service network-manager restartNĂŒĂŒd, pĂ€rast VPN-iga ĂŒhenduse loomist openconnecti ja vpn-slice'i kombinatsiooni abil, mÀÀratakse IP-aadress tavapĂ€raselt, isegi kui te ei lisa vpnslice'i argumentidele sĂŒmboolseid aadresse.
Kuidas VPN-i kaudu ĂŒksikutele teenustele juurde pÀÀseda
PĂ€rast seda, kui mul Ă”nnestus VPN-iga ĂŒhenduda, olin kaks pĂ€eva vĂ€ga Ă”nnelik, aga siis selgus, et kui VPN-iga ĂŒhenduda vĂ€ljastpoolt kontorivĂ”rku, siis e-post ei tööta. Tuttav sĂŒmptom, kas pole?
Meie meil asub aadressil mail.publicevilcorp.com, mis tÀhendab, et see ei kuulu dnsmasq reegli alla ja meiliserveri aadressi otsitakse avaliku DNS-i kaudu.
Noh, kontor kasutab endiselt DNS-i, millel on see aadress. Ma arvasingi nii. Tegelikult, pÀrast rea lisamist dnsmasq-i
aadress=/mail.publicevilcorp.com/192.168.430.534
Olukord pole ĂŒldse muutunud. IP jĂ€i samaks. Pidin tööle minema.
Ja hiljem, kui ma olukorda sĂŒvenesin ja probleemist veidi aru sain, ĂŒtles ĂŒks tark inimene mulle, kuidas seda lahendada. Oli vaja meiliserveriga ĂŒhendust luua mitte niisama, vaid VPN-i kaudu.
Ma kasutan vpn-slice'i, et minna VPN-i kaudu aadressidele, mis algavad numbritega 192.168.430. Ja meiliserveril on mitte ainult sĂŒmboolne aadress, mis ei ole evilcorpi alamdomeen, vaid ka IP-aadress, mis ei alga numbritega 192.168.430. Ja loomulikult ei lase see kedagi ĂŒldisest vĂ”rgust sisse.
Selleks, et Linux saaks VPN-i kaudu meiliserverisse minna, peate selle vpn-lÔiku lisama. Oletame, et meiliaadress on 555.555.555.555
echo "fixedPassword567987" | openconnect --servercert sha256:4444444444444444444444444444444444444444444444444444444444444444 --user poxvuibr --passwd-on-stdin
--script "./bin/vpn-slice 555.555.555.555 192.168.430.0/24" vpn.evilcorp.com Skript VPN-i kĂ€ivitamiseks ĂŒhe argumendiga
Muidugi pole see kÔik eriti mugav. Jah, saate teksti faili salvestada ja kÀsitsi tippimise asemel konsooli kopeerida ja kleepida, kuid see pole ikkagi eriti meeldiv. Protsessi lihtsustamiseks vÔite kÀsu mÀhkida skripti, mis asub PATH-is. Ja siis peate sisestama ainult Google Authenticatorilt saadud koodi.
#!/bin/sh
echo "fixedPassword$1" | openconnect --servercert sha256:4444444444444444444444444444444444444444444444444444444444444444 --user poxvuibr --passwd-on-stdin
--script "./bin/vpn-slice 192.168.430.0/24 jira.vpn.evilcorp.com git.vpn.evilcorp.com " vpn.evilcorp.com Kui paned skripti connect~evilcorp~ kausta, siis saad lihtsalt konsoolis kirjutada
connect_evil_corp 567987Aga nĂŒĂŒd pean ma mingil pĂ”hjusel konsooli, kus openconnect töötab, ikkagi avatuna hoidma.
KĂ€ivita openconnect taustal
Ănneks hoolitsesid openconnecti autorid meie eest ja lisasid programmile spetsiaalse vĂ”tme -background, mis paneb programmi pĂ€rast kĂ€ivitamist taustal töötama. Kui kĂ€ivitate selle nii, saate konsooli pĂ€rast kĂ€ivitamist sulgeda.
#!/bin/sh
echo "fixedPassword$1" | openconnect --servercert sha256:4444444444444444444444444444444444444444444444444444444444444444
--user poxvuibr
--passwd-on-stdin
--background
--script "./bin/vpn-slice 192.168.430.0/24 jira.vpn.evilcorp.com git.vpn.evilcorp.com " vpn.evilcorp.com NĂŒĂŒd pole lihtsalt selge, kuhu logid lĂ€hevad. Me ei vaja logisid tegelikult, aga mine tea. openconnect saab need suunata syslogi, kus need salvestatakse puutumata ja turvaliselt. See on vajalik kĂ€sule --syslog vĂ”tme lisamiseks.
#!/bin/sh
echo "fixedPassword$1" | openconnect --servercert sha256:4444444444444444444444444444444444444444444444444444444444444444
--user poxvuibr
--passwd-on-stdin
--background
--syslog
--script "./bin/vpn-slice 192.168.430.0/24 jira.vpn.evilcorp.com git.vpn.evilcorp.com " vpn.evilcorp.com Ja nii selgubki, et openconnect töötab kuskil taustal ega sega kedagi, aga pole selge, kuidas seda peatada. See tĂ€hendab, et muidugi saab ps-i vĂ€ljundit grep-iga filtreerida ja otsida protsessi, mille nimes on openconnect, aga see on kuidagi tĂŒĂŒtu. TĂ€nud autoritele, kes selle peale mĂ”tlesid. OpenConnectil on vĂ”ti âpid-file, millega saab OpenConnectile anda kĂ€su kirjutada oma protsessi identifikaator faili.
#!/bin/sh
echo "fixedPassword$1" | openconnect --servercert sha256:4444444444444444444444444444444444444444444444444444444444444444
--user poxvuibr
--passwd-on-stdin
--background
--syslog
--script "./bin/vpn-slice 192.168.430.0/24 jira.vpn.evilcorp.com git.vpn.evilcorp.com " vpn.evilcorp.com
--pid-file ~/vpn-pidNĂŒĂŒd saate protsessi alati kĂ€suga tappa
kill $(cat ~/vpn-pid)Kui protsessi pole, siis "kill" kaebab, aga ei viska viga. Kui faili pole, siis ei juhtu ka midagi hullu, seega vÔid protsessi skripti esimesel real ohutult tappa.
kill $(cat ~/vpn-pid)
#!/bin/sh
echo "fixedPassword$1" | openconnect --servercert sha256:4444444444444444444444444444444444444444444444444444444444444444
--user poxvuibr
--passwd-on-stdin
--background
--syslog
--script "./bin/vpn-slice 192.168.430.0/24 jira.vpn.evilcorp.com git.vpn.evilcorp.com " vpn.evilcorp.com
--pid-file ~/vpn-pidNĂŒĂŒd saate arvuti sisse lĂŒlitada, konsooli avada ja kĂ€su kĂ€ivitada, edastades sellele Google Authenticatori koodi. SeejĂ€rel saate konsooli sulgeda.
Ilma vpn-lÔiketa. JÀrelsÔna asemel.
VPN-slice'ita elamise mĂ”istmine osutus vĂ€ga keeruliseks. Pidin palju lugema ja guugeldama. Ănneks, pĂ€rast nii palju aega probleemiga tegelemiseks, tundusid tehnilised kĂ€siraamatud ja isegi "Man OpenConnect" pĂ”nevad romaanid.
LÔpuks sain teada, et vpn-slice, nagu ka natiivne skript, muudab marsruutimistabelit vÔrkude eraldamiseks.
Marsruutimise tabel
See on lihtsustatult öeldes tabel, mille esimeses veerus on kirjas, millise aadressiga peaks Linux alustama ja teises veerus, millise vÔrguadapteri kaudu sellel aadressil minna. Tegelikult on veerge rohkem, aga see ei muuda olemust.
Marsruutimistabeli vaatamiseks peate kÀivitama kÀsu ip route
default via 192.168.1.1 dev wlp3s0 proto dhcp metric 600
192.168.430.0/24 dev tun0 scope link
192.168.1.0/24 dev wlp3s0 proto kernel scope link src 192.168.1.534 metric 600
192.168.430.534 dev tun0 scope link Siin vastutab iga rida selle eest, kuhu minna, et saata sÔnum teatud aadressile. Esimene on kirjeldus, millega aadress peaks algama. Selleks, et mÔista, kuidas teha kindlaks, et 192.168.0.0/16 tÀhendab, et aadress peaks algama 192.168-ga, peate Google'ist otsima, mis on IP-aadressi mask. PÀrast dev-d on adapteri nimi, kuhu sÔnum tuleks saata.
VPN-i jaoks lĂ”i Linux virtuaalse adapteri â tun0. See liin vastutab selle eest, et liiklus kĂ”ikidele aadressidele, mis algavad numbriga 192.168, sellest lĂ€bi lĂ€heks.
192.168.0.0/16 dev tun0 scope link Marsruutimistabeli praegust olekut saate vaadata ka kĂ€suga marsruut -n (IP-aadressid on oskuslikult anonĂŒmiseeritud) See kĂ€sk annab tulemusi teistsugusel kujul ja on ĂŒldiselt aegunud, kuid selle vĂ€ljundit leiab sageli interneti kĂ€siraamatutest ja teil peab olema vĂ”imalik seda lugeda.
Seda, millega marsruudi IP-aadress peaks algama, saab aru veergude Destination ja Genmask kombinatsioonist. Arvesse vÔetakse need IP-aadressi osad, mis vastavad Genmaskis numbritele 255, ja need, kus on 0, mitte. See tÀhendab, et Destination 192.168.0.0 ja Genmask 255.255.255.0 kombinatsioon tÀhendab, et kui aadress algab numbritega 192.168.0, siis sellele saadetud pÀring liigub mööda seda marsruuti. Ja kui Destination 192.168.0.0, aga Genmask 255.255.0.0, siis lÀhevad ka pÀringud aadressidele, mis algavad numbritega 192.168, mööda seda marsruuti.
Selleks, et aru saada, mida vpn-slice tegelikult teeb, otsustasin vaadata tabelite olekuid enne ja pÀrast
Enne VPN-i sisselĂŒlitamist oli see selline
route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 222.222.222.1 0.0.0.0 UG 600 0 0 wlp3s0
222.222.222.0 0.0.0.0 255.255.255.0 U 600 0 0 wlp3s0
333.333.333.333 222.222.222.1 255.255.255.255 UGH 0 0 0 wlp3s0PĂ€rast openconnecti kutsumist ilma vpn-slice'ita muutus see selliseks
route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 tun0
0.0.0.0 222.222.222.1 0.0.0.0 UG 600 0 0 wlp3s0
222.222.222.0 0.0.0.0 255.255.255.0 U 600 0 0 wlp3s0
333.333.333.333 222.222.222.1 255.255.255.255 UGH 0 0 0 wlp3s0
192.168.430.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0
192.168.430.534 0.0.0.0 255.255.255.255 UH 0 0 0 tun0Ja pÀrast openconnecti kutsumist koos vpn-slice'iga jÀrgmiselt
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 222.222.222.1 0.0.0.0 UG 600 0 0 wlp3s0
222.222.222.0 0.0.0.0 255.255.255.0 U 600 0 0 wlp3s0
333.333.333.333 222.222.222.1 255.255.255.255 UGH 0 0 0 wlp3s0
192.168.430.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0
192.168.430.534 0.0.0.0 255.255.255.255 UH 0 0 0 tun0On selge, et kui vpn-slice'i ei kasutata, siis openconnect kirjutab selgelt, et kÔikidele aadressidele, vÀlja arvatud eraldi mÀÀratud aadressidele, tuleb ligi pÀÀseda vpn-i kaudu.
Siin see on:
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 tun0Selle kĂ”rval on nĂ€idatud teine tee, mida tuleks kasutada, kui aadress, kuhu Linux ĂŒritab minna, ei vasta ĂŒhelegi tabelis olevale maskile.
0.0.0.0 222.222.222.1 0.0.0.0 UG 600 0 0 wlp3s0Siin on juba kirjutatud, et sel juhul peate lÀbima tavalise WiFi-adapteri.
Ma eeldan, et VPN-rada kasutatakse, kuna see on marsruutimistabelis esimene.
Ja teoreetiliselt, kui eemaldate selle vaiketee marsruutimistabelist, peaks openconnect koos dnsmasq-iga tagama normaalse töö.
Ma proovisin
route del defaultJa kÔik toimis.
PĂ€ringute suunamine meiliserverisse ilma vpn-slice'ita
Aga mul on ka meiliserver aadressil 555.555.555.555, millele tuleb samuti VPN-i kaudu ligi pÀÀseda. Ka marsruut sinna tuleb kÀsitsi lisada.
ip route add 555.555.555.555 via dev tun0Ja nĂŒĂŒd on kĂ”ik korras. Seega on vĂ”imalik ilma vpn-slice'ita hakkama saada, aga sa pead teadma, mida sa teed. MĂ”tlen nĂŒĂŒd sellele, et lisada natiivse openconnecti skripti viimasele reale vaikimisi marsruudi eemaldamine ja marsruudi lisamine meili saatjale pĂ€rast vpn-iga ĂŒhenduse loomist, lihtsalt selleks, et mu rattal oleks vĂ€hem liikuvaid osi.
TĂ”enĂ€oliselt piisaks sellest jĂ€relsĂ”nast, et keegi aru saaks, kuidas VPN-i seadistada. Aga kui ma ĂŒritasin aru saada, mida ja kuidas teha, lugesin pĂ€ris palju selliseid kĂ€siraamatuid, mis autori jaoks toimisid, aga mingil pĂ”hjusel minu jaoks mitte, ja otsustasin siia lisada kĂ”ik leitud osad. Oleksin millegi sellisega vĂ€ga rahul.
Allikas: www.habr.com
