Portál AbcLinuxu, 21. května 2025 22:52
RemoteLAN1: 10.1.1.1 - router 10.1.1.2 - PC1 10.1.1.3 - PC2 RemoteLAN2: 10.1.2.1 - router 10.1.2.2 - PC1 10.1.2.3 - PC2 atd....Tech RemoteLAN by ale melo byt vice, klidne 10-20 (teoreticky klidne 254), do kazde muzu pridat OpenWRT router, ktery by mohl fungovat jako VPN klient. Jak na to? Nasel jsem zatim navody na Site-to-Site OpenVPN. Je to to co potrebuji? Muzete me prosim nasmerovat, jak se toto resi "spravne"? Co bych mel nastudovat? Dekuji Tom
iproute
) a vše bude fungovat.
Protože OpenVPN "just works" zatímco IPsec "just sucks".No nevím, mně přijde IPsec na Linuxu daleko jednodušší na správu než OpenVPN, navíc se využijí všechny výhody kernelové implementace. Ale jako chápu, že samotný standard je trochu komplikovanější a hůže se adaptuje na dnešní svět zkripleného internetu, ve kterém je nejvyšším dosažitelným ideálem posílat všechno včetně TCP přes 443/TCP stream, protože to proleze všude. :D
S OpenVPN většinou tak půlden studia konfigurace pro konkrétní scénář, a nakonec to chodí/chodilo.
Aspoň do chvíle, než se podíváte, jak to vlastně chodí. Třeba když se začnete zajímat o to, proč se čas od času všem na chvíli pozdrží veškeré pakety, a zjistíte, že je to tím, že openvpn dělá všechno v jednom threadu, takže zatímco čeká na autentizaci proti LDAPu, všechen provoz musí počkat. Tenhle konkrétní problém s autentizací je sice teď už opravený, ale primární problém přetrvává, takže při větším počtu uživatelů nejsou latence a hlavně jitter žádná sláva.
strongSwan the OpenSource IPsec-based VPN Solution runs on Linux 2.6, 3.x and 4.x kernels, Android, FreeBSD, OS X and WindowsTady nevnímám od OpenVPN zase až takový rozdíl.
PC v LocalLAN: 172.17.128.0/23 OVPN Server 172.17.129.6 OVPN tunel 10.10.0.1 -> 10.10.0.240 PC v RemoteLAN: 10.128.240.0/24Na hlavnim routeru v LocalLAN (pFsense) jsem pridal novou gateway (OVPN server 172.17.129.6) a staticke routovani pro 10.128.240.0/24 pres tuto novou gateway. Toto mam v server.conf:
port 2194 proto udp dev tun sndbuf 0 rcvbuf 0 ca ca.crt cert server.crt key server.key dh dh.pem tls-auth ta.key 0 topology subnet server 10.10.0.0 255.255.255.0 #ifconfig-pool-persist ipp.txt client-to-client client-config-dir /etc/openvpn/ccd push "route 10.128.240.0 255.255.255.0" push "route 172.17.128.0 255.255.254.0" route 10.128.240.0 255.255.255.0 10.10.0.240 #push "redirect-gateway def1 bypass-dhcp" push "dhcp-option DNS 172.17.129.1" push "dhcp-option DNS 172.17.128.15" keepalive 10 120 cipher AES-128-CBC comp-lzo user nobody group nogroup persist-key persist-tun status openvpn-status.log verb 3 crl-verify crl.pemclient CCD:
ifconfig-push 10.10.0.240 255.255.255.0 iroute 10.128.240.0 255.255.255.0 push "route 172.17.128.0 255.255.254.0 10.10.0.1"Toto je client.conf
client dev tun proto udp sndbuf 0 rcvbuf 0 remote x.x.x.x 2194 resolv-retry infinite nobind persist-key persist-tun remote-cert-tls server cipher AES-128-CBC comp-lzo setenv opt block-outside-dns key-direction 1 verb 3Mate nekdo tuseni kde muze byt problem? Co hledat? Sledoval jsem logy ssh/sshd, ale tam je jenom uspesne prihlaseni, po tom "zaseknuti se" zadna chyba nezapise. Tom.
/etc/ssh/ssh_config ... Host * ServerAliveInterval 240Zdar Max
RRQ from 172.17.129.6 filename pxelinux.0 tftpd: read: Connection refusedTo 172.17.129.6 je lokalni adresa VPN serveru. To je v poradku? Nemela by tam byt spis lokalni adresa toho vzdaleneho pocitace? Pri konfigurovani toho OpenVPN serveru jsem iptables nastavil takto:
iptables -I INPUT -p udp --dport 3194 -j ACCEPT iptables -I FORWARD -s 10.10.0.0/24 -j ACCEPT iptables -I FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -t nat -A POSTROUTING -s 10.10.0.0/24 -j SNAT --to 172.17.129.6Jde nejak zaridit, aby se ty vzdalene pocitace hlasily svoji skutecnou adresou? Pomuze to tomu PXE? Nebo se to musi udelat uplne jinak? Dekuji. Tom
chtel bych ze zeptar, respektive pozadat o doporuceni, jak nejvhodneni nakonfigurovat nasledujici situaci: …
IPv6.
(O2 IPv6 poskytuje, takže tradiční výmluva na poskytovatele v tomto případě odpadá, a neexistuje žádný racionální důvod zabývat se v roce 2017 omezeními protokolu IPv4 z roku 1975.)
Ano, verim ze IPv6 by mi to asi par veci vyresilo, ale :
Ale jak "vydedukovat" IPv6 adresu jen tak z hlavy to netusim....Od toho máme DNS. Klidně můžeš zónový soubor generovat z nějaké databáze zákazníků, kde můžeš mít i fyzickou polohu zařízení (GPS souřadnice), komu patří a co tam zhruba běží. Z telefonu není problém se k takové databázi dostat přes triviální webové rozhranní, které si v PHP spíchneš za večer, a/nebo použiješ Adminer Editor. Vedle zónového souboru můžeš z toho generovat i GPX pro navigaci, až tam pojedeš. Při troše šikovnosti by se dal udělat i CardDAV export, že bys pak měl v mobilu u kontaktu na zákazníka i seznam jeho zařízení a rovnou odkazy na jejich administraci.
No, jako namet na dlouhe zimni vecery pekny.. Ne, vazne, to co popisujete by bylo moc hezky, ale je to mnohem, mnohem dal nez momentalne dokazu dohlednout.
Jestli dobre chapu ty navrhy na IPv6, tak bych vlastne vubec nemel resit VPN, ale vyuzit verejne dostupnosti tech lokalnich IPv6 adres?
To ale neni to jedine o co mi jde. Nejedna se o skutecne zakazniky, ale o nase vlastni pobocky, ktere bych chtel mit ve VPN, veskery provoz smerovat tim VPN tunelem. Pristup na ty pobocky chci opet pouze tim tunelem. Takze nejaka forma VPN stejne musi probehnout. Koukam ze OpenVPN umi IPv6, takze tudy by to asi slo, ale ... co to zarizeni, na kterem jde nastavit pouze IPv4? Jak se na nej pripojim? . Nebo dodavatel toho zarizeni kvuli monitoringu a administraci. Tam to proste neprojde at je to problem technicky nebo uzivatelsky (ani bych se nedivil, kdyby tento dodavatel IPv6 odmitl jenom proto ze se mu nevejde do bunky v Excelu...) A ja s tim proste nemohu nic udelat.
Takze rozhodne dekuji za podnety, ale presto bych se rad vratil k te otazce, jak to vyresit pomoci IPv4 a OpenVPN. Jak rikam, momentalne to funguje tak jak potrebuji, kdybych dostal radu (nebo napovedu?) jak upravit konfiguraci tohto stavajiciho reseni aby zafungoval te PXE boot a zobrazovani lokalni IP vzdalenych zarizeni, tak bych byl rad. Nebo jsem prave narazil na omezeni IPv4 pres ktere nejede vlak? IPv6 si opravdu musim odlozit na neurcito.
Dekuji.
Tom
dev tun
, topology subnet
).
S PXE bootem mám takové mlhavé tušení, že je tam někde schované omezení na lokální segment sítě. Ale tahat to po VPN je stejně ptákovina, neboť pak bez VPN a přípojení k Internetu nebude fungovat vůbec nic. Dej do každé sítě lokální mirror.
Ohledně PXE bootu: třeba u Debianu (a Ubuntu a spol) stačí na distribučním mirror serveru najít (naklikat) příslušný podadresář, z něj vzít soubory "linux" a "initrd.gz", a do /tftpboot/pxelinux.cfg/default přidáte něco jako
label jessie kernel jessie/linux append initrd=jessie/initrd.gz priority=low vga=normal --
(což jsem tuším kdysi oprásknul z ISO instalačky Debianu z isolinux.cfg).
Debian netinstall bootne z initial ramdisku minimální prostředí, řekne si o cestu na distribuční server, a dál už tahá potřebné součástky přes FTP nebo HTTP do ramdisku.
Pokud máte něco s instalačkou ve formátu .ISO (image CD/DVD) tak samozřejmě i image CDčka se dá loadnout do ramdisku a bootnout, a to skrz pxelinuxova pomocníka zvaného "memdisk". Ten pak zajistí emulaci CD-ROM skrz služby BIOSu. Třeba instalačku DOSu takhle bootnete bez problému a dalšího zařizování. Problém nastane ve chvíli, kdy z toho CD nastartuje nějaký trochu schopný kernel, který kašle na služby BIOSu (Linux s CD instalátorem, NT kernel + Win32) a začne se pídit, kde má to CDčko připojeno k hardwaru. A protože kašle na INT13h BIOS services, tak ten disk nenajde.
I k tomuto problému existují workaroundy, bohužel pod Windows to každopádně znamená minimálně vsunout speciální driver do instalačního média = upravit ISO obraz, případně si hrát s WIM obrazy u moderních Windows, případně si poskládat vlastní Windows PE image... Není to špatná vychytávka, mít své vlastní PXE-bootable Windows PE s pár základními vyprošťovacími a klonovacími utilitami pro Windows
Jenom mám trochu obavu, jak bootování tlustých ISO obrazů pojede skrz VPNku - záleží, jak tlustou máte konektivitu mezi pobočkami. Nastartovat Windows PE loadnutím ISO image (desítky až stovky MB) do RAMdisku přes PXE+TFTP trvá docela dlouho i v LANce. TFTP je docela otravný protokol v tom ohledu, že tuším ACKuje každý UDP paket = visí to na latenci per-packet odezvy, tzn. na ping round tripu. V tomto ohledu má jednoznačně navrch netbootable instalátor Debianu, který si vše potřebné tahá over TCP (pomocí FTP nebo HTTP) a navíc selektivně jenom to, co potřebuje. BTW, ještě mě napadá, že gPXE/iPXE snad umí jako transport použít i FTP/HTTP... tzn. napadá mě třeba chainloadnout iPXE skrz primitivní PXE+TFTP a teprve pak rozpoutat pravé HTTP netboot inferno A i bez tohoto "dvoufázového PXE" by asi šlo zařídit, že by se do RAMdisku loadnul jenom relativně minimální image Windows PE, který by obsahoval driver nikoli pro RAMdisk, ale pro iSCSI (nebo AoE), a ten by mountnul na dálku blokové zařízení (třeba plný ISO image = instalačku) - takže by se to nemuselo tahat celé nastojato do RAMdisku. Nebo bootnout z RAMdisku PEčka s "podporou sítě" (včetně CIFS) a instalátor spustit ze síťového disku, ale to už si hodně vymejšlím a vidím v tom mnohá úskalí... každopádně na backup/restore třeba skrz gimagex to stačí. (Jenom ten PE image "se vším potřebným" je už docela tlustý.)
Jinak na "deployment" = hromadnou instalaci má Microsoft své vlastní oficiální/kanonické netbootable nástroje, dřív se to tuším jmenovalo RIS, běží to na Windows Serveru. Něco podobného bych čekal od Symantecu (modernější generace Ghostu).
...k tomu DNS pro OpenVPN remote klienty: Windowsum servíruju z OVPN "serveru" cca toto (kráceno, ale je to vlastně učebnicový příklad):
push "ip-win32 dynamic" push "dhcp-option DNS 192.168.5.6" push "dhcp-option DOMAIN mydomain.com"
Odhadem na OpenWRT "klientovi" bude ještě nějaká konfigurační práce s tím, aby si ty pseudo-DHCP opšny od OpenVPN klienta převzal a zapracoval ("up" script). Na druhou stranu je to myslím poměrně běžný a logický požadavek, čekal bych, že je to v OpenWRT "hotové".
tun-mtu 1400 mssfix 1360tun0 uz ukazuje MTU:1400, ale je to porad stejne. Nemate nejaky napad cim by to mohlo byt? co bych mel zkontrolovat? Dekuji. Tom
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.