Portál AbcLinuxu, 13. června 2025 20:44


Dotaz: OpenVPN nebo jiné řešení

1.8.2019 01:03 David S
OpenVPN nebo jiné řešení
Přečteno: 571×
Odpovědět | Admin
Ahoj lidi,

mám funkční OpenVPN server, v ní mám web server, který není na veřejné IP adrese, ale potřeboval bych se dostat na tento web server i z veřejného internetu, nejlépe po zadání nějakého uživatelského jména a hesla na webu.

Pro lepší představu by ideálním řešením bylo, aby po přihlášení uživatele na OpenVPN serveru došlo ke překladu komunikace mezi web serverem v OpenVPN síti a uživatelem, který není ve VPN.

Neexistovalo by nějaké inteligentní řešení?

Díky

David

Řešení dotazu:


Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

1.8.2019 05:34 V.
Rozbalit Rozbalit vše Re: OpenVPN nebo jiné řešení
Odpovědět | | Sbalit | Link | Blokovat | Admin
Má ten OpenVPN server veřejnou IP adresu? Tak na nějaký tcp port na té veřejné si udělejte překlad (NAT) na tu privátní adresu web serveru.
Možná by bylo lepší si to namalovat a najít tak nejjednodušší řešení. Adresa webu = adresa OpenVPN? To má více veřejných IP adres? Na základě čeho chcete povolovat/blokovat přístup?
Mikrotik nějakou proxy podporuje (viz nápověda), najdete se tam v požadavku na provoz?
1.8.2019 07:11 bigBRAMBOR | skóre: 37
Rozbalit Rozbalit vše Re: OpenVPN nebo jiné řešení
Odpovědět | | Sbalit | Link | Blokovat | Admin
jako co na to odpovědět, znovu a lépe, prase aby se v tom dotazu vyznalo.

kde más web server, píšeš mám ovpn server a v ní mám web server, je to na stejném serveru, nebo je tam ovpn server a nekde ve stejne privatni siti je web server? Jak chces zadavat jmeno a heslo na webu který není pristupný z webu? Pro lepší predstavu aby po prihlaseni uzivatele na openvpn - co to znamená, ze se prihlásíš na ten ovpn server ovpn clientem? nebo SSH, FTP? Prekladem mezi uzivatelem který není ve VPN Tak proc tam ten ovpn taháš, kdyz ten uzivatel není ve VPN?

bud tam ovpn server mas a muzes se prihlasit, pak muzes nastavit proroutovani i na web server, nebo se na nej neprihlasujes, pak nevidim duvod se o nem zminovat, pouze to mate, muzes nastavit portforward na web server a web zaheslovat, nebo nasadit na ovpn route nejaky proxy na vnitrni web, nebo existují SSL VPN, nevím jestli zdarma, které fungují vlastne stejne, más web kam se prihlásís a na nem se nstavují pristupy na vnitrní weby, rdp apod.
1.8.2019 20:20 David S
Rozbalit Rozbalit vše Re: OpenVPN nebo jiné řešení
Ahoj lidi,

omlouvám se, špatně jsem to popsal. Zkusím to znovu, mám OpenVPN server s veřejnou IP, zároveň je v OpenVPN síti, ne na stejném serveru jako OpenVPN, web server, standardní Apache. 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.

Trochu mám obavu, že to nebude tak jednoduché, protože ten Apache dostává dynamicky IP z netu (mobilní operátor) a následně se teprve připojí do OpevVPN, takže jako defaultní route má asi něco od mobilního operátora.

Jen pro představu:

PC v inetrnetu <--------------> OpenVPN <------------> Apache

Řešil jste to někdy někdo?

Díky moc

D
1.8.2019 20:58 kaja
Rozbalit Rozbalit vše Re: OpenVPN nebo jiné řešení
Pokud je ten openvpn server tvůj, tak to není problém.

Nastavíš openvpn server tak, aby stále přiděloval v vpn stejnou adresu. To musíš nastavit client-config-dir a ifconfig-pool-persist. Jenom pozor, aby se pak nepřipojovalo více klietů pomocí stejných certifikátu, to by pak mohl být problém.

Pak máš několik možností.

Můžeš buď nastavit port forwarding a pak by mělo nastavit pomocí iptables (já to neumím, ale mělo by to jít), že to co přiteče na externí ip (toho openvpn serveru) na konkrétní port, tak to přepošle na jinou ip adresu (tu ipadresu, kterou přidělilo openvpn a ta by se pak neměla měnit) na daný port a odpovědí bude směrovat zase zpět.

Druhá možnost, kterou já používám je, že na tom serveru, kde je openvpn mám nainstalovaný nginx a používám ho jako reverzní proxy. To má například tu výhodu, že mám ssl (mám i nějakou doménu 3. stupně) s certifikátem od letsencrypt na tom nginx a dál už ssl nemusím (stejně je to šifrované přes vpn). Ono pak jde udělat si více domén 3. stupně a nginx může požadavky směřovat na různá místa...
Jendа avatar 2.8.2019 17:03 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: OpenVPN nebo jiné řešení
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_forward
Alternativně čistě userspace:
socat TCP4-LISTEN:443,reuseaddr,fork "TCP4:ip.ve.vpn:443"
Jendа avatar 2.8.2019 14:52 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: OpenVPN nebo jiné řešení
Odpovědět | | Sbalit | Link | Blokovat | Admin
Reverzní HTTP proxy (např. lighttpd s mod_proxy nebo haproxy) + HTTP autentizace.
Řešení 1× (Andrej)
2.8.2019 15:06 Andrej | skóre: 51 | blog: Republic of Mordor
Rozbalit Rozbalit vše Re: OpenVPN nebo jiné řešení
Odpovědět | | Sbalit | Link | Blokovat | Admin

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.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.