Przekierowanie ruchu wychodzącego

0

Na komputerze z systemem Windows mam sporo programów, które wysyłają maile przez adres serwera smtp: example.com:25, który jest na ipku 1.1.1.1 (przykład). Problem w tym, że zmieniły się ustawienia sieciowe i teraz ruch po porcie 25 jest blokowany. By móc wysyłać maile, powinienem je teraz wysyłać po porcie 587. Myślę co tu można zrobić i wykombinowałem 3 sposoby:

  1. Przebudowa programów tak, by wysyłały po 587
  2. Zmiana ustawień sieciowych, by udrożnić ruch po 25
  3. Przekierowanie ruchu wychodzącego 1.1.1.1:25 na 1.1.1.1:587

Obecnie skupiam się na rozwiązaniu 3 i zastanawiam się w jaki sposób mogę to zrobić. Dużo propozycji w necie dotyczy komendy:

netsh interface portproxy add

ale to działa na ruch przychodzący. W takim razie nadpisałem alias w hosts:

127.0.0.100 example.com

I wykonałem:

netsh interface portproxy add v4tov4 listenaddress=127.0.0.100 listenport=25 connectaddress=1.1.1.1 connectport=587

No i działa, ale problem jest taki, że teraz cały ruch który miał iść na example.com, zostaje przekierowany na 127.0.0.1, a dalej tylko requesty na port 25 są przekierowane na 1.1.1.1:587.. Jeśli miałbym na komputerze równiez program, który wysyła po porcie 587 do tego serwera smtp, to musiałbym dodać kolejny wpis nets, by było przekierowanie: 127.0.0.100:587 -> 1.1.1.1:587.

Wydaje mi się, że te moje rozwiązanie to chodzenie na około. No bo to co ja chcę zrobic, to przekierować ruch wychodzący 1.1.1.1:25 na 1.1.1.1:587. Wydaje mi się, że to powinno być prostsze. Macie jakieś propozycje?

1

Jeśli serwer pocztowy nie jest w twojej sieci (czyli ruchu z kompów do niego jest routowany, nie gadają ze sobą bezpośrednio) to najlepszą opcją jest zrobienie tego na routerze.

Czy te aplikacje na komputerach są napisane przez ciebie? Na czym ma polegać zmieniacie ich ustawień - coś n przełączyć w konfiguracji, czy ponowna kompilacja i instalowanie na wszystkich końcówkach? I w ogóle o ile stanowiskach mówimy - 2, 5, 20 czy 400?

1

Ustalmy może co możemy zmienić a co nie ?

jeżeli w programie jest wpisane na sztywno example.com:25 i nie chcesz tego zmieniać to jedyne rozwiązanie jakie widzę to wpisanie w hosts 127.0.0.1 example.com
a potem tylko zrobić tunel (np. za pomocą ssh) którym zakończy się tam gdzie potrzebujesz

0

@Marius.Maximus A czym ten tunel będzie w praktyce różnił się od rozwiązania, na które sam już wpadłem, czyli:

netsh interface portproxy add v4tov4 listenaddress=127.0.0.100 listenport=25 connectaddress=1.1.1.1 connectport=587

Znalazłem też taki programik: Multi Port Forwarder:
image

Póki co próbuję to skonfigurować. Wygląda na to, że po uzupełnieniu:

Traffic Selector
	Direction: Outgoing
	Remote Ip address: 1.1.1.1
	Remote ip port: 25
	
Forward Traffic As:
	Remote port: 587

powinno zadziałać zgodnie z moimi oczekiwaniami, ale jednak nie działa :P Póki co jeszcze walczę

0
cerrato napisał(a):

Jeśli serwer pocztowy nie jest w twojej sieci (czyli ruchu z kompów do niego jest routowany, nie gadają ze sobą bezpośrednio) to najlepszą opcją jest zrobienie tego na routerze.

Czy te aplikacje na komputerach są napisane przez ciebie? Na czym ma polegać zmieniacie ich ustawień - coś n przełączyć w konfiguracji, czy ponowna kompilacja i instalowanie na wszystkich końcówkach? I w ogóle o ile stanowiskach mówimy - 2, 5, 20 czy 400?

Nie mam opcji zmiany ustawień w routerze. Aplikacje napisane przeze mnie, zmiana musiałaby polegać na ponownej kompilacji i deploy programów, a tego chcę uniknąć. Mam już rozwiązanie niewymagające zmian w routerze, czy aplikacjach, ale jak pisałem w pierwszym poście - ma ono minusy i chciałbym je wyeliminować

1 użytkowników online, w tym zalogowanych: 0, gości: 1