Dažādas piezīmes

Izveido savu VPN tīklu neko nekonfigurējot! Hamachi! RSS šim rakstam 
16:05:44 01/06/2006 iesūtījis hQuse - Sadaļa: hQuse
Hamachi! The Holy Grail! - http://www.hamachi.cc/

Strādā aptuveni tā, ka uzinstalējas network draiveris, ir starpniekserveris bibi.hamachi.cc, uz kuru visi, kas palaiž Hamachi, piekonektējas, katras ar savu nikneimu. Tālāk izvēlas kuram serverim (serveriem arī ir nikneimi un ar  "serveris" es te domāju kāda paziņas vai drauga datoru) pieslēgties un ar kādu paroli. Tiek nodibināts VPN, dati tiek šifrēti. Visiem, kas saslēdzas pie viena servera (ar virtuālu IP adresi), tiek pierubīts lokālais tīkls. Talāk šo tīklu var izmantot visam kam. Piemēram, Call Of Duty 2 LAN geimam.

Mani gan pašlaik interesē, vai datu plūsma notiek caur UDP, caur kādu tieši izejošo portu un kasīsti ir "Magic option" Hamachi iestatījumos.

http://en.wikipedia.org/wiki/Hamachi
Papildināts:

Atļaušos pārpublicēt fx bloga ierakstu no www.siets.lv saglabātajām lapām.

Hamachi

26.02.2006

Šodien vēlos pastāstīt par Hamachi. Tas ir bezmaksas un praktiski bez-konfigurācijas VPNisks P2P pieslēgums.

Viegls uzstādīšanā, atbalsta gan linux, gan wintel. Ok, patiesībā uzstādīšana ir nepiedienīgi viegla. Vienīgais nosacījums ir, lai kernelī ir tun/tap atbalsts, bet tas jau VPN gadījumā ir tikai normāli. Liels Hamachi pluss ir tas, ka viņš darbojas arī aiz ugunsmūriem, jo izmanto starpniekserveri, lai nodibinātu sakarus. Taču līdz ko sakari ir nodibināti, viss trafiks iet bez jebkādas trešo serveru starpniecības un pie tam ir šifrēts. Hamachi autorizācijai ar serveriem tiek izmantots RSA atslēgu pāris. Tā, ka droši var apmainīties ar saviem super slepenajiem pasaules iekarošanas plāniem.

Visa šī tunelēšana notiek izmantojot UDP protokolu. Kāpēc UDP? Tāpēc, ka TCP tunelēšana caur TCP nav praktiska. Varbūt vēlāk papildināšu šo rakstu ar sīkāku izskaidrojumu.

Kā šie tuneļi spēj darboties caur ugunsmūriem un NATiem?


Īsumā aprakstīšu šo UDP tunelēšanas metodi.
Pieņemsim, ka ir 2 klienti (Exa un Zetta) un serveris (Yotta). Abi klienti atrodas privātā tīklā un pie ārpasaules tiek caur NAT rūteri. Parasti vienīgā iespēja nodibināt sakarus būtu atvērt portus uz rūtera, bet ko darīt, ja tas nav iespējams? Šeit talkā nāk sekojoša metode. Abi klienti zin Yottas adresi un nodibina ar viņu sakarus. Klienti nosūta Yottai savus lokālo izejas punktu datus - savu ip adresi un izejošo portu. Yotta savukārt papildus tam pieraksta tās izejošās IP adreses un izejošos portus, ko viņa redz. Piemēram, Exas ip adrese ir 192.168.0.10 un ports 6542, bet Exas rūtera adrese ir 81.94.234.45, ports 57365. Savukārt Zettas adrese ir 10.0.0.54, ports 14235 un rūtera adrese ir 62.45.67.89, ports 45109.

Exa un Zetta nodibina sakarus ar Yottu
Exa (192.168.0.10:6542) <--> NAT ruteris (81.94.234.45:57365) <--> Yotta
Zetta (10.0.0.54:14235) <--> NAT ruteris (62.45.67.89:45109) <--> Yotta

Tālāk Yotta pasaka Exas informāciju Zettai un Zettas informāciju Exai. Tagad Exa mēģina nodibināt sakarus ar Zettu on otrādi. Vispirms abi klienti mēģina nodibināt sakarus ar savā lokālajām adresēm, jo pastāv iespēja, ka viņi ir vienā tīklā un tad būtu bezjēdzīgi sazināties caur rūteri.


Exa <--> Zetta

Ja tas neizdodas, tad tiek mēģināta cita metode.

Abi klienti mēģina nodibināt sakarus viens ar otra rūteru izejošajie portiem.


Exa (192.168.0.10:6542) <--> NAT ruteris (81.94.234.45:57365) <--> Zettas NAT ruteris (62.45.67.89:45109)

Zetta (10.0.0.54:14235) <--> NAT ruteris (62.45.67.89:45109) <--> Exas NAT ruteris (81.94.234.45:57365)


Mana "diagramma" nav ideāla, bet cerams, ka ideja ir skaidra.

Triks ir tāds, ka NAT rūteris šādā situācijā izmanto jau iepriekš starp lokālo datoru un rūteri izveidoto saikni un noignorē to faktu, ka ārējā sūtītāja/saņēmēja IP adrese ir cita. Šī metode strādā tikai uz tiem rūteriem, kuri NATošanu veic izveidojot šādas saiknes starp lokālo datoru un sevi un neņem vērā mainījušos ārējā sūtītāja/saņēmēja IP adresi (Full cone NAT).

Hamachi tīkls


Pirmo reizi izveidojot sakarus ar Hamachi serveriem klients iegūst pats savu ip adresi 5.0.0.0/8 adrešu laukā, kura nekad nemainīsies. Bet kas tad ellē ir 5.0.0.0/8 adrešu lauks? Parasti vpniem izmantojam privātajiem tīkliem rezervētās adreses

10.0.0.0/8
172.16.0.0/12
192.168.0.0/16

Taču Hamachi ir jādarbojas jebkurā tīklā, kas nozīmē ka ir jābūt tādam adrešu laukam, kas nekur citur netiek izmantots. Un tieši te arī noder 5.0.0.0/8, kas ir IANA rezervēts lauks un šobrīd netiek nekur izmantots. Ar šiem 16 miljoniem adrešu Hamachi vajadzētu pietikt.

Hamachi uzstādīšana


Kā jau minēju uzstādīšana ir ļoti vienkārša.
Velkam Hamachi no oficiālās lapas vai arī no šejienes ftp://yotta.fx.lv/pub/software/Hamachi/

wget ftp://yotta.fx.lv/pub/software/Hamachi/hamachi-0.9.9.9-13-lnx.tar.gz

Atarhivējam

tar xzf hamachi-0.9.9.9-13-lnx.tar.gz
cd hamachi-0.9.9.9-13-lnx

Instalējam

sudo make install

Piemērs:


[~/tmp/Hamachi/hamachi-0.9.9.9-13-lnx]% sudo make install
Password:

Copying hamachi into /usr/bin ..
Creating hamachi-init symlink ..
Compiling tuncfg ..
Copying tuncfg into /sbin ..

Hamachi is installed. See README for what to do next.

Izveidojam sākotnējos konfigurācijas failus un RSA atslēgas.


hamachi-init

Piemērs:


hamachi-init
Initializing Hamachi configuration (/home/fx/.hamachi). Please wait ..

generating 2048-bit RSA keypair .. ok
making /home/fx/.hamachi directory .. ok
saving /home/fx/.hamachi/client.pub .. ok
saving /home/fx/.hamachi/client.pri .. ok
saving /home/fx/.hamachi/state .. ok

Authentication information has been created. Hamachi can now be started with
'hamachi start' command and then brought online with 'hamachi login'.

Startējam hamachi


hamachi start

Piemērs:


[~/tmp/Hamachi/hamachi-0.9.9.9-13-lnx]% hamachi start
Starting Hamachi hamachi-lnx-0.9.9.9-13 .. ok

Sazinamies ar serveri


hamachi login

Piemērs:


[~/tmp/Hamachi/hamachi-0.9.9.9-13-lnx]% hamachi login
Logging in ....>....... ok

Kā redzams ar ifconfig, Hamachi ir izveidojis jaunu tīkla interfeisu


ham0 Link encap:Ethernet HWaddr 86:AB:0D:92:03:08
inet addr:5.23.40.144 Bcast:5.255.255.255 Mask:255.0.0.0
UP BROADCAST RUNNING MULTICAST MTU:1200 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:55 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:0 (0.0 b) TX bytes:7423 (7.2 KiB)

Izveidojam tīklu blogtestnet (protams, šis vārds jau tagad būs aizņemts)
Hamachi paprasīs paroli, kura būs jāzin tiem, kas vēlēsies šim tīklam pieslēgties.


hamachi create blogtestnet

Piemērs:

[~/tmp/Hamachi/hamachi-0.9.9.9-13-lnx]% hamachi create blogtestnet
Password:
Creating blogtestnet .. ok

Šobrīd esam pieslēgušies blogtestnet, taču lai sāktu viņu reāli izmantot vēl jāizpilda pēdējā komanda


hamachi go-online blogtestnet

Piemērs:

[~/tmp/Hamachi/hamachi-0.9.9.9-13-lnx]% hamachi go-online blogtestnet
Going online in blogtestnet .. ok

Pārbaudam vai viss ir izdevies


hamachi list

Piemērs:

[~/tmp/Hamachi/hamachi-0.9.9.9-13-lnx]% hamachi list
* [blogtestnet]

Kā redzams esmu pieslēdzies tīklam "blogtestnet"

Lai pieslēgtos šim tīklam no cita datora izmantojam komandas hamachi join blogtestnet un hamachi go-online blogtestnet


hamachi join blogtestnet
hamachi go-online blogtestnet

Piemērs:

fx@annex:~$ hamachi join blogtestnet
Password:
Joining blogtestnet .. ok

fx@annex:~$ hamachi go-online blogtestnet
Going online in blogtestnet .. ok

hamachi list parāda zvaigznīti pie tiem klientiem, kas ir on-line.


[~/tmp/Hamachi/hamachi-0.9.9.9-13-lnx]% hamachi list
* [blogtestnet]
* 5.23.15.127 192.168.0.3:1028
* 5.23.13.57 192.168.0.6:1363

Šajā piemērā var redzēt, ka visi blogtestnet klienti ir vienā lokālajā tīklā 192.168.0.0/16.

* * *

PDF versija

Citi raksta

Pašlaik nav komentāru

Komentēt...

Šim ierakstam komentēšanas iespēja ir atslēgta!
This item is closed, it's not possible to add new comments!

Šurpu turpu

«« RAMDisk (free!) FAK VORK »»

Locations of visitors to this page