Press "Enter" to skip to content

Hogyan készítsünk egy VPN-alagútot /

Közvetlen VPN-alagút két számítógép között a NAT szolgáltatók számára UDP lyukú lyukasztás

Egy cikk arról, hogyan sikerült egy egyenes vonalat (pont-pont) vpn alagút két számítógép között, Mindegyikük a NAT szolgáltatók mögött volt, VPS és egyszerű szkriptek használata szabványos Linux segédprogramokkal, hálózati berendezések beállítása nélkül.

Bevezetés

Számos program van (TeamViewer, Hamachi) a távoli számítógépkezeléshez, az adatátvitelhez és a T.Ns. Meglepően jól működnek és bármilyen körülmények között. De általában ezek a fizetett szolgáltatások. Hogyan működnek ezek a programok ismeretlenek, és nem okoznak különleges vágyat használni őket. I, a Linux OS (többnyire Ubuntu) felhasználójaként az adatok továbbítására és az OpenVPN, az SSH, a VNC, az RDP és más szolgáltatások számítógépének kezelésére szolgál az igényektől függően. Annak érdekében, hogy két számítógép közötti hálózatot szervezzen, a VPN-kiszolgálót használtam, hogy ezek a számítógépek csatlakozzanak az OpenVPN-kiszolgálóhoz, és az összes forgalom átment a szerveren. Ez nem elég jó, mert a forgalom kettős módon halad, ennek következtében a sebesség elveszett.
Klasszikus séma a VPN-alagutak szervezésére és adatátvitelre a csomópontok között a szerveren keresztül

Elmélet

Én már régóta gondolkodtam a megoldást a szervezet az adatátviteli csatorna közvetlenül a csomópont a csomóponthoz, amelyek a NAT tartók használata nélkül közvetítő szerverek. Miután egy bizonyos típusú GRE-alagutakról, az Ipsec, az UDP lyukasztásról, az OpenVPN-ről és más dolgokról szól, rájöttem, hogy a csomópontoknak átszúrják egymás felé kapcsolódó kapcsolatot, azaz a csomagokat a VI és a távoli csomópont port. A GRE-alagút megszervezéséről több kísérletet tegyen a NAT-en keresztül, az üzenet átadása Netcat-val egymással szemben, néha működött, néha nem, minden a szolgáltató által használt NAT típusától függött. Nem is olyan régen egy érdekes cikket rábukkantam a szem, ahol volt egy leírást szervező működésének OpenVPN két számítógép közötti kapcsolat (a továbbiakban csomópontok). Elolvastam, ellenőriztem és szereztem, de biztosítottam, hogy a csomópont helyi kikötője és a külső kikötő egybeesik, azaz a szolgáltatója a kúpot fogja használni. Érdekes volt nekem szervezni egy alagút két számítógép között, feltéve, hogy mindkettő bármilyen típusú (kúp vagy szimmetrikus) NAT, azaz a helyi port nem felel meg a külső kikötőnek. A feladat lemondott a külső interfész jelenlegi kikötőjének külső segítség nélküli kikötőjének meghatározására. Ha egy külső IP-cím legalább valahogy megtudhatja (például: Curl Hab), de a jelenlegi külső kikötő meghatározásával nehéz volt.

Gyakorlat

A feladat megoldásához a VPS-t (S-Blue Oval) -ot kellett használnom, felemeltem a “Connector” -ként szolgáló szkriptet, amit a STUN Server: A TCPdump segédprogram használata UDP csomagot kapott (a továbbiakban használt UDP protokoll) Egy adott interfészen és porton csomagolta a csomag tartalmát, meghatározta a forrás IP-címét / portját, és válaszolt a hálózat aktuális paramétereinek (IP-címének és portjának) visszaküldött NetCat segédprogramra, valamint a paraméterekre (IP-cím) és port) a távoli csomóponthoz, amelyhez csatlakozni kell, ha ez az adat elérhető volt, különben vártam, amíg meg nem jelennek. Mindezeket az esetet összehasonlítottuk a kapcsolat azonosítójával (ID), mivel több kapcsolat lehetne zavarni egymással, az azonosító használatakor mindent megoldottak. Volt olyan probléma, hogy a csomópont megkapta régi adatait, és megpróbált összekapcsolni őket, és úgy döntött, hogy Hesha Hostname-vel döntött.

Az A és B csomópontokon a szkriptet és a kulcsot előzetesen létrehozott kulcsot használtam a VPN-kapcsolat engedélyezéséhez, így működött, így működött: elindították a forgatókönyvet, a helyi kikötőt véletlenül választották ki a korábbi és ebből a kikötőből Elküldte a csomagot a VPS-re, amely tartalmazta a kapcsolódási azonosítót és a hash-hostname-t, a NetCat segédprogram használatával, és azonnal elindította a TCPdump várakozását. Válaszul egy olyan csomag jött, amely tartalmazta a csomópont jelenlegi adatát (IP-címét / portját), és egy távoli csomópont jelenlétével is jött, és elkezdett üdvözölni a csomópontok között. Ha nincs adat a távoli csomópontról, akkor a felmérés megismétlődött a másodpercek gyakoriságával, az ülés fenntartása érdekében. Abban a pillanatban, amikor az összes szükséges adatot (IP cím és port az aktuális csomópont és távoli) voltak csomópontok, a csomag csere kezdődött, a csomag tartalmazott száma M = 0, és a generált számot 0-tól (ez a szám arra használták, hogy generál egy belső VPN IP-cím -on). Távoli csomópont, amelynek tartalmaz egy csomagot M = 0-mal, m = 1 és így tovább, az M = 10 csomag kézhezvételét megelőzően, a csomagcsomagot 1 másodperces periodivitással kezdtük, m = 13, és indítsa el az OpenVPN-t, a távoli csomópontot Az M = 13 az OpenVPN-t is elindította a távoli csomópont helyi portjának, IP-címének és portjának, valamint a generált belső IP-űrlapon.X.{1,2} /

Közvetlen VPN-alagút diagram és adatátvitel a csomópontok között, szerver részvétel nélkül
Figyelem: A szkripteket az Ubuntu és a Debian 9-en írják és tesztelik,

Szkript a VPS-en:

# Macska hab

Indítsa el automatikusan a / etc / Hab

Hol van a kikötő, amelyet hallgatni kell, / var / log / Hab – napló.

Szkript a csomópontokon:# Macska hab

Másolja át a szkriptet a pufferbe, és helyezze be a szövegszerkesztőbe, például:

A parancsfájl végrehajtása:

Az első indításhoz az engedélyezési kulcsot generálja Hab, A távoli oldalon nem szükséges generálni, Meg kell másolnia:

Indítsa el például a parancsfájlt, így:

A Hab Hab-ban generált vasmb4de kulcs

Indítsa el automatikusan a / etc / Hab

Ha az ID-kapcsolat bármilyen egyedi mondat az Ön csatlakoztatásához, / var / log / Hab – Connections Log, IPSRV = “” – a csomópont IP-címe, ahol a Hab fut (első szkript).

Ha minden rendesen van konfigurálva, akkor úgy fog működni, mint egy óra: bekapcsolt és néhány perc múlva kapcsolat van egy távoli csomóponttal. A szkriptekben végtelen ciklusokat és ideiglenes késedelmet használ, azaz a szkript működik, miközben a csomópont be van kapcsolva, és a kommunikáció elvesztése megpróbálja visszaállítani azt. A szkriptek nem tökéletesek, de az a tény, hogy ez a technológia működik, sok új ötletet ad nekem, például:

  • Használjon egy csomópontot különösen fontos adatok tárolásához, és hozzáférhet velük, mondjuk, hogy egy elveszett laptop esetében minden adat lesz a csomóponton
  • Használjon laptop távoli asztali számítógépet
  • Szervezz meg egy kapcsolatot egy barátja számítógépével, és játssza le a hálózati játékot
  • Hozzáférjen a videofelügyeleti kamerához egy működő számítógépről, vagy nézze meg a laptop webkamerát

Adiníció:

  • Könnyű beállítás és használat
  • A forgalom közvetlenül megy
  • A forgalom titkosítva van és védett a lehallgatástól
  • Nem kell kikötőket készíteni
  • A parancsfájl automatikusan elindul

Hátrányok:

  • A fő hátrány a VPS felhasználása, mint adatforrás a kapcsolathoz, de gondolok rá
  • Egyes szolgáltatók blokkolják a forgalmat más szolgáltatók (megjegyezték a mobilszolgáltatóknál)
  • Ha mindkét oldalról használják, akkor egy szolgáltató nem működik, a NAT típusától függ
  • A “HARD” NAT szolgáltató használata esetén nem működik

A tervek továbbfejlesztésére irányuló tervek egy bizonyos rendszerre, minimalizálják az idő várakozási idejét, rögzítsük a továbbított adatok titkosítását, adaptálják a Windows és az Android, hogy tanítsák a munkát a proxy és hasonlók.

Azt hiszem, a fehér IPv4-címek hiányának hátterében, döntésem releváns lesz, zökkenőmentesen, amíg az IPv6 minden házhoz jön.

Frissítve, hozzáadva:

  • Aktiválási aktiválási aktiválási csapat, CVE biztonsági rés
  • Az éhes folyamatok megszüntetése NC, a kapcsolat csatlakoztatása felgyorsul
  • Az első indítás során belső IP-címeket generálnak, és komponenseiket a Hab-ban tárolják

Egy másik VPN-alagút végrehajtása, a VPS használata nélkül, a Stun és a Hab használatával itt kerül közzétételre

Comments are closed, but trackbacks and pingbacks are open.