Portál AbcLinuxu, 12. května 2025 14:02
Zdravím,
Mám problém s nastavením bran.
Jde o to že bych chtěl klientům ve VPNce tunelovat některé porty ze serveru, nevím jak mám ale na klientovi nastavit brány.
Pokud totiž nastavím na klientovi bránu na server tak jde přez server veškerá komunikace, což nechci.
Pokud bránu nenastavím, tak jde internet normálně mimo VPN, ale tunelování nefunguje.
Nevíte jak to vyřešit ? Děkuji
Jde mi o to aby ve výsledku například port 8080 na serveru byl presmerovan na port 80 na 192.168.0.10
iptables mam vyresene, zbyva nastavit sit.
Ja mam pocit ze VPN-ka umi pouze routovat site a nestara se o konkretni porty..
NN
Ona VPNka se chova uplne jako normalni sit, akorad vse chodi zapouzdrene v tom VPN obalu.
Muzeme si to tudiz predstavit jako klasickou sit.
Na pocitaci A mam tedy dve sitove karty.
Na jedne mam pripojeni k internetu, a na druhe mam LAN.
V te je server B s jinym pripojenim k internetu a verejnou IP.
Na tom serveru chci vyhradit port 8080 pro pocitac A.
Toto dokazu, problem je ale v tom ze jakmile to udelam tak veskera nova spojeni na pocitaci A jdou prez server B.
Chci zanechat port 8080 na serveru B pro pocitac A, ale zaroven chci aby pocitac A vyuzival sve pripojeni k internetu.
Jak to udelam ?
/sbin/iptables -t nat -A PREROUTING -p tcp -i eth0 -d aaa.aaa.aaa.aaa
--dport 8080 -j DNAT --to bbb.bbb.bbb.bbb:8080
Tohle už mám hotové, a plně funkční.
Pokud ale nastavím výchozí bránu na server tak tudy jdou všechna nová spojení, a ne jen ta co chci tunelovat.
O to mi jde.
Dobra, konec obecneho reseni
Na serveru mam pripojeni k internetu:
inet addr:77.93.192.222 Bcast:77.93.192.255 Mask:255.255.255.192
A VPN síť:
inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0
A Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
77.93.192.192 * 255.255.255.192 U 0 0 0 eth0
192.168.0.0 * 255.255.255.0 U 0 0 0 tap0
default 77.93.192.193 0.0.0.0 UG 0 0 0 eth0
Chtel bych ale nektere porty tunelovat skrz VPN na klienty, to jsem udelal prez iptables:
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to 192.168.0.2:80
Na klientovi mam dalsi pripojeni k internetu ktere zde chci pouzivat:
IPv4 Address:192.168.1.2 Subnet Mask:255.255.255.0 Default Gateway:192.168.1.1
Mam tam opet VPNku:
IPv4 Address:192.168.0.2 Subnet Mask:255.255.255.0 Default Gateway:192.168.0.1
A bezi mi tu server na portu 80 ktery chci zpristupnit na 77.93.192.222:8080.
Pokud zde na VPN nastavim branu na 192.168.0.1, jde prez ni veskere nove spojeni, coz nechci, chtel bych aby prez ni slo jenom to http.
Ano
iptables -t nat -A PREROUTING -p tcp --dport 8080 -d 77.93.192.193 -j DNAT --to 192.168.0.2:80
Zkopíruj sem výpis po zadání:
iptables -L -n -v
iptables -t nat -L -n -v
iptables -t mangle -L -n -v
a hned budem vědět kde je problém (;
Mě to opět nejde
Pokud server na 192.168.0.2 nemusi nutne znat ip adresy klientu, kteri se na nej pripojuji, tak bych na serveru (192.168.0.1) udelal krome dnatu v preroutingu i snat v postroutingu, tak aby vlastne vsechna nova spojeni na web server odchazela s prelozenou zdrojou ip adresou 192.168.0.1. Na 192.168.0.2 to tedy prijde v ramci primo pripojene site a nebude se na nem muset upravovat routing.
Tedy neco jako iptables -t nat -A POSTROUTING -p tcp -d 192.168.0.2 --dport 80 -j SNAT --to-source 192.168.0.1
Tomas
iptables -t nat -A PREROUTING -p tcp --dport 8080 -d 77.93.192.193 -j DNAT --to 192.168.0.2:80
iptables -t nat -A POSTROUTING -p tcp -d 192.168.0.2 --dport 80 -j SNAT --to-source 192.168.0.1
A stále nic
A uplatni se ta pravidla? Pripocitavaji se jim countery? Jak vypadaji kompletni iptables?
Tomas
root@kickban.eu>/var/scripts/brana/iptables -L -t nat
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp -- anywhere 77.93.192.193 tcp dpt:webcache to:192.168.0.10:22
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
SNAT tcp -- anywhere 192.168.0.10 tcp dpt:ssh to:192.168.0.1
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Jinak pak v iptables nic jineho neni (jen antiflood, input a output.
Na zacatku iptables bash scriptu mam:
iptables -F
iptables-X
iptables --table nat --flush
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.