ProHoster > Blog > Pulega > ipipou: e sili atu nai lo na o se alavai e le'i fa'ailogaina
ipipou: e sili atu nai lo na o se alavai e le'i fa'ailogaina
O le a le mea tatou te fai atu ai i le Atua o IPv6?
E saʻo, matou te fai atu tutusa i le atua o faʻamatalaga i aso nei.
O iinei o le a tatou talanoa ai e uiga i se alalaupapa IPv4 e leʻi faʻamaonia, ae le o se "moli mafanafana", ae e uiga i se "LED" faʻaonapo nei. Ma o loʻo i ai foʻi faʻailoga mata e susulu iinei, ma o loʻo faʻagasolo galuega faʻatasi ma afifi i avanoa faʻaoga.
O lo'o iai N tunneling protocols mo so'o se tofo ma lanu:
Ae o aʻu o se tagata fai polokalame, o lea o le a ou faʻateleina le N i se vaega, ma tuʻu le atinaʻeina o faʻasalalauga moni i tagata atinaʻe Kommersant.
I le tasi e lei fanau mai le ata faataitaiO le mea o loʻo ou faia nei o le oʻo atu lea i 'au i tua atu o le NAT mai fafo. I le faʻaaogaina o faʻasalalauga faʻatasi ai ma faʻataʻitaʻiga a tagata matutua mo lenei mea, e le mafai ona ou luluina le lagona e pei o le fanaina o manu iti mai se fana. Aua o le alavai e faʻaaogaina mo le tele o vaega naʻo le tuʻiina o pu i le NAT-e, o fefaʻatauaiga i totonu e masani lava ona faʻailogaina, ae latou te malemo pea i le HTTPS.
A'o su'esu'eina tunneling protocols eseese, o lo'u tagata atoatoa i totonu na tosina atu pea lava pea i le IPIP ona o le itiiti ifo o lona ulu. Ae e tasi ma le afa fa'aletonu taua mo a'u galuega:
e manaʻomia ai IP lautele i itu uma e lua,
ma leai se faʻamaoniga mo oe.
O le mea lea, na toe tulia ai le tagata atoatoa i le tulimanu pogisa o le ulupoo, poʻo soʻo se mea e nofo ai iina.
Ona sosoo ai lea ma se tasi aso, a o faitau tala i luga tunnels lagolago fa'alenu'u i Linux na ou tau atu i le FOU (Foo-over-UDP), i.e. po'o le a lava, afifi i le UDP. I le taimi nei, na'o le IPIP ma le GUE (Generic UDP Encapsulation) e lagolagoina.
“O le pulu siliva lenei! O se IPIP faigofie ua lava mo aʻu." - Faapea lava a'u.
O le mea moni, o le pulu na foliga mai e le o se siliva atoa. O le Encapsulation i le UDP e foia ai le faʻafitauli muamua - e mafai ona e faʻafesoʻotaʻi i tagata o loʻo i tua o le NAT mai fafo e faʻaaoga ai se fesoʻotaʻiga muamua, ae o le afa o le isi toe faʻafoʻi o le IPIP fuga i se malamalama fou - soʻo se tasi mai se fesoʻotaʻiga tumaoti e mafai ona natia i tua o le vaʻaia. IP lautele ma uafu tagata o tausia (i le IPIP mama e le o iai lenei faʻafitauli).
Ina ia foia lenei faafitauli e tasi ma le afa, na fanau ai le aoga ipipou. O loʻo faʻaaogaina se masini faʻapitoa mo le faʻamaoniaina o se talimalo mamao, e aunoa ma le faʻalavelaveina o le faʻaogaina o le kernel FOU, lea o le a vave ma lelei le faʻaogaina o pusa i le kernel space.
Matou te le manaʻomia lau tusitusiga!
Lelei, afai e te iloa le taulaga lautele ma le IP a le kalani (mo se faʻataʻitaʻiga, o tagata uma i tua e le alu i se mea, e taumafai le NAT e faʻafanua ports 1-in-1), e mafai ona e fatuina se IPIP-over-FOU tunnel ma le mulimuli i poloaiga, e aunoa ma ni tusitusiga.
luga ole server:
# Подгрузить модуль ядра FOU
modprobe fou
# Создать IPIP туннель с инкапсуляцией в FOU.
# Модуль ipip подгрузится автоматически.
ip link add name ipipou0 type ipip
remote 198.51.100.2 local 203.0.113.1
encap fou encap-sport 10000 encap-dport 20001
mode ipip dev eth0
# Добавить порт на котором будет слушать FOU для этого туннеля
ip fou add port 10000 ipproto 4 local 203.0.113.1 dev eth0
# Назначить IP адрес туннелю
ip address add 172.28.0.0 peer 172.28.0.1 dev ipipou0
# Поднять туннель
ip link set ipipou0 up
i luga ole kalani:
modprobe fou
ip link add name ipipou1 type ipip
remote 203.0.113.1 local 192.168.0.2
encap fou encap-sport 10001 encap-dport 10000 encap-csum
mode ipip dev eth0
# Опции local, peer, peer_port, dev могут не поддерживаться старыми ядрами, можно их опустить.
# peer и peer_port используются для создания соединения сразу при создании FOU-listener-а.
ip fou add port 10001 ipproto 4 local 192.168.0.2 peer 203.0.113.1 peer_port 10000 dev eth0
ip address add 172.28.0.1 peer 172.28.0.0 dev ipipou1
ip link set ipipou1 up
le mea
ipipou* - igoa ole feso'ota'iga feso'ota'iga alavai i le lotoifale
203.0.113.1 — server IP lautele
198.51.100.2 - IP lautele a le kalani
192.168.0.2 — client IP ua tofia i le interface eth0
10001 - uafu tagata fa'apitonu'u mo FOU
20001 — uafu a tagata lautele mo FOU
10000 — uafu server lautele mo FOU
encap-csum - filifiliga e faʻaopoopo se siaki siaki a le UDP i pusa UDP faʻapipiʻi; e mafai ona suia e noencap-csum, ae le o le taʻua, o le amiosaʻo ua uma ona pulea e le pito i fafo o le encapsulation layer (aʻo i ai le afifi i totonu o le alavai)
eth0 - fa'apitonu'u fa'apitonu'u lea o le a fusia ai le alavai ipip
172.28.0.1 - IP o le aufaʻatasi a le kalani (faʻapitoa)
172.28.0.0 - IP tunnel server interface (tutoatasi)
O le a lava le umi e ola ai le fesoʻotaʻiga UDP, o le a lelei le alavai, ae afai e malepe, o le a e laki - pe a tumau le IP a le tagata o tausia: o le taulaga - o le a ola, pe a suia - o le a malepe.
O le auala pito sili ona faigofie e toe faʻafoʻi ai mea uma o le lafoaʻiina lea o modules kernel: modprobe -r fou ipip
E tusa lava pe e le manaʻomia le faʻamaonia, o le IP a le tagata o tausia lautele ma le taulaga e leʻo iloa i taimi uma ma e masani ona le mautonu pe fesuisuiai (faʻalagolago i le NAT type). Afai e te lafoai encap-dport i luga o le itu o le server, o le a le galue le alavai, e le lava le atamai e ave le taulaga fesoʻotaʻiga mamao. I lenei tulaga, e mafai foi ona fesoasoani le ipipou, poo le WireGuard ma isi e mafai ona fesoasoani ia te oe.
E faapefea ona galulue?
O le tagata o tausia (lea e masani lava i tua o le NAT) e tatalaina se alavai (pei o le faʻataʻitaʻiga o loʻo i luga), ma auina atu se pusa faʻamaonia i le server ina ia faʻapipiʻi le alavai i lona itu. Faʻalagolago i faʻatulagaga, e mafai ona avea ma se pusa avanoa (naʻo le mea e mafai e le server ona vaʻaia le IP lautele: fesoʻotaʻiga port), poʻo faʻamatalaga e mafai ai e le server ona iloa le tagata o tausia. O faʻamaumauga e mafai ona avea ma faʻamatalaga faigofie i tusitusiga manino (o le tala faʻatusa ma le HTTP Basic Auth e oʻo mai i le mafaufau) poʻo faʻamaumauga faʻapitoa e sainia ma se ki faʻapitoa (e tutusa ma le HTTP Digest Auth naʻo le malosi, vaʻai galuega client_auth i le code).
I luga o le 'auʻaunaga (le itu ma le IP lautele), pe a amata le ipipou, e fatuina se nfqueue queue handler ma faʻapipiʻi le netfilter ina ia auina atu pepa manaʻomia i le mea e tatau ona i ai: afifi amata le fesoʻotaʻiga i le nfqueue queue, ma [toetoe lava] o isi uma e alu sa'o i le fa'afofoga FOU.
Mo i latou e le o iloa, nfqueue (poʻo NetfilterQueue) o se mea faʻapitoa mo amateurs e le iloa pe faʻafefea ona atiaʻe faʻaoga kernel, lea e faʻaaoga ai le netfilter (nftables/iptables) e mafai ai ona e toe faʻafeiloaʻi paʻu fesoʻotaiga i avanoa faʻaoga ma faʻaogaina iina e faʻaaoga ai. o lona uiga muamua: sui (filifiliga) ma toe avatu i le fatu, pe lafoa'i.
Mo nisi gagana polokalame o loʻo i ai fusi mo le galue ma le nfqueue, mo le bash e leai se (heh, e le o se mea e ofo ai), e tatau ona ou faʻaogaina le python: faʻaoga ipipou NetfilterQueue.
Afai e le taua le faʻatinoga, faʻaaoga lenei mea e mafai ona e faʻavave vave ma faigofie ona faʻapipiʻi lau oe lava manatu mo le galue ma paʻu i se tulaga maualalo, mo se faʻataʻitaʻiga, faia faʻataʻitaʻiga faʻasalalauga faʻasalalauga, poʻo le taʻavale i le lotoifale ma le mamao auaunaga ma le amio le masani.
O sockets mata e galulue faʻatasi ma le nfqueue, mo se faʻataʻitaʻiga, pe a uma ona faʻatulagaina le alalaupapa ma o loʻo faʻalogo FOU i luga o le uafu manaʻomia, o le a le mafai ona e lafoina se pusa mai le uafu tutusa i le auala masani - e pisi, ae e mafai ona e ave ma lafo sa'o mai se afifi fa'atupu fa'afuase'i i le feso'ota'iga feso'ota'iga e fa'aaoga ai se socket mata, e ui o le fa'atupuina o sea pepa o le a mana'omia ai sina fa'asili. O le ala lea e fai ai pepa fa'amaonia i le ipipou.
Talu ai ona o le ipipou o loʻo faʻagasolo naʻo pepa muamua mai le fesoʻotaʻiga (ma i latou na mafai ona tafe i totonu o le laina aʻo leʻi faʻatulagaina le fesoʻotaʻiga), e toetoe lava a le afaina le faʻatinoga.
O le taimi lava e maua ai e le 'au'auna ipipou se pepa fa'amaonia, e faia loa se alavai ma fa'asolo uma atu afifi i le feso'ota'iga ua uma ona fa'agasolo e le fatu e ala i le nfqueue. Afai e le manuia le fesoʻotaʻiga, ona tuʻuina atu lea o le pepa muamua o le isi i le laina nfqueue, e faʻatatau i faʻatulagaga, pe afai e le o se pepa faʻamaonia, ae mai le IP manatua mulimuli ma le port client, e mafai ona pasia. i luga pe lafoai. Afai o se pusa faʻamaonia e sau mai se IP fou ma se taulaga, e toe faʻaleleia le alavai e faʻaoga ai.
O le IPIP-over-FOU masani e iai le isi faʻafitauli pe a galue ma le NAT - e le mafai ona faia ni lua IPIP e faʻapipiʻiina i le UDP ma le IP tutusa, aua o le FOU ma le IPIP modules e matua vavae ese mai le tasi i le isi. O na. o le a le mafai e se paga o tagata faʻatau i tua atu o le IP lautele tutusa ona faʻafesoʻotaʻi i le server tutusa i lenei auala. I le lumana'i, atonu, o le a foia i le kernel tulaga, ae e le o mautinoa. I le taimi nei, e mafai ona foia faʻafitauli a le NAT e le NAT - afai e tupu se lua o tuatusi IP ua uma ona nofoia e se isi tunnel, o le a faia e ipipou le NAT mai le lautele i se isi IP tumaoti, voila! - e mafai ona e faia tunnel se'ia uma uafu.
Aua E le o saini uma pepa i totonu o le fesoʻotaʻiga, o lenei puipuiga faigofie e faigofie ile MITM, o lea afai o loʻo i ai se tagata leaga o loʻo lamalama i luga o le ala i le va o le kalani ma le 'auʻaunaga e mafai ona faʻalogo i le taʻavale ma faʻaogaina, e mafai ona ia toe faʻafeiloaʻi pepa faʻamaonia e ala i se isi tuatusi ma fai se alavai mai se tagata e le talitonuina.
Afai ei ai se tasi e iai ni manatu ile auala e faʻaleleia ai lenei mea aʻo tuʻu le tele o fefaʻatauaiga i totonu, aua le faatuai e tautala.
I le auala, o le faʻapipiʻiina i le UDP ua faʻamaonia lelei lava. Pe a faʻatusatusa i le faʻapipiʻiina i luga ole IP, e sili atu ona mautu ma e masani ona televave e ui lava i le faʻaopoopoga o le ulu o le UDP. E mafua lenei mea i le mea moni o le tele o 'au i luga o le Initaneti e galulue lelei naʻo le tolu faʻasalalauga sili ona lauiloa: TCP, UDP, ICMP. O le vaega moni e mafai ona lafoaia uma isi mea uma, pe faʻagasolo lemu, aua e sili ona lelei mo nei tolu.
Mo se faʻataʻitaʻiga, o le mea lea na faia ai le QUICK, lea e faʻavae ai HTTP / 3, i luga o le UDP, ae le o luga ole IP.
Ia, lava upu, ua oʻo i le taimi e vaʻai ai pe faʻapefea ona galue i le "lalolagi moni".
Taua
Fa'aoga e fa'aa'oa'o i le lalolagi moni iperf3. E tusa ai ma le maualuga o le vavalalata i le mea moni, e tutusa lava ma le faʻataʻitaʻiina o le lalolagi moni i Minecraft, ae mo le taimi nei o le a faia.
Tagata auai i le tauvaga:
fa'asino ala autu
o le toa o lenei tusitusiga o ipipou
OpenVPN faʻatasi ma faʻamaoniga ae leai se faʻamatalaga
OpenVPN i le faʻaogaina uma
WireGuard e aunoa ma le PresharedKey, ma MTU=1440 (talu mai IPv4-na'o)
Faʻamatalaga faʻapitoa mo geeks O fua fa'atatau e faia i fa'atonuga nei:
i luga ole kalani:
UDP
CPULOG=NAME.udp.cpu.log; sar 10 6 >"$CPULOG" & iperf3 -c SERVER_IP -4 -t 60 -f m -i 10 -B LOCAL_IP -P 2 -u -b 12M; tail -1 "$CPULOG"
# Где "-b 12M" это пропускная способность основного канала, делённая на число потоков "-P", чтобы лишние пакеты не плодить и не портить производительность.