Rrugëtimi i një llogarie Linux përmes OpenVPN me një rregull UID
Një rregull uidrange vendos prizat IPv4 të një llogarie në një tunel ekzistues pa namespace. Vendosni veçmas për DNS, IPv6 dhe rrugën rezervë, pastaj verifikoni.
Rrugëtimi i bazuar në llogari përshtatet kur çdo prizë IPv4 e zotëruar nga një përdorues Linux duhet të dalë përmes një tuneli ekzistues, dhe nuk përshtatet kur ju nevojitet izolim në nivel programi. Zgjedh sipas UID, prandaj çdo gjë që ekzekutohet nën atë llogari hyn në fushë, përfshirë punën batch që harruat. Zgjidhni këtë pyetje përpara se të prekni një ip rule të vetme.
Shembulli më poshtë supozon një llogari shfletuesi të dedikuar në UID 1500, një pajisje tuneli tun-office me adresën lokale 10.80.0.11 dhe një VPN që lejon destinacionet në fjalë. Vetë demoni ekzekutohet jashtë atij UID.
Tre kushte që zgjedhin mekanizmin
Zgjidhni një rregull UID kur identiteti që bën punën është llogaria, kur zhvendosja e të gjithë trafikut të saj është e pranueshme dhe kur një namespace do të ishte më i rëndë sesa e meriton detyra. Zgjidhni një namespace rrjeti kur ngarkesa e punës ka nevojë për ndërfaqet, zgjidhësin dhe tabelën e rrugëtimit të vet. Zgjidhni një proxy ose një lidhje për proces kur saktësisht një aplikacion duhet të zhvendoset ndërsa pjesa tjetër e sesionit mbetet në rrugën lokale. Shkrimi i këtyre treve parandalon një rregull që mbulon në heshtje më shumë sesa synohej.
Gabimi që duhet shmangur është të supozosh se nisësi përcakton pronarin. Një shfletues që merr një URL nga sesioni i një përdoruesi tjetër nuk ka krijuar priza nën UID 1500, dhe asnjë rregull nuk do të zhvendosë trafikun që ai gjeneron.
Tabela, rregulli dhe roja
Pas kontrollit të rregullave ekzistuese dhe zgjedhjes së numrave të papërdorur të tabelës dhe prioritetit, rregullimi është i shkurtër: një rrugë e parazgjedhur në një tabelë të dedikuar që mban adresën burimore të tunelit, një rregull që dërgon kërkimet e llogarisë në atë tabelë dhe një rregull përfundimtar që bllokon rrugën rezervë. E shkruar, kjo është një zëvendësim idempotent i rrugës, ip -4 route replace default dev tun-office src 10.80.0.11 table 51820, i ndjekur nga ip -4 rule add priority 12100 uidrange 1500-1500 lookup 51820.
Roja është ip -4 rule add priority 12101 uidrange 1500-1500 unreachable, dhe ka më shumë rëndësi sesa sugjeron gjatësia e saj. Pa të, një rrugë që mungon në tabelën 51820 bie në lidhjen e sipërme të zakonshme dhe llogaria rrjedh në heshtje trafikun që politika duhej të kapte. Me të, i njëjti dështim bëhet skadim kohe, domethënë bllokim dhe jo rrugë rezervë.
Mbajeni rregullin normal të adresës lokale përpara këtyre dhe vendosni me vetëdije nëse përjashtimet LAN ose të menaxhimit vijnë përpara tabelës së zgjedhur. Një rrugë e parazgjedhur e gjetur atje nuk pyet më vonë main për një rrugë LAN më specifike, gjë që i habit ata që presin që përputhja e prefiksit më të gjatë të vlejë mes tabelave. Shkruani listën e synuar të përjashtimeve në shënimin e ndryshimit, sa kohë arsyetimi është ende i freskët.
Çfarë lë jashtë rrugëtimi UID: DNS
Demoni i zgjidhësit hap prizat e tij të sipërme nën UID-në e vet, prandaj zgjedhja e 1500 nuk i zhvendos ato kërkime në tabelën 51820. Integrimi i DNS është një vendim i veçantë: drejtojeni llogarinë te një zgjidhës i arritshëm përmes tunelit, ose pranoni që zgjidhja e emrave ndjek rrugën e hostit ndërsa trafiku jo.
Një kërkesë loopback drejt një stub lokal nuk është provë që kërkesa e sipërme përdori rrugën e shfletuesit, dhe as ngarkimi i suksesshëm i një faqeje nga cache.
IPv6 ka nevojë për fjalinë e vet në projekt
Rregullat më sipër mbulojnë vetëm IPv4. Nëse kërkesa është një tunel IPv4 pa IPv6 të drejtpërdrejtë nga kjo llogari, shtoni një rregull përfundimtar të rishikuar si ip -6 rule add priority 12101 uidrange 1500-1500 unreachable, pastaj kontrolloni rregullat e mëparshme IPv6 dhe përjashtimet loopback që doni të mbani.
Bllokimi i IPv6 të drejtpërdrejtë nuk është tunelizim me dy shtresa; është një kufi. T'i quash tunelizim do të ngatërrojë personin tjetër që lexon politikën, dhe ngatërresa do të dalë si një kërkesë ndihme për një sajt IPv6 të prishur.
Verifikoni me llogarinë e vërtetë, pastaj merrni përsipër ciklin e jetës
Krahasoni kërkimet: ip -4 route get 198.51.100.25 uid 1500 kundrejt të njëjtit destinacion me një UID të zakonshëm. Pastaj bëni një kërkesë të lejuar nën llogarinë e dedikuar dhe kontrolloni adresën burimore që sheh skaji i largët. Një adresë burimore e preferuar nuk është source NAT dhe nuk do të mbizotërojë mbi një aplikacion që lidh diçka tjetër. Nëse të dy kërkimet kthejnë të njëjtën rrugë, rregulli nuk bën atë që mendoni.
Mbajeni tabelën, rregullat dhe jetëgjatësinë e rrugës së tunelit nën një pronar, testoni rilidhjen dhe humbjen e tunelit, dhe kur tërhiqni politikën hiqni vetëm hyrjet e sakta të saj. Një namespace është ende i disponueshëm nëse ndërfaqe të veçanta dhe gjendje e veçantë janë ajo që ju nevojitet vërtet.