Portál AbcLinuxu, 13. června 2025 20:44
Řešení dotazu:
Začnu tím nejjednodušším, a to potřebuji se z PC, které je mimo OpenVPN , dostat na web server, nejlépe pomocí iptables.
iptables -A PREROUTING -t nat -p tcp -i eth0 --dport 443 -j DNAT --to ip.ve.vpn:443 iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE echo 1 > /proc/sys/net/ipv4/ip_forwardAlternativně čistě userspace:
socat TCP4-LISTEN:443,reuseaddr,fork "TCP4:ip.ve.vpn:443"
Hned na úvod bych poznamenal, jen tak pro úplnost, že protokol pro VPN se jmenuje IPSec (nikoliv Open"VPN") a vhodná implementace key exchange utilit je například StrongSwan. (OpenVPN je směšná jednovláknová userspace hračka, zatímco IPSec je standardní implementace VPN přímo v kernelu, která využívá všech vymožeností linuxového síťového stacku.)
Inteligentní řešení existuje: IPv6.
Pokud jde o méně inteligentní řešení s VPN, jakmile je web server v nějaké "neveřejné" síti, musí se jak web server, tak i klient, který se k němu chce připojit, přihlásit ke společné VPN, skrz kterou se dá routovat od klienta k web serveru a zpět. Jinými slovy, ten VPN (IPSec) server, ke kterému se web server a klient připojují, musí mít veřejnou adresu (ať už IPv6, což jde jaksi samo od sebe, nebo IPv4, kde se veřejná adresa získává těžko).
Ještě bych doporučil mít uvnitř VPN vždy pouze IPv6, bez ohledu na to, jestli se VPN navenek routuje po IPv4 nebo IPv6. Důvodem je, že s IPv6 je mnohem snazší vyhnout se konfliktům mezi podsítí, do které je klient zrovna připojený, a podsítí, do které routuje VPN.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.