166
Server / Re:Port forward na Wireguard klienta
« kdy: 14. 09. 2022, 13:08:56 »
UPDATE, koukám, že krok 3 jsi zkoušel, ale mazat už to nebudu. Taky zálečí, odkud to zkoušíš, logicky připojit se na 10.3.2.1, půjde z vps, pokud na 144.xxx, tak to pujde odkudkoli (z VPS je to diskutabilní, když má ten WTF NAT)
Opravdu bych koukl na nutnost keepalive a na allowed-ips, a jaké adresy ti chodí.
Z pohledu Wireguarda žádné rozlišování server/klient není. Jen na to upozorňuji, samozřejmě, sématnicky to je lepší pro orientaci.
Mohou tu být problémy:
1. připojení na internet windows počítače nemá asi veřejnou IP. Kdyby mělo, tak nepotřebuješ žádný VPS. Proto v konfiguraci klienta(WIN) je potřeba u peera VPS zadat wg set persistent-keepalive (v příkazu wg)( PersistentKeepalive = N v wg.conf) N ( obvykle o fous méně než 120), protože obvykle se udp spojení po cestě rozpadne do 2 minut.
Jak se to pozná: z klienta se na VPS připojíš, ale z VPS na klienta ne, nebo jen do dvou minut, co naposled klient komunikoval a to ty potřebuješ, protože vps bude vytáčet klienta
Další věc, kromě generického sysctl ip forward 1 taky je potřeba(na tom serveru se podívat na iptables -L FORWARD jestli povolen FORWARD mezi eth0 a wg0 a FORWARD mezi wg0 a eth 0 (liší se to prohozením -i a -o nebo záleží jestli to třeba řešíš pomocí IP adres)
Nebo můžeš dát rovnou iptables -P FORWARD ACCEPT (což je takový vtípek bezpečnostní), ale pro zkoušku můžeš, jinak není moudrý si na serveru takhle FORWARD otevřít bez omezeníJestli se pletu, opravte mě, stejně i best practice, jestli pro forwarding uvádět radši -i/-o nebo -dst/-src/obojí
3.věc ve wireguarduale přečti si to celé ! tohle taky nejde udělat jen tak bez dalších navazujíchích kroků z hlediska bezpečnosti na klientovi je třeba povolit allowed-ips (u peera) 0.0.0.0, protože se k ti na ten port bude připojovat kdokoli, má li jít o veřejnou službu. COž s sebou nese 2 problémy - wireguard to vyhodnotí jako výchozí bránu (při wg-quick tuším, při ručním vytvoření wg0 přes ip, konfiguraci wg set a ip rooute add ne) a taky by bylo dobro záhodno následně si ve firewallu (FORWARD) omezit, co se bude forwardovat, (všiml sis že tohle můžeš nastavit na serveru i na klientu, kde to má asi lepší smysl? když to nastavíš na klientovi, tak ti do to dunelu budou proudit i data, která bys zařízl rovnou na serveru)
--- ALTERNATIVA- udělat na serveru NAT . Pak ti budou ale chodit všechny requesty z jedné IP.
Uvedu příklad, je trochu jiný( port 8080 směruje na 443)
Návod není uplně šitý na míru, jelikož to používám trochu jinak (wireguard klient není přímo koncový PC, ale router, takže tam jsou ještě nějaký čachry )
Klidně mi rozmluvte co se vám nezdá, navrhněte lepší řešení .
Opravdu bych koukl na nutnost keepalive a na allowed-ips, a jaké adresy ti chodí.
Z pohledu Wireguarda žádné rozlišování server/klient není. Jen na to upozorňuji, samozřejmě, sématnicky to je lepší pro orientaci.
Mohou tu být problémy:
1. připojení na internet windows počítače nemá asi veřejnou IP. Kdyby mělo, tak nepotřebuješ žádný VPS. Proto v konfiguraci klienta(WIN) je potřeba u peera VPS zadat wg set persistent-keepalive (v příkazu wg)( PersistentKeepalive = N v wg.conf) N ( obvykle o fous méně než 120), protože obvykle se udp spojení po cestě rozpadne do 2 minut.
Jak se to pozná: z klienta se na VPS připojíš, ale z VPS na klienta ne, nebo jen do dvou minut, co naposled klient komunikoval a to ty potřebuješ, protože vps bude vytáčet klienta
Další věc, kromě generického sysctl ip forward 1 taky je potřeba(na tom serveru se podívat na iptables -L FORWARD jestli povolen FORWARD mezi eth0 a wg0 a FORWARD mezi wg0 a eth 0 (liší se to prohozením -i a -o nebo záleží jestli to třeba řešíš pomocí IP adres)
Nebo můžeš dát rovnou iptables -P FORWARD ACCEPT (což je takový vtípek bezpečnostní), ale pro zkoušku můžeš, jinak není moudrý si na serveru takhle FORWARD otevřít bez omezeníJestli se pletu, opravte mě, stejně i best practice, jestli pro forwarding uvádět radši -i/-o nebo -dst/-src/obojí
3.věc ve wireguarduale přečti si to celé ! tohle taky nejde udělat jen tak bez dalších navazujíchích kroků z hlediska bezpečnosti na klientovi je třeba povolit allowed-ips (u peera) 0.0.0.0, protože se k ti na ten port bude připojovat kdokoli, má li jít o veřejnou službu. COž s sebou nese 2 problémy - wireguard to vyhodnotí jako výchozí bránu (při wg-quick tuším, při ručním vytvoření wg0 přes ip, konfiguraci wg set a ip rooute add ne) a taky by bylo dobro záhodno následně si ve firewallu (FORWARD) omezit, co se bude forwardovat, (všiml sis že tohle můžeš nastavit na serveru i na klientu, kde to má asi lepší smysl? když to nastavíš na klientovi, tak ti do to dunelu budou proudit i data, která bys zařízl rovnou na serveru)
--- ALTERNATIVA- udělat na serveru NAT . Pak ti budou ale chodit všechny requesty z jedné IP.
Uvedu příklad, je trochu jiný( port 8080 směruje na 443)
Kód: [Vybrat]
iptables -I POSTROUTING -t na
t -p tcp --dport 443 -o wgT -d 192.168.1.KOMP -j SNAT --to
10.9.0.X
iptables -I PREROUTING -t nat -p tcp
--dport 8080 -j DNAT --to 192.168.1.KOMP:443Návod není uplně šitý na míru, jelikož to používám trochu jinak (wireguard klient není přímo koncový PC, ale router, takže tam jsou ještě nějaký čachry )
Klidně mi rozmluvte co se vám nezdá, navrhněte lepší řešení .
)
).