Чӣ тавр ба VPN-и корпоративӣ дар Linux бо истифода аз openconnect ва vpn-slice пайваст шудан мумкин аст

Оё шумо мехоҳед Linux-ро дар ҷои кор истифода баред, аммо VPN-и корпоративии шумо ба шумо иҷозат намедиҳад? Он гоҳ ин мақола метавонад кӯмак кунад, гарчанде ки ин аниқ нест. Мехостам шуморо пешакӣ огоҳ кунам, ки ман масъалаҳои идоракунии шабакаро хуб намефаҳмам, аз ин рӯ, эҳтимол дорад, ки ман ҳама чизро хато карда бошам. Аз тарафи дигар, мумкин аст, ки дастуре нависам, ки барои мардуми оддӣ фаҳмо бошад, аз ин рӯ тавсия медиҳам, ки онро санҷед.

Мақола бисёр маълумоти нолозимро дар бар мегирад, аммо бе ин дониш ман наметавонистам мушкилотеро, ки ҳангоми насб кардани VPN ба назарам ногаҳон пайдо шуданд, ҳал кунам. Ман фикр мекунам, ки ҳар касе, ки кӯшиш мекунад, ки ин дастурро истифода барад, мушкилоте хоҳад дошт, ки ман надоштам ва ман умедворам, ки ин маълумоти иловагӣ ба ҳалли ин мушкилот кӯмак мекунад.

Аксари фармонҳои дар ин дастур истифодашуда бояд тавассути sudo иҷро карда шаванд, ки барои кӯтоҳӣ хориҷ карда шудааст. Дар хотир доред.

Аксарияти суроғаҳои IP ба таври ҷиддӣ печида шудаанд, аз ин рӯ, агар шумо суроғаеро ба мисли 435.435.435.435 бинед, дар он ҷо бояд як IP муқаррарӣ бошад, ки ба парвандаи шумо хос аст.

Ман Ubuntu 18.04 дорам, аммо ман фикр мекунам, ки бо тағироти ночиз дастурро метавон ба дигар тақсимотҳо татбиқ кард. Аммо, дар ин матн Linux == Ubuntu.

Cisco Connect

Онҳое, ки дар Windows ё MacOS кор мекунанд, метавонанд ба VPN-и корпоративии мо тавассути Cisco Connect пайваст шаванд, ки он бояд суроғаи шлюзро муайян кунад ва ҳар дафъае, ки шумо пайваст мешавед, паролеро, ки аз қисми собит ва рамзи тавлидшудаи Google Authenticator иборат аст, ворид кунед.

Дар мавриди Linux, ман натавонистам Cisco Connect-ро ба кор андозам, аммо ман тавонистам дар Google тавсияи истифодаи openconnect, ки махсус барои иваз кардани Cisco Connect дода шудааст, кор кунам.

Пайвастшавиро кушоед

Дар назария, Ubuntu дорои интерфейси махсуси графикӣ барои openconnect, аммо он барои ман кор накард. Шояд ин барои беҳтар аст.

Дар Ubuntu, openconnect аз мудири баста насб карда шудааст.

apt install openconnect

Дарҳол пас аз насб, шумо метавонед кӯшиш кунед, ки ба VPN пайваст шавед

openconnect --user poxvuibr vpn.evilcorp.com

vpn.evilcorp.com суроғаи VPN-и сохта аст
poxvuibr - номи корбарии сохта

openconnect аз шумо хоҳиш мекунад, ки паролеро ворид кунед, ки ба шумо хотиррасон мекунам, ки он аз қисмати собит ва коди Google Authenticator иборат аст ва он гоҳ он кӯшиш мекунад, ки ба vpn пайваст шавад. Агар он кор кунад, табрик мекунам, шумо метавонед миёнаро, ки дарди зиёд аст, бехатар гузаред ва ба нуқтаи дар замина кор кардани openconnect гузаред. Агар он кор накунад, шумо метавонед идома диҳед. Гарчанде ки агар он ҳангоми пайвастшавӣ, масалан, аз Wi-Fi-и меҳмон дар ҷои кор кор мекард, пас хурсанд шудан хеле барвақт аст; шумо бояд кӯшиш кунед, ки тартибро аз хона такрор кунед.

Шаҳодатнома

Эҳтимолияти баланде вуҷуд дорад, ки ҳеҷ чиз оғоз нашавад ва баромади openconnect чунин хоҳад буд:

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

Аз як тараф, ин ногувор аст, зеро пайвастшавӣ ба VPN вуҷуд надошт, аммо аз тарафи дигар, чӣ гуна ислоҳ кардани ин мушкилот, аслан равшан аст.

Дар ин ҷо сервер ба мо шаҳодатнома фиристод, ки тавассути он мо метавонем муайян кунем, ки пайвастшавӣ ба сервери корпоратсияи ватании мо сурат мегирад, на ба қаллоби бад ва ин сертификат ба система номаълум аст. Аз ин рӯ, вай наметавонад тафтиш кунад, ки сервер воқеӣ аст ё не. Ва аз ин рӯ, дар ҳар сурат, он корашро қатъ мекунад.

Барои пайваст кардани openconnect ба сервер, шумо бояд ба таври возеҳ бигӯед, ки кадом сертификат бояд аз сервери VPN бо истифода аз калиди —servercert бошад.

Ва шумо метавонед бифаҳмед, ки кадом сертификат сервер ба мо бевосита аз кадом openconnect чоп кардааст. Инак аз ин порча:

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

Бо ин фармон шумо метавонед дубора пайваст шавед

openconnect --servercert sha256:4444444444444444444444444444444444444444444444444444444444444444 --user poxvuibr vpn.evilcorp.com

Шояд ҳоло он кор мекунад, пас шумо метавонед ба охир гузаред. Аммо шахсан, Убунта ба ман дар ин шакл анҷир нишон дод

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.com

habr.com ҳал хоҳад кард, аммо шумо наметавонед ба он ҷо равед. Суроғаҳо ба монанди jira.evilcorp.com умуман ҳал карда намешаванд.

Дар ин ҷо чӣ рӯй дод, барои ман рӯшан нест. Аммо таҷриба нишон медиҳад, ки агар шумо хатро ба /etc/resolv.conf илова кунед

nameserver 192.168.430.534

он гоҳ суроғаҳои дохили VPN ба таври ҷодугарӣ ҳал мешаванд ва шумо метавонед тавассути онҳо гузаред, яъне он чизе, ки DNS барои ҳалли суроғаҳо ҷустуҷӯ мекунад, махсусан дар /etc/resolv.conf ба назар мерасад, на дар ҷои дигар.

Шумо метавонед тафтиш кунед, ки пайвастшавӣ ба VPN вуҷуд дорад ва он бидуни ворид кардани тағирот дар /etc/resolv.conf кор мекунад; барои ин танҳо ба браузер на номи рамзии захираро аз VPN, балки суроғаи IP-и онро ворид кунед.

Дар натиҷа, ду мушкилот вуҷуд дорад

  • Ҳангоми пайваст шудан ба VPN, dns-и он гирифта намешавад
  • тамоми трафик тавассути VPN мегузарад, ки дастрасӣ ба Интернетро иҷозат намедиҳад

Ман ба шумо мегӯям, ки ҳоло чӣ кор кунед, аммо аввал каме автоматизатсия.

Воридкунии автоматии қисми муқарраршудаи парол

То ҳол, шумо эҳтимолан ҳадди аққал панҷ маротиба гузарвожаи худро ворид кардаед ва ин тартиб аллакай шуморо хаста кардааст. Якум, аз сабаби он ки парол дароз аст, ва дуюм, зеро ҳангоми ворид шудан шумо бояд дар як давраи муайян мувофиқат кунед

Ҳалли ниҳоии мушкилот ба мақола дохил карда нашудааст, аммо шумо метавонед боварӣ ҳосил кунед, ки қисми собитшудаи парол набояд чанд маротиба ворид карда шавад.

Фарз мекунем, ки қисми собитшудаи парол fixedPassword аст ва қисми Google Authenticator 567 аст. Тамоми паролро метавон ба openconnect тавассути вуруди стандартӣ бо истифода аз аргументи --passwd-on-stdin интиқол дод.

echo "fixedPassword567987" | openconnect --servercert sha256:4444444444444444444444444444444444444444444444444444444444444444 --user poxvuibr vpn.evilcorp.com --passwd-on-stdin

Акнун шумо метавонед пайваста ба фармони охирини воридшуда баргардед ва танҳо як қисми Google Authenticator-ро дар он ҷо иваз кунед.

VPN-и корпоративӣ ба шумо имкон намедиҳад, ки дар Интернет сайр кунед.

Умуман, вақте ки шумо бояд барои рафтан ба Ҳабр аз компютери алоҳида истифода баред, он қадар нороҳат нест. Қобилияти нусхабардорӣ-часбондан аз stackoverfow метавонад умуман корро фалаҷ кунад, бинобар ин коре кардан лозим аст.

Мо бояд онро тавре ташкил кунем, ки вақте ба шумо лозим меояд, ки ба захира аз шабакаи дохилӣ дастрасӣ пайдо кунед, Linux ба VPN меравад ва вақте ки шумо ба Ҳабр равед, он ба Интернет меравад.

openconnect, пас аз оғоз ва барқарор кардани пайвастшавӣ бо vpn, скрипти махсусеро иҷро мекунад, ки дар /usr/share/vpnc-scripts/vpnc-script ҷойгир аст. Баъзе тағирёбандаҳо ба скрипт ҳамчун вуруд интиқол дода мешаванд ва он VPN-ро танзим мекунад. Мутаассифона, ман фаҳмида наметавонистам, ки чӣ гуна ҷараёни трафикро байни VPN-и корпоративӣ ва боқимондаи Интернет бо истифода аз скрипти аслӣ тақсим кунам.

Эҳтимол, утилитаи vpn-slice махсусан барои одамони мисли ман таҳия шудааст, ки ба шумо имкон медиҳад трафикро тавассути ду канал бидуни рақс бо танбур интиқол диҳед. Хуб, ин аст, ки шумо бояд рақс кунед, аммо шумо набояд шаман бошед.

Ҷудокунии трафик бо истифода аз vpn-slice

Аввалан, шумо бояд vpn-slice насб кунед, шумо бояд инро худатон муайян кунед. Агар саволҳо дар шарҳҳо пайдо шаванд, ман дар ин бора як мақолаи алоҳида менависам. Аммо ин як барномаи муқаррарии Python аст, бинобар ин набояд ягон мушкилот вуҷуд дошта бошад. Ман бо истифода аз virtualenv насб кардам.

Ва он гоҳ утилита бояд бо истифода аз гузариши -скрипт истифода шавад, ки барои кушодани пайвастшавӣ нишон медиҳад, ки ба ҷои скрипти стандартӣ, шумо бояд vpn-slice -ро истифода баред

echo "fixedPassword567987" | openconnect --servercert sha256:4444444444444444444444444444444444444444444444444444444444444444 --user poxvuibr --passwd-on-stdin 
--script "./bin/vpn-slice 192.168.430.0/24  " vpn.evilcorp.com 

--script як сатр бо фармоне интиқол дода мешавад, ки бояд ба ҷои скрипт даъват карда шавад. ./bin/vpn-slice - роҳ ба файли иҷрошавандаи vpn-slice 192.168.430.0/24 - ниқоби суроғаҳо барои рафтан дар vpn. Дар ин ҷо мо дар назар дорем, ки агар суроға бо 192.168.430 оғоз шавад, пас захира бо ин суроға бояд дар дохили VPN ҷустуҷӯ карда шавад.

Холо вазъият бояд кариб муътадил бошад. Қариб. Акнун шумо метавонед ба Ҳабр равед ва шумо метавонед ба манбаи дохиликорпоративӣ тавассути ip равед, аммо шумо наметавонед ба манбаи дохиликорпоративӣ бо номи рамзӣ равед. Агар шумо мувофиқати байни номи рамзӣ ва суроғаро дар ҳостҳо муайян кунед, ҳама чиз бояд кор кунад. Ва то тағир додани ip кор кунед. Linux ҳоло вобаста ба IP метавонад ба Интернет ё интранет дастрасӣ пайдо кунад. Аммо барои муайян кардани суроға DNS-и ғайри корпоративӣ ҳоло ҳам истифода мешавад.

Мушкилот инчунин метавонад дар ин шакл зоҳир шавад - дар кор ҳама чиз хуб аст, аммо дар хона шумо метавонед танҳо тавассути IP ба захираҳои дохилии корпоративӣ дастрасӣ пайдо кунед. Ин дар он аст, ки вақте шумо ба Wi-Fi-и корпоративӣ пайваст мешавед, DNS-и корпоративӣ низ истифода мешавад ва дар он суроғаҳои рамзӣ аз VPN ҳал карда мешаванд, гарчанде ки бидуни истифодаи VPN ба чунин суроға рафтан ҳанӯз ғайриимкон аст.

Тағироти худкори файли ҳостҳо

Агар vpn-slice хушмуомила пурсида шавад, пас аз баланд бардоштани VPN, он метавонад ба DNS-и худ равад, дар он ҷо суроғаҳои IP-и захираҳои заруриро бо номҳои рамзӣ пайдо кунад ва онҳоро ба ҳостҳо ворид кунад. Пас аз хомӯш кардани VPN, ин суроғаҳо аз ҳостҳо хориҷ карда мешаванд. Барои ин ба шумо лозим аст, ки номҳои рамзӣ ба vpn-slice ҳамчун далел гузаронед. Монанди ин.

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 

Акнун хама чиз бояд хам дар идора ва хам дар сохил кор кунад.

Ҷустуҷӯи суроғаҳои ҳама зердоменҳоро дар DNS, ки VPN додааст

Агар дар дохили шабака чанд суроға мавҷуд бошад, пас равиши ба таври худкор тағир додани файли ҳостҳо хеле хуб кор мекунад. Аммо агар дар шабака захираҳои зиёд вуҷуд дошта бошанд, пас ба шумо лозим меояд, ки ба скрипт сатрҳои монанди zoidberg.test.evilcorp.com илова кунед, ки номи яке аз курсиҳои санҷишӣ аст.

Аммо ҳоло, ки мо каме фаҳмем, ки чаро ин ниёзро бартараф кардан мумкин аст.

Агар пас аз баланд бардоштани VPN, шумо ба /etc/hosts нигаред, шумо метавонед ин сатрро бинед

192.168.430.534 dns0.tun0 # vpn-slice-tun0 AUTOCcreated

Ва ба resolv.conf хати нав илова карда шуд. Хулоса, vpn-бурида ба гунае муайян кард, ки сервери dns барои vpn дар куҷо ҷойгир аст.

Ҳоло мо бояд боварӣ ҳосил кунем, ки барои фаҳмидани суроғаи IP-и номи домене, ки бо evilcorp.com хотима меёбад, Linux ба DNS-и корпоративӣ мегузарад ва агар чизи дигаре лозим бошад, пас ба суроғаи пешфарз.

Ман муддати тӯлонӣ Google-ро ҷустуҷӯ кардам ва фаҳмидам, ки чунин функсия дар Ubuntu берун аз қуттӣ дастрас аст. Ин маънои қобилияти истифодаи сервери маҳаллии DNS dnsmasq барои ҳалли номҳоро дорад.

Яъне, шумо метавонед боварӣ ҳосил кунед, ки Linux ҳамеша ба сервери маҳаллии DNS барои суроғаҳои IP меравад, ки дар навбати худ вобаста ба номи домен IP-ро дар сервери DNS-и беруна мувофиқ меҷӯяд.

Барои идоракунии ҳама чизҳои марбут ба шабакаҳо ва пайвастҳои шабакавӣ, Ubuntu NetworkManager-ро истифода мебарад ва интерфейси графикӣ барои интихоб, масалан, пайвастҳои Wi-Fi танҳо як қисми пеши он аст.

Мо бояд дар конфигуратсияи он боло равем.

  1. Дар /etc/NetworkManager/dnsmasq.d/evilcorp файл эҷод кунед

суроға =/.evilcorp.com/192.168.430.534

Ба нуқтаи пеши evilcorp диққат диҳед. Он ба dnsmasq сигнал медиҳад, ки ҳамаи зердоменҳои evilcorp.com бояд дар DNS корпоративӣ ҷустуҷӯ карда шаванд.

  1. Ба NetworkManager бигӯед, ки барои ҳалли ном dnsmasq-ро истифода барад

Конфигуратсияи менеҷери шабака дар /etc/NetworkManager/NetworkManager.conf ҷойгир аст, Шумо бояд ба он ҷо илова кунед:

[асосӣ] dns = dnsmasq

  1. NetworkManager-ро аз нав оғоз кунед

service network-manager restart

Ҳоло, пас аз пайваст шудан ба VPN бо истифода аз openconnect ва vpn-slice, IP одатан муайян карда мешавад, ҳатто агар шумо суроғаҳои рамзӣ ба далелҳо ба vpnslice илова накунед.

Чӣ тавр ба хидматҳои инфиродӣ тавассути VPN дастрасӣ пайдо кардан мумкин аст

Пас аз он ки ман тавонистам ба VPN пайваст шавам, ман ду рӯз хеле шод будам ва баъд маълум шуд, ки агар ман ба VPN аз берун аз шабакаи офис пайваст шавам, почта кор намекунад. Аломат шинос аст, ҳамин тавр не?

Почтаи мо дар mail.publicevilcorp.com ҷойгир аст, ки ин маънои онро дорад, ки он ба қоида дар dnsmasq дохил намешавад ва суроғаи сервери почта тавассути DNS ҷамъиятӣ ҷустуҷӯ карда мешавад.

Хуб, офис ҳоло ҳам DNS-ро истифода мебарад, ки ин суроғаро дар бар мегирад. Ман чунин фикр мекардам. Дар асл, пас аз илова кардани сатр ба dnsmasq

address=/mail.publicevilcorp.com/192.168.430.534

вазъият тамоман тагьир наёфтааст. ip як хел монд. Ман бояд ба кор равам.

Ва танҳо баъдтар, вақте ки ман вазъиятро амиқтар омӯхтам ва мушкилотро каме фаҳмидам, як шахси оқил ба ман гуфт, ки чӣ гуна онро ҳал кардан лозим аст. Ба сервери почта на танҳо ҳамин тавр, балки тавассути VPN пайваст шудан лозим буд

Ман vpn-буридаро барои гузаштан аз VPN ба суроғаҳое, ки бо 192.168.430 оғоз мешаванд, истифода мебарам. Ва сервери почта на танҳо суроғаи рамзӣ дорад, ки зердомени evilcorp нест, он инчунин суроғаи IP-ро надорад, ки бо 192.168.430 оғоз мешавад. Ва албатта ӯ намегузорад, ки касе аз шабакаи умумӣ ба наздаш биёяд.

Барои он ки Linux тавассути VPN ва ба сервери почта гузарад, шумо бояд онро ба vpn-slice низ илова кунед. Биёед бигӯем, ки суроғаи почта 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 

Скрипт барои баланд бардоштани VPN бо як далел

Хамаи ин, албатта, чандон кулай нест. Бале, шумо метавонед матнро ба файл захира кунед ва онро ба консол нусхабардорӣ ва часбонед, ба ҷои он ки онро дастӣ чоп кунед, аммо ин ҳанӯз чандон гуворо нест. Барои осон кардани раванд, шумо метавонед фармонро дар скрипте печонед, ки дар PATH ҷойгир аст. Ва он гоҳ шумо бояд танҳо рамзи аз Google Authenticator гирифташударо ворид кунед

#!/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 

Агар шумо скриптро дар connect~evilcorp~ гузоред, шумо метавонед танҳо дар консол нависед

connect_evil_corp 567987

Аммо ҳоло шумо бояд консолеро, ки дар он openconnect бо ягон сабаб кушода аст, нигоҳ доред

Openconnect дар замина иҷро мешавад

Хушбахтона, муаллифони openconnect дар бораи мо ғамхорӣ карданд ва ба барнома калиди махсус илова карданд -background, ки барномаро пас аз оғозёбӣ дар замина кор мекунад. Агар шумо онро чунин иҷро кунед, шумо метавонед консолро пас аз оғозёбӣ пӯшед

#!/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  

Ҳоло маълум нест, ки гузоришҳо ба куҷо мераванд. Умуман, мо аслан ба гузоришҳо ниёз надорем, аммо шумо ҳеҷ гоҳ намедонед. openconnect метавонад онҳоро ба syslog равона кунад, ки дар он ҷо онҳо бехатар ва бехатар нигоҳ дошта мешаванд. шумо бояд гузариши -syslog -ро ба фармон илова кунед

#!/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  

Ҳамин тавр, маълум мешавад, ки openconnect дар ҷое дар замина кор мекунад ва касеро ташвиш намедиҳад, аммо маълум нест, ки чӣ гуна онро боздоштан. Яъне, шумо метавонед, албатта, баромади ps-ро бо истифода аз grep филтр кунед ва равандеро ҷустуҷӯ кунед, ки номаш openconnect дорад, аммо ин то андозае дилгиркунанда аст. Ташаккур ба муаллифоне, ки дар ин бора фикр кардаанд. Openconnect дорои калиди -pid-file мебошад, ки бо он шумо метавонед ба openconnect дастур диҳед, ки идентификатори раванди худро ба файл нависад.

#!/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-pid

Акнун шумо ҳамеша метавонед равандро бо фармон кушед

kill $(cat ~/vpn-pid)

Агар ягон раванд вуҷуд надошта бошад, бикушед лаънат хоҳад кард, аммо хато намекунад. Агар файл дар он ҷо набошад, пас ҳеҷ чизи бад низ рӯй нахоҳад дод, бинобар ин шумо метавонед равандро дар сатри аввали скрипт бехатар кушед.

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-pid

Акнун шумо метавонед компютери худро фаъол созед, консолро кушоед ва фармонро иҷро кунед ва ба он кодро аз Google Authenticator интиқол диҳед. Пас аз он консолро мехкӯб кардан мумкин аст.

Бе VPN-бурида. Ба ҷои калимаи баъдӣ

Фаҳмидани он ки чӣ тавр бе VPN-бурида зиндагӣ кардан хеле душвор буд. Ба ман лозим омад, ки бисёр хондан ва гугл ҷустуҷӯ кунам. Хушбахтона, пас аз сарф кардани вақти зиёд бо мушкилот, дастурҳои техникӣ ва ҳатто man openconnect мисли романҳои ҳаяҷонбахш мехонанд.

Дар натиҷа, ман фаҳмидам, ки vpn-бурида, ба монанди скрипти аслӣ, ҷадвали масирро ба шабакаҳои алоҳида тағир медиҳад.

Ҷадвали масир

Оддӣ карда гӯем, ин ҷадвал дар сутуни якум аст, ки дар он суроғае, ки Linux мехоҳад аз он гузарад, бояд аз он сар шавад ва дар сутуни дуюм аз кадом адаптери шабакавӣ дар ин суроға гузарад. Дарвоқеъ, сухангӯён зиёданд, аммо ин моҳиятро дигар намекунад.

Барои дидани ҷадвали масир, шумо бояд фармони IP-ро иҷро кунед

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 

Дар ин ҷо, ҳар як сатр барои фиристодани паём ба ягон суроға масъул аст. Аввалан тавсифи он аст, ки суроға аз куҷо сар мешавад. Барои фаҳмидани он, ки 192.168.0.0/16 маънои онро дорад, ки суроға бояд бо 192.168 оғоз шавад, шумо бояд google-ро ҷустуҷӯ кунед, ки ниқоби суроғаи IP чист. Пас аз dev номи адаптер мавҷуд аст, ки паём бояд ба он фиристода шавад.

Барои VPN, Linux адаптери виртуалӣ сохт - tun0. Хат кафолат медиҳад, ки трафик барои ҳама суроғаҳое, ки аз 192.168 сар мешаванд, аз он мегузарад

192.168.0.0/16 dev tun0 scope link 

Шумо инчунин метавонед бо ёрии фармон ҳолати кунунии ҷадвали масирро бубинед масири -n (Суроғаҳои IP ба таври оқилона беном карда шудаанд) Ин фармон натиҷаҳоро дар шакли дигар истеҳсол мекунад ва умуман бекор карда мешавад, аммо баромади он аксар вақт дар дастурҳои Интернет пайдо мешавад ва шумо бояд онро хонда тавонед.

Дар куҷо суроғаи IP-и масир бояд оғоз шавад, аз омезиши сутунҳои таъинот ва Genmask фаҳмида мешавад. Он қисмҳои суроғаи IP, ки ба рақамҳои 255 дар Genmask мувофиқанд, ба назар гирифта мешаванд, аммо онҳое, ки 0 мавҷуд аст, ба назар гирифта намешаванд. Яъне омезиши Destination 192.168.0.0 ва Genmask 255.255.255.0 маънои онро дорад, ки агар суроға бо 192.168.0 оғоз шавад, дархост ба он дар ин масир мегузарад. Ва агар макони таъинот 192.168.0.0 аммо Genmask 255.255.0.0 бошад, пас дархостҳо ба суроғаҳое, ки аз 192.168 оғоз мешаванд, дар ин масир мегузарад.

Барои фаҳмидани он ки vpn-slice воқеан чӣ кор мекунад, ман қарор додам, ки ба ҳолати ҷадвалҳо пеш ва баъд аз назар гузаронам.

Пеш аз фурӯзон кардани VPN, ин чунин буд

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 wlp3s0

Пас аз занг задан ба openconnect бе vpn-бурида, ин тавр шуд

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 tun0

Ва пас аз занг задан openconnect дар якҷоягӣ бо vpn-slice монанди ин

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 tun0

Дидан мумкин аст, ки агар шумо vpn-slice-ро истифода набаред, openconnect ба таври возеҳ менависад, ки ҳама суроғаҳо, ба истиснои суроғаҳои махсус нишондодашуда, бояд тавассути vpn дастрас карда шаванд.

Дар он ҷо:

0.0.0.0         0.0.0.0         0.0.0.0         U     0      0        0 tun0

Дар он ҷо, дар паҳлӯи он, фавран роҳи дигар нишон дода мешавад, ки он бояд истифода шавад, агар суроғае, ки Linux аз он гузарад, ба ягон ниқоби ҷадвал мувофиқат накунад.

0.0.0.0         222.222.222.1   0.0.0.0         UG    600    0        0 wlp3s0

Дар ин ҷо аллакай навишта шудааст, ки дар ин ҳолат шумо бояд адаптери стандартии Wi-Fi-ро истифода баред.

Ман боварӣ дорам, ки роҳи VPN истифода мешавад, зеро он дар ҷадвали масир аввалин аст.

Ва аз ҷиҳати назариявӣ, агар шумо ин роҳи пешфарзро аз ҷадвали масир хориҷ кунед, пас дар якҷоягӣ бо dnsmasq openconnect бояд кори муқаррариро таъмин кунад.

Ман талош кардам

route del default

Ва ҳама чиз кор кард.

Масири дархостҳо ба сервери почта бе vpn-бурида

Аммо ман инчунин як сервери почтаи электронӣ бо суроғаи 555.555.555.555 дорам, ки ба он низ тавассути VPN дастрас шудан лозим аст. Хатсайри он низ бояд дастӣ илова карда шавад.

ip route add 555.555.555.555 via dev tun0

Ва ҳоло ҳама чиз хуб аст. Пас шумо метавонед бе vpn-бурида кор кунед, аммо шумо бояд хуб донед, ки чӣ кор карда истодаед. Ҳоло ман дар бораи илова кардани хати охирини скрипти openconnect дар бораи хориҷ кардани масири пешфарз ва илова кардани масир барои почта пас аз пайвастшавӣ ба vpn фикр мекунам, то ки қисмҳои ҳаракаткунанда дар дучархаи ман камтар бошанд.

Эҳтимол, ин пас аз он кифоя бошад, то касе фаҳмад, ки чӣ тавр насб кардани VPN. Аммо дар ҳоле, ки ман кӯшиш мекардам, ки чӣ ва чӣ тавр кор кунам, ман хеле зиёд чунин дастурҳоро хондам, ки барои муаллиф кор мекунанд, аммо бо баъзе сабабҳо барои ман кор намекунанд ва ман қарор додам, ки ҳамаи қисмҳои ёфтаамро дар ин ҷо илова кунам. Ман аз чунин чизе хеле хурсанд мешудам.

Манбаъ: will.com

Илова Эзоҳ