1 (edytowany przez WoT 2022-04-07 15:05:41)

Temat: Forward pomiędzy interfejsami.

Cześć

Jakoś nie mogę ustawić forwardu pakietów pomiędzy interfejsami.

Mam Openwrt 64x na vbox z podłącoznymi dwoma interfejsami:
- eth0 'wan' 10.0.0.190 typu bridge z dostępem do internetu
- eth1 'wann' 10.0.2.5 wewnętrzna "Steć NAT" vbox

Cel: W sieci wewnętrznej vbox jest host 10.0.2.2 do którego chce się połączyć do ssh z zewnątrz za pośrednictwem openwrt

Porty z zewnątrz do openwrt i w wewnętrznej sieci wann(vbox) otwarte (po zalogowaniu ssh do openwrt mogę się połączyć do hosta w sieci wewnętrznej wann)

Nie mogę jednak tego zrobić z zewnątrz:

nc -zvw1 10.0.0.120 222
openwrt [10.0.0.120] 222: Connection refused

Co mam nie tak?



/etc/config/network

config interface 'wan'
        option ifname 'eth0'
        option proto 'dhcp'

config interface 'wann'
        option ifname 'eth1'
        option proto 'dhcp'

/etc/config/firewall

config zone
        option name             wan
        list   network          'wan'
        option input            ACCEPT
        option output           ACCEPT
        option forward          REJECT
        option masq             0
        option mtu_fix          1

config zone
        option name             wann
        list   network          'wann'
        option input            ACCEPT
        option output           ACCEPT
        option forward          REJECT
        option masq             0
        option mtu_fix          1

config forwarding
        option src              wan
        option dest             wann

config forwarding
        option src              wann
        option dest             wan

config redirect
        option name             ssh
        option src              wan
        option dest             wann
        option target           DNAT
        option proto            tcp
        option src_port         222
        option dest_port        22
        option dest_ip          10.0.2.2

2

Odp: Forward pomiędzy interfejsami.

option src_dport 222

zamiast

option src_port 222

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3

Odp: Forward pomiędzy interfejsami.

Dzięki za odp.
Po tej zmianie jest postęp

nc -zvw1 10.0.0.120 222
openwrt [10.0.0.120] 222: Operation timed out

4

Odp: Forward pomiędzy interfejsami.

I jesteś pewien że ta druga strona faktycznie w tym momencie nasłuchuje na porcie 22?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5

Odp: Forward pomiędzy interfejsami.

Tak, bo gdy zaloguję do openwrt i zeskanuje, to jest ok:

nc -zvw1 10.0.2.2 22
10.0.2.2 [10.0.2.2] 22 open

6 (edytowany przez WoT 2022-04-07 16:04:05)

Odp: Forward pomiędzy interfejsami.

Zrobiłem taki dodatkowy test "na siebie" i to działa:

config redirect
        option name             test
        option src              wan
        option dest             wann
        option target           DNAT
        option proto            tcp
        option src_dport        2222
        option dest_port        22
        option dest_ip          10.0.2.5
nc -zvw1 10.0.0.120 2222
openwrt [10.0.0.120] 2222 open

Czemu nie działa na tego hosta 10.0.2.2?

7

Odp: Forward pomiędzy interfejsami.

A tamten host nie ma firewalla dopuszczającego ruch tylko z wybranych adresów ip?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

8

Odp: Forward pomiędzy interfejsami.

WoT napisał/a:

Zrobiłem taki dodatkowy test "na siebie" i to działa:
...
Czemu nie działa na tego hosta 10.0.2.2?

WoT napisał/a:

...
etc/config/network

config interface 'wan'
        option ifname 'eth0'
        option proto 'dhcp'

config interface 'wann'
        option ifname 'eth1'
        option proto 'dhcp'

Moim zdaniem ta Twoja maszyna Virtualbox nie jest routerem w standardowym wydaniu.

1. Na porcie "WAN" pobierasz adres z jakiegoś serwera DHCP (10.0.0.X)
2. Na porcie "wann" również pobierasz adres po DHCP z jeszcze innego serwera DHCP (10.0.2.x)

O ile na JEDNEJ MASZYNIE masz 2 adresy z różnych sieci i takie przekierowanie "na siebie" zawsze zadziała (bo ma oba adresy u Siebie), o tyle host który jest po drugiej stronie za "wann" NIE MUSI wiedzieć że sieć 10.0.0.x przyszła z hosta 10.0.2.5, ponieważ ta Twoja maszyna NIE ROZDAJE tras wszystkim hostom w sieci 10.0.2.x a wręcz przeciwnie, pobiera dla siebie adres i trasy z innego serwera.

Pytanie:
Czy na hoście 10.0.2.2 ustawiłeś trasę do sieci 10.0.0.x przez bramę 10.0.2.5 ?

Xiaomi AX3000T @ Netgear R6220
* DVBT2 - T230C *

9

Odp: Forward pomiędzy interfejsami.

Cezary: Firewall jest ok.

mar_w: Tak, to może nie być standardowe wydanie routera na virtualbox. Ale mam na to wpływ i moge zmodyfikować.
1. wan to karta zmostkowana (bridge) z karą sieciową serwera virtualki z dostępem do internetu (tam cała sieć jest 10.0.0.x)
2. wwan to karta wirtualna, obecnie ustawiona na "Sieć Nat", ale testowałem też na "Kartę sieci iziolowanej (host only) i przy której efekt był podobny

"Czy na hoście 10.0.2.2 ustawiłeś trasę do sieci 10.0.0.x przez bramę 10.0.2.5 ?"
Nie. Niestety nie mam wpływu na hosta i możliwość dodania trasy.
Wiem za to, ze z hosta 10.0.2.2 można się połączyć do openwrt na 10.0.2.5, pingować itp

Mogę tylko działać na openwrt plus ewentualnie skonfigurować odpowiednio vbox.

10

Odp: Forward pomiędzy interfejsami.

no i wszystko się zgadza, bo jak pingujesz adres z tej samej sieci to drugi adres 10.0.2.5 odpowie.

Na hoście 10.0.2.2 dostajesz pinga z sieci 10.0.0.x i gdzie ten biedny host ma odesłać odpowiedź skoro jego tablica routingu wskazuje na domyślną bramę przez innego hosta.
A jeżeli w ogóle nie ma domyślnej bramy, to tym bardziej nie wie gdzie odesłać taki pakiet.

Innym sposobem może być odwrócenie ról i ten zwykły "wan" niech robi jako "pseudo-lan" (bez zmiany nazwy)  a "wann" niech symuluje tradycyjny WAN i wtedy:

config zone
        option name             wann
        list   network          'wann'
        option input            ACCEPT
        option output           ACCEPT
        option forward          REJECT
        option masq             1
        option mtu_fix          1

jest szansa że pakiety z sieci 10.0.0.x będą maskowane adresem 10.0.2.5 a ten adres znają wszystkie hosty w sieci 10.0.2.x i będą umiały odpowiedzieć.
Sprawdź

Xiaomi AX3000T @ Netgear R6220
* DVBT2 - T230C *

11

Odp: Forward pomiędzy interfejsami.

Yeah! Dysyzysys!

Odwrócenie dało radę! smile

Chociaż nie za bardzo kumam system. Zanim zrobiłem zgodnie z twoją poradą wpadłem na pomysł, żeby zrobić dokładnie odwrotnie i tamto nie zadziałało.

12

Odp: Forward pomiędzy interfejsami.

Byłoby wszystko pięknie, ale...

Dowiedziałem się, ze przyczyną wcześniejszych problemów może być to, że wspomniany wyżej host ma przekierowany cały ruch przez vpn.

mar_w napisał/a:

[...] sposobem może być odwrócenie ról i ten zwykły "wan" niech robi jako "pseudo-lan" (bez zmiany nazwy)  a "wann" niech symuluje tradycyjny WAN [...]

Ten pomysł się sprawdził. Połączyłem się ssh nawet przez rdp. Jednakże zaraz po podłączeniu rdp widzę że host traci swoje połączenie vpn. A to niestety nie jest dopuszczalne. Podejrzewam, że host próbuje wtedy łączyć się drogą którą ja się połączyłem.

Można coś zmodyfikować, żeby łączyć się do hosta jakoś "neutralnie"?

13 (edytowany przez mar_w 2022-04-09 11:23:09)

Odp: Forward pomiędzy interfejsami.

To bardzo źle że traci VPN-a i nie jest to wina tego przekierowania na Virtualbox.
( HostA 10.0.0.200) <-> (10.0.0.190; Virtualbox; 10.0.2.5) <-> (HostB 10.0.2.2)

1. HostA wbija się na adres "wan" Virtualbox i wirtualny port 222.
2. Virtualbox przekierowuje to zapytanie na adres 10.0.2.2 i port 22 robiąc jednocześnie zamianę adresu źródłowego (masquerade) na swój adres który ma na porcie "wann" czyli 10.0.2.5
3. HostB odbiera pakiet z adresem źródłowym 10.0.2.5 na swój adres  docelowy 10.0.2.2 i port 22
4. HostB odsyła odpowiedź na adres 10.0.2.5
5. Virtualbox otrzymuje odpowiedź od 10.0.2.2 na swoim adresie 10.0.2.5 i mając tablicę połączeń wie, że to nie jest do niego tylko do HostA a więc tym razem zamienia adres docelowy 10.0.2.5 na adres HostA 10.0.0.200 i popycha pakiet dalej przez swój port "wan"
6. HostA odbiera pakiet z adresem źródłowym 10.0.2.2,  portem źródłowym 22 i adresem docelowym 10.0.0.200 czyli swoim własnym.

I teraz jak w tym wszystkim HostB ma gubić trasę domyślną przez VPN?
On może odpowiadać na pakiety z sieci 10.0.2.x i nie wie, że tamto zapytanie przyszło z sieci 10.0.0.x
O tym wie tylko Virtualbox i nadawca.
HostB 10.0.2.2. nie może samoczynnie nawiązać połączeń do sieci 10.0.0.x bo nic nie wie o tej sieci.
Liczy się kierunek skąd-dokąd oraz kto zaczyna połączenie (nadawca) a kto odpowiada (odbiorca).

WoT napisał/a:

..."Czy na hoście 10.0.2.2 ustawiłeś trasę do sieci 10.0.0.x przez bramę 10.0.2.5 ?"
Nie. Niestety nie mam wpływu na hosta i możliwość dodania trasy.

Skoro nie masz wpływu na tego Host-a tzn że on dostaje nową trasę z innego serwera.
A jeżeli gubi trasę poprzez nawiązanie połączenia przez SSH tzn że coś z nim jest nie halo...
EDIT: zastanowiła mnie jeszcze jedna rzecz. Wbijasz się po SSH do tego klienta i jednocześnie nie masz na niego wpływu...
Chyba że wbijasz się na niego jako zwykły user bez możliwości przelogowania na root-a, .... no to takie słabe możliwości.
A może włamujesz się do sąsiada? wink

Xiaomi AX3000T @ Netgear R6220
* DVBT2 - T230C *

14

Odp: Forward pomiędzy interfejsami.

Na hoscie jest Winda 10. Zauważyłem utratę połączenia VPN po zalogowaniu przez RDP.
Po tapecie poznałem że to właściwy host smile

RDP może spowodować takie przełączenie?