Van egy elég bonyolult (átmeneti) hálózati infrastruktúránk, amiben adódott egy probléma, ebben kérnék segítséget.
Van két proxmox (virtualizáció) szerver: old és new
Mindkettőn van tűzfal: old-fw és new-fw
Mindkettőn vannak containerek, igazából old-ról migrálunk new-ra, fele itt van, fele ott.
old-fw és new-fw össze vannak bridgelve tap-os openvpn-nel, szerintünk a bridge jól működik.
10.1.1.0/24 tartományban vannak a benti gépek
A probléma ott van, hogy ha a new-fw külső lábán konnektálnék (mondjuk ssh-znék) egy olyan containerre ami még az old-on van, akkor az “nem megy”.
Értelemszerűen itt kell egy NAT szabály (mondjuk a 2023-as portot berakom a 10.1.1.200:22 -re).
Ha olyan containerre csinálom a DNAT-ot ami new-on van, az megy szépen.
Szóval az a felállás nem megy, hogy:
én -> new-fw -> openvpn -> old-container -> openvpn -> new-fw -> én
Endian firewall van a szervereken, ez kicsit “kattintgatós” de azért iptables alapú szóval “bármit” bele lehet rakni.
Valami triviálisat nézek el, help me pls.
- 2167 megtekintés
Hozzászólások
Így elsőre nem látom, hogy az old-container miért küldené a new-fw felé a válaszokat... van SNAT is a DNAT mellett? vagy az a default routere?
- A hozzászóláshoz be kell jelentkezni
Nincs SNAT (illetve próbálkoztam 600féleképp, 0 eredménnyel).
Nem az a default routere, természetesen.
--
Gábriel Ákos
http://ixenit.com
- A hozzászóláshoz be kell jelentkezni
Na, ezért nem megy. Meg kell oldani, hogy a válaszok jó irányba menjenek vissza: routing vagy SNAT.
- A hozzászóláshoz be kell jelentkezni
SNAT-hoz tudsz valami jó kis tutorial-t hogy felfogjam, hogy hova kell berakni és mit csináljon?
(mert egyébként van egy olyan gyanúm, hogy a GUI nem is jól csinálja, szóval kézzel kéne berakni valahova).
--
Gábriel Ákos
http://ixenit.com
- A hozzászóláshoz be kell jelentkezni
iptables -t mangle -A PREROUTING -j MARK -i eth1.11 -d 1.2.3.4 -p tcp --dport 80 --set-mark 1
iptables -t nat -A PREROUTING -m mark --mark 1 -p tcp -j DNAT --to-destination 192.168.0.12:80
iptables -t nat -A POSTROUTING -m mark --mark 1 -p tcp -j SNAT --to-source 192.168.0.11
iptables -A FORWARD -p tcp -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p udp -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m mark --mark 1 -m state --state NEW -j ACCEPT
iptables -A INPUT -p tcp -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p udp -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
Ez kb. egy port forwardingot csinál, SNAT-tal kiegészítve. Egyébként -j SNAT helyett a -j MASQUERADE is működik. Az ESTABLISHED,RELATED sorok közül nem mindegyik kell, de mivel ez nálam by default mindig bent van, így nincs túl nagy incentive arra, hogy megjegyezzem, melyik szükséges közülük :)
- A hozzászóláshoz be kell jelentkezni
Bakker, ha Ákos most kezd neki az iptables-nek akkor most jól bevitted a málnásba :) Ebből úgy nagyjából nem fogja tudni, hogy melyik sor mire is kell és hogyan alakítsa a saját problémájára. Plusz valszeg' némi route-olgatás is kell neki, hogy azok a csomagok a helyükre találjanak.
- A hozzászóláshoz be kell jelentkezni
Nagyon meg lennék lepve, ha ez neki ennyire magas lenne... :)
- A hozzászóláshoz be kell jelentkezni
Köszi, az első 3 sor volt a lényeges, tökéletesen érthető, abból is a SNAT-os sor a legfontosabb.
Már "csak" azt kell kitalálni hogy az endian firewallba ezt hova kell belevarrnom (és hogyan fogom belevarrni) - vagy ha más csinálja akkor ki legyen az a más... :)
--
Gábriel Ákos
http://ixenit.com
- A hozzászóláshoz be kell jelentkezni
Grafikus feluleterol priman lehet ilyet csinalni emlekeim szerint, de konzolbol is megoldhato siman szerintem....
---------------------------------------------------
Hell is empty and all the devils are here.
-- Wm. Shakespeare, "The Tempest"
- A hozzászóláshoz be kell jelentkezni
A "default helyre" SNAT-olásra valóban van grafikus lehetőség.
De ezt itt egy openvpn bridge végére kéne behákolni, innentől nontrivial (nekem) :)
--
Gábriel Ákos
http://ixenit.com
- A hozzászóláshoz be kell jelentkezni
Értem.
Én ebben az esetben egy az iptables ruleokat megpróbálnám az /etc/rc.local-ba berakni és tesztelni :)
---------------------------------------------------
Hell is empty and all the devils are here.
-- Wm. Shakespeare, "The Tempest"
- A hozzászóláshoz be kell jelentkezni
...és biztonsági okokból az access.conf-ba is berax egy -:ALL:ALL, és ha végeztél felülcsapod a libc-t nemigaz? :D ááááh :D
de a tanácsra +1 :D
- A hozzászóláshoz be kell jelentkezni
Btw ha érzed magadban az erőt a feladat megoldásához én örülnék neki, természetesen illő díjazásért cserébe.
--
Gábriel Ákos
http://ixenit.com
- A hozzászóláshoz be kell jelentkezni
Közben csináltam még egy tesztet, ha az old-containeren átállítom a def gw-t a new-fw -re akkor frankón megy az új IP felől.
--
Gábriel Ákos
http://ixenit.com
- A hozzászóláshoz be kell jelentkezni
nemkell semmit natolgatni, "sima" routinggal is megoldhato:
a tuzfalakon iptables mark-kal (olvass utana mert 3-4 szabaly kell hozza! setmark, restoremark, stb) jelold meg azokat a packeteket ami vpnen a masik tuzfalrol erkezik be (es a celja egy 10.1.1.x gep). ezutan ip route+ip rule fwmark-kal a visszacsomagokat (ok is meg vannak jelolve a restoremark miatt) kuld be a vpn masik felere.
--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!
- A hozzászóláshoz be kell jelentkezni
subs
- A hozzászóláshoz be kell jelentkezni