Omdiriger trafikk fra en IP og port til en annen IP og port

Noe veldig vanlig når du administrerer servere, er å omdirigere trafikk.

Anta at vi har en server med visse tjenester som kjører, men av en eller annen grunn endrer vi en av disse tjenestene (Jeg vet ikke, for eksempel pop3 som er port 110) til en annen server. Det normale og hyppigste ville være å bare endre IP i DNS-posten, men hvis noen brukte IP-en i stedet for underdomenet, vil det bli påvirket.

Hva å gjøre? ... enkelt, omdiriger trafikken som serveren mottar gjennom den porten til en annen server med samme port.

server-node-lan-ethernet

Hvordan begynner vi å omdirigere trafikk?

Det første er at vi må ha aktivert videresending på serveren, for dette vil vi sette følgende:

echo "1" > /proc/sys/net/ipv4/ip_forward

Alle kommandoene som vises i denne opplæringen, må utføres med administrative rettigheter, jeg anbefaler at de utføres direkte med rotbrukeren.

Du kan også bruke denne andre kommandoen, hvis den forrige ikke fungerer for deg (det skjedde med meg slik på en CentOS):
sysctl net.ipv4.ip_forward=1
Deretter starter vi nettverket på nytt:

service networking restart

I RPM-distribusjoner som CentOS og andre vil det være:

service nertwork restart

Nå skal vi gå videre til det viktige, fortell serveren gjennom det iptables hva du skal omdirigere:

iptables -t nat -A PREROUTING -p tcp --dport <puerto receptor> -j DNAT --to-destination <ip final>:<puerto de ip final>

Det vil si, og i følge eksemplet jeg nevnte, antar vi at vi vil omdirigere all trafikken som serveren vår mottar gjennom port 110 til en annen server (eks: 10.10.0.2), som fremdeles vil motta trafikken gjennom 110 (det er den samme tjenesten):

iptables -t nat -A PREROUTING -p tcp --dport 110 -j DNAT --to-destination 10.10.0.2:110

10.10.0.2-serveren vil se at alle pakkene eller forespørslene kommer fra klientens IP, hvis de vil svømme forespørslene, det vil si at den andre serveren ser at forespørslene kommer med IP-en til den første serveren (og hvilken vi bruker omdirigering), ville det også være å sette denne andre linjen:

iptables -t nat -A POSTROUTING -j MASQUERADE

Noen spørsmål og svar

I eksemplet brukte jeg samme port begge ganger (110), men de kan omdirigere trafikk fra en port til en annen uten problemer. Anta for eksempel at jeg vil omdirigere trafikk fra port 80 til 443 på en annen server, for dette vil det være:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 10.10.0.2:443

Dette er iptables, kan de bruke alle de andre parametrene vi kjenner, for eksempel hvis vi bare vil omdirigere trafikk fra en bestemt IP, ville det være ved å legge til -s ... For eksempel vil jeg bare omdirigere trafikken som kommer fra 10.10.0.51:

iptables -t nat -A PREROUTING -p tcp -s 10.10.0.51 --dport 80 -j DNAT --to-destination 10.10.0.2:443

Eller et helt nettverk (/ 24):

iptables -t nat -A PREROUTING -p tcp -s 10.10.0.0/24 --dport 80 -j DNAT --to-destination 10.10.0.2:443

Vi kan også spesifisere nettverksgrensesnittet med -i :

iptables -t nat -A PREROUTING -p tcp -i eth1 --dport 80 -j DNAT --to-destination 10.10.0.2:443

Slutten!

Dette, som jeg allerede sa, er iptables, du kan bruke det som allerede er kjent slik at serveren gjør akkurat det du vil at den skal gjøre 

Greetings!

DedicatedServer_SubImage