

MikroTik - VPN Client pro určité lokální IP
Zdravím, rád bych se zeptal, jestli lze v routerOS dosáhnout vzorové situace.
Mám 5 počítačů ve vnitřní síti. Venku mám pět VPN serverů, do kterých chci připojit počítače z lokální sítě. Na každý server chytit jeden pc z vnitřní sítě. PC1->VPN1,PC2->VP2,... Lze nastavit, aby pro určité IP adresy v lokální síti (konkrétních pět počítačů) byla použita routa pěti VPN klientů, které nakonfiguruju v routeru? Na interface to tuším lze, ale jde i přímo na IP nebo je to totální blbost?
Díky za každý nápad.
1. nastavením routovací tabulky
2. pomocí policy based routingu
ani jedno na tomto obrázku nevidím:
![[winbox.jpg]](http://www.imagehosting.cz/images/winbox.jpg)
edit: a už vůbec nehovořím o tom, že jsi "opomněl" přiložit routovací tabulku toho VPN boxu. Zapomínáš, že defaultní routy, tak jak ti je sestaví systém pro místní subnety a výchozí bránu naprosto nestačí!
Na takove čachry je už potřeba hlubší vhled do síťařiny. Chápat souvislosti, znát možnosti, vědět, jak věci pracují. Nejjednodušší řešení je mnou nastíněný scénář (jeden tunel a v něm provoz všech těch veřejných adres), ale obávám se, že bez hlubšího pochopení, jak to vlastně pracuje, je na nic.
ale i s tím tunelem, pokud chce používat i běžné internetové připojení, bude muset to routování řešit. Leda by přesměroval do tunelu úplně vše...
Však to také v té mé odpovědí naznačuju - routa mimo tunel je jen na IP druhého VPN konce a defaultní routa je do tunelu.
default via 46.xx.yy.1 dev eth0
46.xx.yy.0/24 dev eth0 proto kernel scope link src 46.xx.yy.99
192.168.10.10 dev ppp0 proto kernel scope link src 192.168.10.1
IP tables
:PREROUTING ACCEPT [47:4105]
:INPUT ACCEPT [15:1879]
:OUTPUT ACCEPT [12:739]
:POSTROUTING ACCEPT [12:739]
-A POSTROUTING -s 192.168.10.0/24 -o eth0 -j MASQUERADE
COMMIT
Se současným nastavením to chápu tak, že se provoz z 192.168.0.111 na mém mikrotiku 192.168.0.2 překlopí pomocí src-nat na 192.168.10.10. V routovací tabulce je pro tuto adresu natavena jako gateway L2TP tunel. Po průchodu tunelem se kvůli maškarádě na vpn boxu překlopí na 192.168.10.1 a díky routě projde přes 46.xx.yy.99, potažmo přes 46.xx.yy.1 ven do internetu. Pro provoz který přijde zpět na 46.xx.yy.99 je to opačné. Mýlím se snad?
Nejspíše ano, ale netuším ve které části.
Samozřejmě bych se rád dostal do hlubšího náhledu na věc, bohužel však z manuálů nic moc nevyčtu. Čím tedy začít? Nějaká hodnotná literatura?
zase jsi zkysnul u firewallu, ale problém máš v routingu.
http://pc.poradna.net/a/view/308346-jak-diagnostik ujeme-a-resime-problemy-se-sitovymi-pripojenimi-di l-ii-routing-smerovani
Rád bych tu routovací tabulku viděl, a to na obou koncích. podle mě tvá teorie neodpovídá realitě, protože se maškaráduje úplně někde jinde, než si myslíš. ideální bude když to namaluješ a vyznačíš natování, protože pak většinou zjistíš, kde máš problém.
Směrovací tabulka toho boxu je
a na mikrotiku je to
// edit: Je to trochu změť, ale při vložení příspěvku to vymaže to mezery..
musíš to dát do "code"
(touchwood)
no vidíš.
1. Box nemá vůbec routu pro síť 192.168.10.0/24
2. Mikrotik má jen routu pro desítkovou síť, ale zbytek routuje rovnou do inetu (tj. chybí ti buď policy routing, nebo selektivní routa nebo default routa do VPN)
Selektivní routu mohu vytvořit pomocí mangle pravidla a mark routingu?
A na boxu mám nastavit gw pro 192.168.10.0/24 na 1-37.xxxxx.net, že?
// edit: na boxu jsem tedy vytvořil routu pro desítkový subnet
ad PBR:
Policy_Base_Routing
ad routing: to záleží, jak chceš, aby co kam šlo. Aktuálně (tak jak to máš nastaveno) bude fungovat pouze směr MTik -> 192.168.10.0/24 a ještě blbě, protože to máš blbě nastavené na druhé straně (tam musíš nasměrovat obě sítě 192.168.10.0/24 a 192.168.1.0/24 do tunelu. Pokud to nechceš řešit dál, budeš muset na serveru v internetu použít obousměrný NAT 1:1
Už jsem v tom úplně ztracený. Když čtu ten návod na wiki - nestačilo by tedy jen směrovat pomocí PBR všechen trafik do tunelu? Tak jako to dělají v tom návodu, jen s tím rozdílem, že nebudu posílat jen pakety obsahující něco, ale všechny, které mají zdrojovou adresu 192.168.0.111? Potom by stačila na tom boxu obyč. maškaráda, ne?
// edit: všechen trafik z 192.168.0.111 jsem měl na mysli. Z ostatních klientů by šel normálně defaultní routou směrem k poskytovateli.
jasně, nasměrovat si můžeš cokoli.
(přiznám se, že jsem se už ztratil, co vlastně chceš dosáhnout) 
Asi bude lepší to zkusit tedy popsat ještě jednou. Zkusím to i lépe nakreslit. Kašlu na L2TP a udělám to jednoduše přes PPTP.
![[current.jpg]](http://www.imagehosting.cz/thumbs/current.jpg)
![[desired.jpg]](http://www.imagehosting.cz/thumbs/desired.jpg)
Takhle je to teď
A takhle to chci
Začínám s nastavením na prvním obrázku.
Routovací tabulka v mikrotiku
NAT
================================================== ==============
Tak a teď jak docílit druhého obrázku. Tedy aby všechen trafik z client1 putovat přes VPS, tedy přes PPtP tunel.
Pomocí PBR mě napadá jednoduché řešení a to tedy:
Vytvořím klienta PPtP
Addresses
Vytvořím mangle pravidlo na mikrotiku takto
Přidám statickou routu takto
Tohle samo o sobě by mi dle mého mělo routovat veškerý trafik ze 192.168.0.111 do tunelu.
Na druhé straně (tedy na VPS, potažmo PPtP serveru) nastavím maškarádu a ipv4.forward. Mělo by to jet. Nebo je tam potřeba přidávat také statická routa?
Aktuální routovací tabulka na VPS
iptables
=================================================
Tak, snad jsem teď poskytnul dostatek informací, abychom to dotáhli do nějakého konce
pokud jsem dobře četl ten mikrotik, tak ano, MTik máš IMHO správně.
Ale! Ve VPS stále nevidím správnou routovací tabulku, síť 10.0.99.0/24 má routu pouze pro hosta (UH), nikoli pro síť (UG), takže bys tam měl mít i něco jako
ip route add 192.168.0.0/24 dev ppp0
ip route add 10.0.99.0/24 dev ppp0
Musíš si představit, že jsi paket co dorazil na VPS z inetu. NAT jej zprocesuje, ale kam jej router v jádře pošle dál, když NAT říká, že jej má odeslat na IP 192.168.0.111?
Nic jiného jsem neměnil, jen jsem přidal routy do tabulky na VPS:
Stejně to nejede, když pingnu třeba na na 46.xx.yy.99, tak je vidět, že někam ven jde trafik (na grafu rozhraní PPTP v mikrotiku), ale nic se nevrací. Stejně tak, když pingnu třeba google. Směrem tam to projde, ale nic se nevrátí. Přitom bych řekl, že ty routy už jsou teď správně.
Jinak díky za správné navedení, přesně něco takového bych potřeboval. Nějakou literaturu, kde to takhle polopaticky vysvětlujou: kdy se změní adresát na jakého, kdy se paket koho ptá kam se má odeslat atd. atd. Prostě celá cesta sítí, ale polopaticky.
ping je ti úplně k ničemu, potřebuješ tracert.. tam bude vidět kudy to jde a kde se to zastaví.
zkus wireshark, vyborny nastroj, lecos ti prozradi.. v prikazove radce pro linux existuje i tshark, ale i stary dobry TCPDUMP
Jenom takovy napad. Je vubec PPtP VPN schopna prenaset libovolne pakety libovolnych siti? Neni to neco jako policy based VPN u IPSecu, kde je presne definovane, jaky provoz muze tou VPN prochazet?
traceroute 46.xx.yy.99 skončí u 192.168.0.2, dál je request timed out.
traceroute 10.0.99.10 neprojde vůbec 192.168.0.2 a skončí na druhém řádku 10.0.99.10
Wireshark zkusím, uvidím, co vyhodí.
//edit: tracert posílám z 192.168.0.111
Další zájímavá věc je, že nepingnu ani z VPS na 10.0.99.10, takže už tomu vůbec nerozumím. Přeci, když je klient připojený a má IP 10.0.99.10, tak na něj musím z boxu pingnout.
Tak wireshark na mtiku na eth0: když pingnu 46.xx.yy.99, pakety se src 192.168.0.111 jdou jen tam, reply žádná.
Nikoho už nic nenapadá? Už jsem na tom strávil tolik času, že by mě dost otrávilo, kdybych to stejně nerozchodil
Tak mohl bych to tam protlačit přes L2TP, jen si nejsem jist, jestli to není víc problémů než užitku.
já bych šel ověřenou cestou OpenVPN. http://wiki.mikrotik.com/wiki/OpenVPN#Why_to_use_O penVPN_.3F
No, upřímně, pro pokus bych se úplně vyprdnul na VPN a zkusil to přes GRE tunel, ten sice není zabezpečený (otázkou je, jestli je to vůbec potřeba), ale na 100% bude fungovat a nebude vůbec nic omezovat. Podmínkou je ovšem veřejná adresa na obou koncích.
To bude právě problém. Na jednom konci veřejná adresa není. O2 je už nějaký čas nedává ke každé lince.
Co se týče OpenVPN, v čem konkrétně spočívá jeho výhoda oproti PPTP, nakonfigurovat se to bude muset stejně, ne?
Fuuu, tak konečně úspěch. Běhá to!
Prohnal jsem to L2TP tunelem. Ještě jsem měl problém s DNS - ms-dns mám nastavené v konfiguráku xl2tpd na boxu správně - nevím, proč jich tunel nevyužívá. Nebo možná tunel ano, ale 192.168.0.111 ne. Což je vlastně logické. Vyřešil jsem to povolením DNS serveru na MTiku.
Zítra sepíšu komplet návod, jak jsem to nastavil, aby to běhalo, kdyby to někdo v budoucnu potřeboval. Díky za rady pánové, nakonec mě přeci jen dovedly k cíli.
PS: Kdyby někdo věděl, jak na Mtiku nastavit, aby 192.168.0.111 používal DNS servery, jako tunel, klidně ještě nějakou radu. Myslím, že by bylo čistší řešení používat DNS servery VPN boxu.
Tak té otázce moc nerozumím, snad je na tobě, jaké DNS servery bude používat jaký server. Podle toho, jaké tam nastavíš.
Jde o to, že bez DNS překladu v MTiku mi jde ping z 192.168.0.111 přes tunel a VPN box jen ip adresy, třeba 173.194.113.66 pro google. Když dám ping google.com, nenajde ho.
Podle mě je to způsobeno proto, protože dostal IP adresu od DHCP serveru, který si bere informace od DNS z ADSL linky, tedy DNS servery O2. Nicméně, protože gateway pro 192.168.0.111 je nastavena do tunelu, vůbec se k těm DNS O2 nedostane.
Samozřejmě bych mohl přímo na stanici 192.168.0.111 nastavit natvrdo DNS servery VPN boxu, ale to už by zase bylo v systému. Já to chci mít všechno na jednom místě v MTiku, abych nemusel neustále měnit nastavení pro každou stanici zvlášť při jakékoliv nepatrné změně.
L2TP klient na MTiku má DNS správně, tedy VPN Boxu, nicméně nevím, jak docílit, aby tyto DNS měl automaticky i 192.168.0.111. Pokud to vůbec lze.
Není problém mít v DHCP přidělený DNS server, který je až za tunelem. Případně ho ručně nastavit v serveru, jak linux, tak windows toto umožňují (tedy IP z DHCP, ale DNS fixně).
Tohle já vím, tady opět ale narážíme na to, že část klientů ve vnitřní síti má gateway klasicky přes O2.
ad2: To také vím a jak jsem psal, nechci to dělat systémově. Jistě, několik pc takto nastavit lze, ale jestli se mi projekt rozjede, nehodlám na několika desítkách systémů měnit DNS.
Nejjednodušší tedy bude asi nechat dělat MTik DNS server.