Monday, January 21, 2013

Rrjeta private VPN me TINC


Une i kam dy PC ne shtepi me lidhje interneti prej 100 Mbps, nje PC te fuqishem ne pune dhe telefon Samsung Galaxy S2 i9100 me internet pa limit (21 Mbps)

Kam pas nevoje qe krejt kto me i lidh bashke qe me mujt me ba shares, remote control, me ba backup me Crashplan, LAN lojna, voip, etj. Masi une jetoj ne Suedi kam dasht me e lidh edhe familjen ne Kosove ne te njejten rrjete.

Shenim: njohuria ime per rrjeta eshte shum e limitume edhe me e instalu e rregullu TINC kerkon kogja njohuri n'rrjeta. Pershkak ksaj edhe kam pas shum probleme me e rregullu TINC. Por nese keni pytje kam me u mundu me ju ndihmu sa ma shum.

Para se me fillu duheni me pas parasysh qe duheni me pas 1 IP publike dhe duheni me mujt me ba forward porten 655 ne makinen ku TINC ka me punu.

Instalo TINC VPN ne Microsoft Windows


S'pari shkarkone Tinc prej http://www.tinc-vpn.org/download/. I keni dy mundesi Stable dhe Pre-Release, une e kam provu Pre-release mirpo ka pas nje problem qe pas ni kohe Tinc ka hy me nje loop edhe eshte ndal qe gjithashtu ka fillu me marr shum CPU, keshtuqe ju rekomandoj Stable verzionin. Gjithashtu konfigurimi osht pak ma ndryshe prej Stable edhe PreRelease. Ne fund te fundit ju doni mos me mendu per to pasi ta rregulloni.

Ketu i keni disa instrukcione qysh me instalu http://www.tinc-vpn.org/examples/windows-install/ edhe me konfiguru mirpo konfigurimin e bajme ketu.

Pasi ta keni instalu Tinc, instalone kartelen virtuale te rrjetes duke startu addtap.bat si administrator (kliko me tast te djathte dhe zgjedhe Run as Administrator)



Konfiguro TINC VPN ne Microsoft Windows


Shenim: Tinc i run konfigurimet ne te njejtin vend ku osht i instalum qe osht pak problem me punu me to nese e keni UAC te aktivizume (nese nuk e di qka osht ather e ki te aktivizume).

Per me konfiguru kemi me perdor CMD Command Prompt por ju lirisht mundeni me perdor Notepad apo naj text editor tjeter si Notepad++.

Per me startu cmd.exe si administrator kliko ne start menu dhe shkruje direkt "cmd", klikoje me tast t'djathte dhe zgjedhe Run as Administrator (me rendsi).



Ne cmd shkruj komandad qe jan ktu me Italic
Pe llogarisim qe ky kompjuter osht qe ka me pas porten 655 te hapun ne IP adresen publike e tjert kompjutera mbrapa NAT qe kan mu lidh ne kete kompjuter.

cd "c:\Program Files (x86)\tinc"
mkdir base - folderit po ia vnojme emrin e njejt si te konfigurimit
echo Name = base > base\tinc.conf - Kjo osht emri kti vpn
echo Interface = tincvpn >> base\tinc.conf - Nese ke kriju shum kartela virtuale ather ktu e shkrun cilen ka me perdor ky konfigurim (sepse mundesh me pas shum vpn :) )

Tash duhet me kriju edhe ni folder ne "base" me emrin "hosts" ku kemi me i rujt shenimet e ketij kompjuteri edhe tjerve qe kemi mi lidh ma vone.

mkdir base\hosts
echo Subnet = 172.20.1.1/32 > base\hosts\base

echo Address = 1.2.3.4 >> base\hosts\base

ose
echo Address = mybase.dyndns.org >> base\hosts\base

Adresa ktu duhet me u kan IP adresa publike, mos e perdor 1.2.3.4 veq shembull osht. Nese keni IP dinamike dmth qe ndryshon shpesh at'her ju rekomandoj me perdor naj free Dynamic DNS providers qe me perdor hostname ne vend te IP (psh. filani.dyndns.org)


Hapi tjeter osht me i gjeneru celesat per sigurim qe veq atyne qe ju besojm e ja u japim fajlin me celes mujn me u lidh ne rrjeten tone.

tincd.exe -n base -K

pranoj ato qka rekomandon tinc duke shtyp dy here enter

duhet me u dok diqka keshtu:


Nese e hap fajlin base\hosts\base me notepad duhet me u dok diqka kshtu:
Subnet = 172.20.1.1/32 
Address = mybase.dyndns.org 

-----BEGIN RSA PUBLIC KEY-----
MIIBCgKCAQEA83RaNhLW0YzwpVQ2094qMRCtxRyhSrLmQSxKXox5BjaK8lqz4FSx
RMWbwUjl66YhIczUkV8PvXIlVRXknjsKkwlHyQxWY2lZQjdl7mrKgON64LQDF1SJ
7o8PWMV2a4Pe5vV8EdStEP9Z/17azF4vG0OKcIsKmXrd4eMdlWLb+TZJ1UA9Lp/G
4kxLIE/KJDdXye/cmnp+xX2Rl3Pgid8CAlIlMST3mh8q9reYKwNvH9dzNtzESBwp
R1tO/TrH+1Mx0p66vaZL4WWiwSf20VZFibOMDZlNG29ow4K96OtqoqsTzdY9UOhy
w0tYr75zrhub06yB99+q3Kzrqvpu4nIlbwIDAQAB
-----END RSA PUBLIC KEY-----

Dhe base\tinc.conf diqka kshtu:

Name = base 
Interface = tincvpn 

Ata qe nuk dojn me shkru ne CMD munden me i kriju krejt kto konfigurime tu e perdor Notepad. Fajlat duhet me u kopju ne vende te sakta si ne shembullin tone "C:\Program Files (x86)\tinc\base\". Mirepo, ju duhet prap se prap me perdor CMD per me i kriju celsat, mos u mundoni me perdor ato qka e kom shkru une se osht edhe ni pjese tjeter qe ju nuk e shihni e nuk ka me ju punu pa to.

Tash duhet me konfiguru kartelen e rrjetes qe e kemi kriju n'fillim mas instalimit te Tinc.

Shko ne "Control Panel\Network and Internet\Network Connections" dhe ndrroja emrin karteles "TAP-Win32 Adapter" qe e ka "Local Area Connection x" ne "tincvpn".
Me tast te djathte klikoje edhe zgjedhe properties, Internet Protocol Version 4 (TCP/IPv4) dhe kliko Properties prap
Sheno IP adresen: 172.20.1.1
Subnet: 255.255.255.0

Une e kam perdor ket rrjete 172.20.1.0/24 se ato qe fillojne me 192 edhe 10 m'kane ba shum problem masi i perdori ne shpi edhe ne pune.
OK, kompjuteri jone i pare u kry, tash ta rregullojme kompjuterin e dyte.


Kompjuteri II


Instaloje Tinc edhe startoje CMD

cd "c:\Program Files (x86)\tinc"
mkdir homeserver
echo Name = homeserver > homeserver\tinc.conf
echo ConnectTo = base >> homeserver\tinc.conf
echo Interface = tincvpn >> homeserver\tinc.conf
mkdir homeserver\hosts
echo Subnet = 172.20.1.2/32 > homeserver\hosts\homeserver
tincd.exe -n homeserver -K

Nese pe vereni nuk e kam shkru "Address = mybase.dyndns.org" se kjo adrese osht interesant veq nese ki IP publike e ky kompjuter eshte mbrapa NAT. Mirpo kemi shtu "ConnectTo = base" se qekjo i tregon ku me u lidh.

homeserver\tinc.conf
Subnet = 172.20.1.2/32 

-----BEGIN RSA PUBLIC KEY-----
7o8PWMV2a4Pe5vV8EdStEP9Z/17azF4vG0OKcIsKmXrd4eMdlWLb+TZJ1UA9Lp/G
feIBCgKCAQEA83RaNhLW0YzwpVQ2094qMRCtxRyhSrLmQSxKXox5BjaK8lqz4FSx
RMWbwUjl66YhIczUkV8PvXIlVRXknjsKkwlHyQxWY2lZQjdl7mrKgON64LQDF1SJ
4kxLIE/KJDdXye/cmnp+xX2Rl3Pgid8CAlIlMST3mh8q9reYKwNvH9dzNtzESBwp
R1tO/TrH+1Mx0p66vaZL4WWiwSf20VZFibOMDZlNG29ow4K96OtqoqsTzdY9UOhy
w0tYr75zrhub06yB99+q3Kzrqvpu4nIlbwIDAQAB
-----END RSA PUBLIC KEY-----

homeserver\hosts\homeserver
Name = homeserver
ConnectTo = base
Interface = tincvpn 

Konfiguroje kartelen e rrjetes qe e kemi instalu pas Tinc-ut, ndrroja emrin ne "tincvpn" dhe shkruj keto IP:

IP: 172.20.1.2
Subnet: 255.255.255.0


Shkembimi i çelsave


Kopjo host fajlin prej kompjuterit t'pare te kompjuteri dyte njashtu edhe prej kompjuterit t'dyte te i pari.

Kopjo fajlin "C:\Program Files (x86)\tinc\base\hosts\base" prej kompjuteri t'pare te "C:\Program Files (x86)\tinc\homeserver\hosts\" qe osht ne kompjuterin e dyte.
Tani kopjo fajlin "C:\Program Files (x86)\tinc\homesever\hosts\homeserver" prej kompjuterit t'dyte te  "C:\Program Files (x86)\tinc\homeserver\hosts\" kompjuteri pare.
Pra secili kompjuter e ka host fajlin e secilit kompjuter.

Startoje TINCD


Jemi gati, komanda e fundit qe do ta ekzekutojme ne kompjuterin e pare osht:
tincd.exe -n base

Kjo ka me kriju ni service edhe me startu. (Servisi e starton automatikisht VPN kur kompjuteri te starton apo nese keni ba restart)

Edhe gati njejt ne kompjuterin e dyte:
tincd.exe -n homeserver 

U kry!


Nese keni probleme


Perveq nese keni naj firewall qe nuk ju le me pingu, perndryshe Pingu osht mjeti ma i mire per me kontrollu lidhjen e rrjetave. Ndaloje perkosisht firewall ne secilin kompjuter edhe pingoj kompjuterat mes veti per me kontrollu a osht gjithqka ne rregull. Na jemi duke i perdor IP-te 172.20.1.1 dhe 172.20.1.2 pra pingoj prej dy kompjuterave.

Deri sa jeni tu mundu me gjet problemin ju kisha rekomandu qe me startu TINC ne debug mode qe me pa se cka po ndodh. Nale servisin nese osht i startu edhe startoje TINC kshtu:

tincd.exe -n base -d3 -D

Per ma shum informata, dokumentacion, shembuj perdorni dokumentacionin oficial http://www.tinc-vpn.org/documentation/tinc_toc.html#SEC_Contents

Android


Une e kam +CyanogenMod 10.1 ne Galaxy S2 i9100 edhe punon shum mire, nuk jam i sigurt qysh ka me punu ne telefona edhe Rom-a tjere.

Masi osht kogja telashe me i kriju krejt ato konfigurime prej telefonit, na do ta perodim kompjuterin Base per ate pune.

cd "c:\Program Files (x86)\tinc"
mkdir android

echo ScriptsInterpreter = /system/bin/sh > android\tinc.conf

echo Device = /dev/tun >> android\tinc.conf
echo Name = android >> android\tinc.conf
echo ConnectTo = base >> android\tinc.conf

mkdir android\hosts

echo Subnet = 172.20.1.3/32 > android\hosts\android

tincd.exe -n android -K

Per android na vyn nje extra file "tinc-up" per me konfiguru rrjeten

echo #!/bin/sh > android\tinc-up

echo ifconfig $INTERFACE 172.20.1.3 netmask 255.255.255.0 >> android\tinc-up

Kshtu doken fajlat perafersisht nese i lexoni me naj tekst editor:

android\tinc.conf
Subnet = 172.20.1.3/32 

-----BEGIN RSA PUBLIC KEY-----
R1tO/TrH+1Mx0p66vaZL4WWiwSf20VZFibOMDZlNG29ow4K96OtqoqsTzdY9UOhy
feIBCgKCAQEA83RaNhLW0YzwpVQ2094qMRCtxRyhSrLmQSxKXox5BjaK8lqz4FSx
RMWbwUjl66YhIczUkV8PvXIlVRXknjsKkwlHyQxWY2lZQjdl7mrKgON64LQDF1SJ
4kxLIE/KJDdXye/cmnp+xX2Rl3Pgid8CAlIlMST3mh8q9reYKwNvH9dzNtzESBwp
w0tYr75zrhub06yB99+q3Kzrqvpu4nIlbwIDAQAB
-----END RSA PUBLIC KEY-----

android\hosts\android
ScriptsInterpreter = /system/bin/sh
Device = /dev/tun
Name = android
ConnectTo = base

android\tinc-up
#!/bin/sh
ifconfig $INTERFACE 172.20.1.3 netmask 255.255.255.0

VREJTJE mos harroni me i shkemby host fajlat prej ktij "android" edhe "base", tani kopjo krejt "android" folderin prej kompjuteit ne android telefonin tuj.


Merre Tinc GUI prej Google Play Store ne telefon, hape, preke ikonen e vegles, zgjedhe Configuration path dhe zgjedhe folderin ku e ke kopju folderin "android" prej kompjuterit, preke OK, Execute as Super User dhe shko mbrapa.

Preke start edhe kenaqu.

Nese t'del naj error rreth /dev/tun hjeke qat rresht edhe provo apet.


Linux


Kam mujt me provu veq me nje Debian server ku per fat ka edhe IP publike qe na ndihmon me eliminu piken e dobet e veq ni serverit me IP publike ku nese nje prej ktyne del offline tjetri osht online :) Mirpo kam pas shum pak me provu ne linux kshtu qe ka mundesi qe ka nevoje per ma shum perpunim.

apt-get update
apt-get install tinc
press enter
mkdir -p /etc/tinc/debsrv/hosts
cd /etc/tinc/

echo Name = debsrv > debsrv/tinc.conf
echo ConnectTo = base >> debsrv/tinc.conf
echo Interface = tincvpn >> debsrv/tinc.conf

echo Subnet = 172.20.1.6/32 > debsrv/hosts/debsrv
echo Address = nfsserver.dyndns.org >> debsrv/hosts/debsrv

tincd -n debsrv -K

echo debsrv >> /etc/tinc/nets.boot
echo '#!/bin/sh' | tee -a tinc-up tinc-down
echo 'ifconfig $INTERFACE 172.20.1.6 netmask 255.255.255.0' | tee -a tinc-up
echo 'ifconfig $INTERFACE down' | tee -a tinc-down
chmod 755 tinc-up tinc-down

Mos harroni me i shkemby host fajlat mes kti serveri edhe base serverit gjithashtu edhe me kompjuterat tjere.

Nese i kemi dy kompjutera me IP publike mundemi me i pas dy vija ConnectTo ne cdo konfigurim ashtu qe nese naj server bjen kompjuterat lidhen automatikisht te tjetri, ne fakt ata lidhen prej fillimit ne dyjat :)
ConnectTo = base
ConnectTo = debsrv

Shfrytzimi i "Cloud" sherbimeve


Une e du shume +Dropbox qe e kam te instalume ne krejt kompjuterat e paisjet qe i perdori edhe e perdori gati ne cdo hap. Masi e kam ne cdo kompjuter me ka hy ne pune edhe ma shum sa i perket fajlat e konfigurimeve per Tinc.

E kam kriju ni folder Tinc edhe nenfolderat per secilin kompjuter. Tani kam kriju symlink (shortcut) ne folder tinc ne C:\Program Files (x86)\tinc\ duke perdor komanden "mklink":
Ne kompjuterin e pare: mklink /D C:\Program Files (x86)\tinc\base C:\Users\Ilir\Dropbox\Tinc\base
Kompjuteri dyte: mklink /D C:\Program Files (x86)\tinc\homeserver C:\Users\Ilir\Dropbox\Tinc\homeserver

Tu e perdor ket metode i kam krejt senet e centralizume kshtu qe nese baj naj ndryshim qe prek krejt kompjuterat tjere nuk kam nevoj me shku te secili e me i ba ndryshimet po krejt i baj prej cilit do kompjuter. Si psh me shtu naj kompjuter e me kopju host fajlat ne krejt kompjuterat tjere (:

Ne fakt ju mundeni me perdor cilin do servis si psh +Google Drive, AeroFS, Skydrive, Box...


Per fund


Une nuk jam person shum kompetent n'ket lami, i kam hy rrjetav private veq prej nevojes. TINC me ka impresionu me thjeshtsine edhe punen e tij edhe me ka hy ne pune shum saqe me ka shty me shkru ket tutorial per tjeret me perdor.

E sa per TINC deri tash jam shum i knaqun, ka disa jave qe kam fillu me perdor edhe nuk kam pas naj telashe, mesiguri ka me pas naj problem, konfigurim ma te thjesht e ma te mire a ku ta di.

Kam pa qe ka edhe disa zgjidhje tjera per rrjeta private VPN si kjo edhe kam me i provu, nashta jane edhe ma te mire e ma te thjesht.

No comments: