VÄera se mi koneÄnÄ podaĹilo rozbÄhnout tunel nebo chcete li VPN mezi mĂ˝m linuxovĂ˝m routerem a notebookem moji vyvolenĂŠ kterĂ˝ mĂĄ od pĹĂrody Windows XP. Po vĹĄech marnĂ˝ch pokusech s ipsec (je to btw povinnĂĄ souÄĂĄst IPv6 a na linuxu to implementuje projekt openswan – fork dĹĂvÄjĹĄĂho freeswan projektu), kde se mi to nepovedlo rozjet na windowsĂch a nebo s pptpd (pro linux existuje sice server poptop ale ĹeĹĄĂ se to nÄjak ĂşplnÄ divnÄ pĹes pppd, kterĂ˝ mĂĄm prostÄ spojenĂ˝ podvÄdomÄ hlavnÄ s modemem a vytĂĄÄenĂ˝m pĹipojenĂm – i kdyĹž vĂm Ĺže point to point protokol se jen na tohle nevyuĹžĂvĂĄ) jsem nakonec jako optimĂĄlnĂ volbou shledal openvpn, coĹž je userspace implementace vpn, kterĂĄ bÄŞà jak na Windows (mĹŻĹže i jako sluĹžba) nebo na linuxu (normĂĄlnĂ daemon, kterĂ˝ jen v jĂĄdĹe potĹebuje podporu tun/tap modul).
Nastavit se to dĂĄ jak aby pouĹžĂval silnĂŠ ĹĄifrovĂĄnĂ tak taky tak, aby tĹeba jen komprimoval packety. Ono sice vÄtĹĄinou je potĹeba ĹĄifrovĂĄnĂ (firemnĂ sfĂŠra, kterĂĄ sdruĹžuje dvÄ lan do jednĂŠ pomocĂ VPN), ale zrovna v mĂŠm pĹĂpadÄ by to bylo totĂĄlnÄ na houby a jen bych zbyteÄnÄ pekl procesory na obou stranĂĄch tunelu (navĂc u mÄ na balkĂłnÄ je to docela starĂĄ ĹĄunka, na kterĂŠ byste si tĹeba quaka 2 rozhodnÄ nezapaĹili 😉 No abych to zkrĂĄtil: U sebe jsem si stĂĄhl zdrojĂĄky (pozor abyste na obou kompech mÄli stejnĂŠ verze ! JĂĄ nejdĹĂv stĂĄhnul 2.0beta ale pro widle jsem naĹĄel jen stabilnĂ 1.6 a byly s tÄmi rozdĂlnĂ˝mi verzemi problĂŠmy) a zkompiloval a nainstaloval.
VlastnÄ neĹž se pustĂm do dalĹĄĂho popisu konfigurace, tak bych asi mÄl popsat situaci, proÄ vlastnÄ ten tunel dÄlĂĄm. Inu jde o to, Ĺže moje pĹĂtelkynÄ je zrovna pĹipojenĂĄ na to jedinĂŠ AP v ĹĄirĂŠm okolĂ, kde admin zĂĄsadnÄ odmĂtĂĄ udÄlat default routu do czfree (tedy na mne). VĹĄechny desĂtkovĂŠ adresy se routujĂ sprĂĄvnÄ, ale internetovĂŠ adresy pro kterĂŠ samozĹejmÄ nemĹŻĹže bĂ˝t v routovacĂ tabulce zĂĄznam (protoĹže internetovĂŠ adresy jsou vĹĄechny ostatnĂ neĹž privĂĄtnĂ, tedy desĂtkovĂŠ, 192.168kovĂŠ a jeĹĄtÄ pĂĄr rozsahĹŻ mĂŠnÄ pouĹžĂvanĂ˝ch) a tedy jde je smÄĹovat jen pomocĂ default routy. No a vzhledem k tomu, Ĺže ten sprĂĄvce AP mĂĄ svojĂ pĹĂpojku UPC a chce aby z routeru mÄl pĹĂstup na net pĹes svojĂ pĹĂpojku, ale ŞådnĂ˝m klientĹŻm to neumoĹžĹuje (ani nemĹŻĹže podle smluvnĂch podmĂnek) tak je tu problĂŠm, protoĹže pro klienty co jsou na nÄj pĹipojenĂ vede routa prostÄ „do zdi“. JĂĄ jsem u sebe samozĹejmÄ ĹeĹĄil stejnĂ˝ problĂŠm, ale jĂĄ jsem se nebĂĄl experimentoval a ĹeĹĄenĂm na Ăşrovni routovĂĄnĂ je pouĹžĂt tzv. source routing, kterĂŠ se dÄlĂĄ pomocĂ znaÄkovĂĄnĂ packetĹŻ ve firewallu podle zdrojovĂŠ adresy a pomocĂ nĂĄstrojĹŻ z balĂku iproute (v debianu ho mĂĄm jako iproute2) je definovĂĄno nÄkolik routovacĂch tabulek a podle znaÄky kterou packet dostal ve firewallu se packet poĹĄle do tĂŠ kterĂŠ tabulky. TĂm je tedy dosaĹženo, Ĺže pĹĂmo z mĂŠho routeru dostanu default routu do vnitĹnĂ sĂtÄ (a tedy na svojĂ pĹĂpojku do upc) ale vĹĄichni moji klienti majĂ v alternativnĂ routovacĂ tabulce default routu na internetovou brĂĄnu naĹĄeho czfree cloudu.
JenĹže ten sprĂĄvce AP tvrdĂ, Ĺže je to moc prĂĄce a potenciĂĄlnĂ zdroj dĂry ve firewallu a Ĺže prostÄ source routing ani nĂĄhodou. Pak tedy jiĹž zbĂ˝vajĂ jen dvÄ varianty. BuÄto se pouĹžije proxy server (tak jsem to u pĹĂtelkynÄ ĹeĹĄil dosud) ale to mĂĄ tu velikĂĄnskou nevĂ˝hodu, Ĺže to ta aplikace musĂ podporovat (tĹeba internetovĂĄ prohlĂĹžeÄe jako Mozilla nebo i to IE takovĂŠ nastavenĂ mĂĄ) ale tĹeba vÄtĹĄina her (napĹĂklad takovĂŠ cube, kterĂŠ jsme si s pĹĂtelkynĂ velmi oblĂbili) to neumĂ a prostÄ si pak pĹes internet nezahrajete a jste odkĂĄzĂĄni jen na hranĂ uvnitĹ czfree (tedy desĂtkovĂŠ sĂtÄ). DruhĂ˝m zpĹŻsobem je udÄlĂĄnĂ takzvanĂŠho tunelu neboli vpn. PolopatÄ ĹeÄeno to znamenĂĄ, Ĺže na obou poÄĂtaÄĂch se vytvoĹĂ virtuĂĄlnĂ interfacy kterĂŠ se vzhledem tĹeba k routovĂĄnĂ tvĂĄĹĂ, Ĺže jsou spolu pĹĂmo ty poÄĂtaÄe spojenĂŠ. CelĂŠ to potom funguje tak, Ĺže co se poĹĄle na ten virtuĂĄlnĂ interface, tak se obalĂ novĂ˝mi hlaviÄkami a tam se zapĂĹĄe adresa pĹĂmo dosaĹžitelnĂĄ (tedy v mĂ˝m pĹĂpadÄ desĂtkovĂĄ) a odeĹĄle se to. Na druhĂŠm poÄĂtaÄi kdyĹž takovĂ˝ packet pĹijde tak se zase rozbalĂ a Ĺekne se Ĺže ten vnitĹek pĹiĹĄel z toho virtuĂĄlnĂho interfacu.
No a teÄ k tĂŠ konfiguraci. Openvpn umĂ dva reĹžimy – jednak tun, coĹž znamenĂĄ simulaci pĹĂmĂŠho spojenĂ dvou poÄĂtaÄĹŻ a nebo tap, coĹž je simulace Ethernetu, tedy kdy na jeden segment je pĹipojeno vĂce poÄĂtaÄĹŻ. ZatĂmco v tĂŠ prvnĂ v konfigurĂĄku nastavĂte vĹždy jen pĹĂmo viditelnou IP adresu druhĂŠho poÄĂtaÄe (remote) a obÄ virtuĂĄlnĂ adresy (ĹĂĄdek ifconfig) tak u varianty tap u serveru (neboli jednoho z poÄĂtaÄĹŻ, kterĂ˝ bude zprostĹedkovĂĄvat spojenĂ ostatnĂm) remote nechĂĄte zakomentovanĂŠ a do ifconfig nastavĂte virtuĂĄlnĂ adresu svojĂ a masku. Na klientech pak do remote napĂĹĄete jmĂŠno serveru a ifconfig bude vypadat stejnÄ akorĂĄt s tĂm rozdĂlem, Ĺže tam bude virtuĂĄlnĂ adresa toho klienta. Oproti ipsec je to prochĂĄzka rĹŻĹžovĂ˝m krajem. OstatnĂ volby nejsou tak dĹŻleĹžitĂŠ a vĹĄe je velice hezky okomentovĂĄno, takĹže by nemÄl bĂ˝t problĂŠm.
JeĹĄtÄ je tĹeba ve firewallu na obou stranĂĄch povolit protokol GRE (neboli PROTOKOL! 47 – POZOR! Ne port, ale protokol) a port kterĂ˝ jste pro komunikaci vybrali (defaultnÄ UDP port 5000). VypĂĹĄu tady co sem pĹidal jĂĄ do svĂŠho fw:
$IPTABLES -A FORWARD -i $TUNEL1_IF -j ACCEPT
$IPTABLES -A INPUT -i $TUNEL1_IF -j ACCEPT
$IPTABLES -A INPUT -p 47 -s $EVIK_IP -j ACCEPT
$IPTABLES -A INPUT -p UDP -s $EVIK_IP --dport 5000 -j ACCEPT
$IPTABLES -A OUTPUT -s $TUNEL1_IP -j ACCEPT
Jenom pĹipomenu, Ĺže mĂĄm autentizaci pomocĂ statickĂŠho klĂÄe, takĹže proto mĂĄm povoleno vĹĄe z interfacu toho tunelu. Na tÄch windowsĂch jsem jeĹĄtÄ musel dostat do routovacĂ tabulky to, aby desĂtkovĂŠ adresy posĂlal na to svoje AP a ne do tunelu (jinak by to vedlo k tomu, Ĺže by se packety zabalenĂŠ z tunelu o5 cpaly do tunelu). V cmd jsem tedy pustil permanentnĂ pĹidĂĄnĂ routy (parametr -p zaĹĂdĂ Ĺže tam ta routa bude i po rebootu) do desĂtkovĂŠ sĂtÄ:
route -p add 10.0.0.0 mask 255.0.0.0 10.27.9.1
kde to 10.27.9.1 je IP toho AP z rozsahu, kterĂ˝ mĂĄ i ten jejĂ notebook (tedy je ze stejnĂŠ sĂtÄ).
Napsat komentář
Pro přidávání komentářů se musíte nejdříve přihlásit.