Autor Téma: Přesměrování portu  (Přečteno 3384 krát)

Offline radek_dr

  • Začátečník
  • **
  • Příspěvků: 59
    • Zobrazit profil
    • Počasí Kučerov
Přesměrování portu
« kdy: 02. 12. 2020, 13:58:22 »
Řeším problém:
Mám meteostanici, která funguje jen přes WiFi; posílá data na externí servery WeatherUndergroun, WeatherCloud a na další libovolnou IP. Problém je, že všude využívá port 80 a nelze to změnit. Vytvořil jsem z RaspberriPI WiFi AP, routované přes lokální LAN do internetu. Nastavil jsem stanici pro posílání dat na WU, WCl a na lokální server. A zde je ten problém: lokální Apache je přístupný přes HTTPS (port 443) a aby ev. klienti nemuseli zadávat "https://..." je původní port 80 trvale přesměrován přímo na virtuálním serveru Apache - toto chci zachovat. Problém vyvstává právě s meteostanicí, která taky komunikuje se SW WeeWX na portu 80 a tím pádem se hádá se serverem. Zatím jsem to vyřešil změnou portu Apache a přesměrováním portu 80 na routeru na nový port Apache. Toto funguje dobře, až na:
- Automatický update certifikátu pro SSL vyžaduje port 80 a tudíž nefunguje
- další SW na serveru, který také využívá ke komunikaci port 80 (PiHole) taky nefunguje, ale to by mi až tak nevadilo.
Můj dotaz: jak přesměrovat provoz z Raspi AP, určený pro IP serveru:80, ale zachovat provoz ze stejného zdroje na portu 80 pro jiné IP? Veškerý provoz na portu 80 přesměrovat nemůžu, protože bych tím zablokoval data na WU a WCl.
Acer Swift1, N4200 2.5 GHz max., 4GB RAM, 64+250GB SSD, Intel graphic, Debian 11 Cinnamon
Intel NUC,  Celeron J3455, 4GB RAM, 256GB SSD, Debian 10 server, LAMP...
AS8940G, Intel i7 ..., LM19 xfce

Nikdo není dokonalý !

Offline radek_dr

  • Začátečník
  • **
  • Příspěvků: 59
    • Zobrazit profil
    • Počasí Kučerov
Re:Přesměrování portu
« Odpověď #1 kdy: 03. 12. 2020, 11:34:54 »
Zatím nikdo nereagoval, zkusím to upřesnit:
Dostávám toto:
Zkrácený výpis tcpdump z Raspi
11:03:40.921454 IP 192.168.1.3.62857 > 52.116.188.162.80: Flags [P.], seq 1:380, ack 1, win 5840, length 379: HTTP: GET /weatherstation/updateweatherstation.php?ID=....HTTP/1.1
11:03:41.824663 IP 192.168.1.3.62858 > 192.168.1.2.80: Flags [P.], seq 1:365, ack 1, win 5840, length 364: HTTP: GET /weatherstation/updateweatherstation.php?ID=... HTTP/1.1
 a potřebuji dostat (příklad pro MQTT broker):
11:03:40.921454 IP 192.168.1.3.62857 > 52.116.188.162.80: Flags [P.], seq 1:380, ack 1, win 5840, length 379: HTTP: GET /weatherstation/updateweatherstation.php?ID=....HTTP/1.1
11:03:41.824663 IP 192.168.1.3.62858 > 192.168.1.2.1884: Flags [P.], seq 1:365, ack 1, win 5840, length 364: HTTP: GET /weatherstation/updateweatherstation.php?ID=... HTTP/1.1

tedy pro WeatherUnderground první řádek a pro local server druhý řádek. Jde to?
Acer Swift1, N4200 2.5 GHz max., 4GB RAM, 64+250GB SSD, Intel graphic, Debian 11 Cinnamon
Intel NUC,  Celeron J3455, 4GB RAM, 256GB SSD, Debian 10 server, LAMP...
AS8940G, Intel i7 ..., LM19 xfce

Nikdo není dokonalý !

Offline radek_dr

  • Začátečník
  • **
  • Příspěvků: 59
    • Zobrazit profil
    • Počasí Kučerov
Re:Přesměrování portu
« Odpověď #2 kdy: 07. 12. 2020, 14:08:53 »
Takže vyřešeno s pomocí kolegy na UbuForu: na Raspberry AP zadat
Kód: [Vybrat]
iptables -t nat -I PREROUTING -i wlan0 -p tcp -d 192.168.1.2 --dport 80 -s 192.168.2.2 -j DNAT --to 192.168.1.2:1883
Acer Swift1, N4200 2.5 GHz max., 4GB RAM, 64+250GB SSD, Intel graphic, Debian 11 Cinnamon
Intel NUC,  Celeron J3455, 4GB RAM, 256GB SSD, Debian 10 server, LAMP...
AS8940G, Intel i7 ..., LM19 xfce

Nikdo není dokonalý !