Reindirizza u trafficu da una IP è un portu à un altru IP è un portu

Qualcosa di assai cumunu quandu gestisce i servitori redirige u trafficu.

Supponemu chì avemu un servitore cù certi servizii in esecuzione, ma per qualunque ragione cambiemu unu di questi servizii (Ùn sò micca, per esempiu pop3 chì hè u portu 110) à un altru servitore. A cosa normale è a più frequente seria di cambià semplicemente l'IP in u registru DNS, tuttavia, se qualcunu utilizava l'IP invece di u sottodominiu serà influenzatu.

Chì fà? ... simplice, redirige u trafficu chì u servitore riceve attraversu quellu portu à un altru servitore cù u listessu portu.

server-node-lan-ethernet

Cumu cuminciamu à redirige u trafficu?

A prima cosa hè chì duvemu avè abilitatu u spedizioni nantu à u servitore, per questu metteremu i seguenti:

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

Tutti i cumandamenti mostrati in stu tutoriale devenu esse eseguiti cù privilegi amministrativi, vi cunsigliu di esse eseguiti direttamente cù l'utilizatore root.

Pudete ancu aduprà questu altru cumandamentu, in casu chì u precedente ùn funziona micca per voi (m'hè accadutu cusì nantu à un CentOS):
sysctl net.ipv4.ip_forward=1
Allora ripartiremu a rete:

service networking restart

In distros RPM cum'è CentOS è altri, seria:

service nertwork restart

Avà andemu à l'importante, dite à u servitore attraversu iptables chì redirige:

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

Questu hè, è seguitu l'esempiu chì aghju citatu, suppone chì vulemu redirige tuttu u trafficu chì u nostru servitore riceve attraversu u portu 110 à un altru servitore (es: 10.10.0.2), chì riceverà sempre quellu trafficu attraversu 110 (hè u listessu serviziu):

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

U servitore 10.10.0.2 vedrà chì tutti i pacchetti o richieste venenu da l'IP di u cliente, in casu ch'elli volenu nutà e richieste, vale à dì, chì u 2u servitore vede chì e richieste ghjunghjenu cù l'IP di u 1u servitore (è in u chì appicchemu a reindirizzamentu), seria ancu di mette sta seconda linea:

iptables -t nat -A POSTROUTING -j MASQUERADE

Alcune dumande è risposte

In l'esempiu aghju utilizatu u listessu portu tramindui volte (110), però ponu redirige u trafficu da un portu à l'altru senza prublemi. Per esempiu, suppone chì vogliu redirige u trafficu da u portu 80 à 443 in un altru servitore, per questu seria:

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

Questu hè iptables, ponu aduprà tutti l'altri parametri chì sapemu, per esempiu, se vulemu solu redirige u trafficu da una IP specifica, aghjunghjeria -s ... Per esempiu, redirigeraghju solu u trafficu chì vene da 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

O una rete intera (/ 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

Pudemu ancu specificà l'interfaccia di rete cun -i :

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

A fine!

Questu cum'è l'aghju dettu digià, hè iptables, pudete applicà ciò chì hè digià cunnisciutu in modu chì u servitore faci esattamente ciò chì vulete chì faci 😉

Grazie!

DedicatedServer_SubImage


U cuntenutu di l'articulu aderisce à i nostri principii di etica edituriale. Per signalà un errore cliccate quì.

19 cumenti, lasciate i toi

Lasciate u vostru cummentariu

U vostru indirizzu email ùn esse publicatu. campi, nicissarii sò marcati cù *

*

*

  1. Responsabile di i dati: Miguel Ángel Gatón
  2. Scopu di i dati: Cuntrolla SPAM, gestione di cumenti.
  3. Legitimazione: U vostru accunsentu
  4. Cumunicazione di i dati: I dati ùn seranu micca cumunicati à terzi, eccettu per obbligazione legale.
  5. Archiviazione di dati: Base di dati ospitata da Occentus Networks (UE)
  6. Diritti: In ogni mumentu pudete limità, recuperà è cancellà e vostre informazioni.

  1.   Fer dijo

    Pudemu dinò da un firewall chì permette di trasmette u portu, nò? (applicendu e regule currispundenti).

    1.    KZKG ^ Gaara dijo

      Ié benintesa, à a fine un firewall cum'è Pfsense o altri, aduprate iptables da daretu.

      1.    cacciatore dijo

        Per esse esatti, pfsense ùn usa micca iptables ma pf, ricordate chì hè un bsd dentru.

        1.    KZKG ^ Gaara dijo

          Oh giustu, u mo male!

  2.   Nicolas dijo

    Grazie mille per a punta 🙂

    Aghju un paiu di dubbiti:
    1 - U cambiamentu hè permanente? o si perde quandu si riavvia u servitore?
    2 - Aghju parechje istanze (dite A, B è C) nantu à a listessa subnet. In esempiu A Aghju applicatu a regula per indirizzà u trafficu à una IP esterna, è pruvà cù riccioli da l'istanze B è C, tuttu face meraviglie. U prublema hè chì da l'istanza A ùn funziona. Aghju pruvatu à aduprà tramindui u vostru ip è l'interfaccia loopback, è mancu unu funziona:
    $ iptables -t nat -A PREROUTING -p tcp –dport 8080 -j DNAT –to-destination xxxx: 8080
    $ iptables -t nat -A PREROUTING -p tcp -i lo –dport 8080 -j DNAT –to-destination xxxx: 8080

    $ curl ip-aaaa: 8080 / hello_world
    curl: (7) Fiascu di cunnessione à u portu ip-aaaa 8080: Cunnessione rifiutata
    $ curl localhost: 8080 / hello_world
    curl: (7) Fiascu di cunnessione à u portu di ospitu locale 8080: Cunnessione rifiutata

    Ogni idea chì pò esse u prublema?

    1.    KZKG ^ Gaara dijo

      Ié, u cambiamentu si perde à u riavvio, duverete aduprà iptables-save & iptables-restore o qualcosa di simile per evità ciò.
      Ùn aghju micca capitu bè ciò chì vulete fà, esempiu A?

      1.    Nicolas dijo

        Aghju un servitore chì supporta solu e cunnessioni da un ip particulare (servitore A), ùn possu micca o vogliu aghjunghje più ips à a lista bianca (per prublemi di scalabilità), allora vogliu passà tuttu u trafficu versu u servitore esternu hà dettu u servitore (A).
        Per una questione di praticità, aghju cunfigurazioni glubali chì definiscenu quale IP aduprà per ogni serviziu, dunque in questu casu hè qualcosa cum'è "tutti quelli chì volenu aduprà u serviziu esternu devenu aduprà IP A"
        Questu hè stata riesciuta aduprendu u metudu in questu articulu, ma aghju avutu u prublema chì quandu l'applicà, u servitore A ùn pò micca accede à u serviziu cù a so propria ip (ma tutti l'altri servitori sì).
        Finu avà u megliu chì aghju trovu hè di aghjunghje a cartografia in u file / etc / hosts di u servitore A, indicendu l'IP esterna, soprascrivendu u paràmetru glubale.

  3.   braybaut dijo

    Assai bè, se aghju un altru servitore di posta puderia trasmette u trafficu da u portu 143 da server1 à server2 è l'email mi ghjunghjeranu nantu à server2, nò?

    riguarda

    1.    KZKG ^ Gaara dijo

      In teoria sì, funziona cusì. Benintesa, devi avè u servitore di posta installatu currettamente in server2 🙂

  4.   msx dijo

    U tippu di posti chì ci piace à leghje, ti ringraziu!

  5.   abraham ibarra dijo

    Articulu eccellente, aghju un prughjettu in u quale stò travagliendu è ti vulia fà una dumanda, ci sò switch industriali cù funzione NAT (suppongo chì utilizanu IPTables quì sottu), per traduce un indirizzu IP senza fà cambiamenti à l'equipaggiamentu, un esempiu, aghju un Server 10.10.2.1 chì cumunicheghja cù l'urdinatori 10.10.2.X è attraversu u switch hè prugrammatu in modu chì un urdinatore chì hà un indirizzu 192.168.2.4 sia in realtà vistu da u servitore cum'è 10.10.2.5, hà traduttu quella indirizzu IP da vede Da l'altri computer cun questu indirizzu, vogliu fà da un servitore cù Ubuntu o un'altra distribuzione, chì seranu e regule iptables?

  6.   Kuk dijo

    Assai bona infurmazione ti ringraziu ^ _ ^

  7.   Isus dijo

    Bona notte.
    Aghju un prublema chì prova à fà una redirect. Vi spiegu:
    Aghju un servitore proxy in Ubuntu, cù 2 schede di rete:
    eth0 = 192.168.1.1 hè cunnessu cù u restu di a reta lucale.
    eth1 = 192.168.2.2 hè cunnessu à u router.
    Ho bisognu di tuttu ciò chì vene per eth0 per passà per eth1, è ancu per mezu di u proxy (adupru Squid, chì u portu predefinitu hè 3128), è ùn possu truvà a chjave in a cunfigurazione IPTABLES.
    Ùn aghju micca bisognu di restrizioni di alcun genere, solu chì un registru rimane in u log di l'indirizzi web visitati.

    Speru chì mi possiate aiutà perchè hè un travagliu abbastanza ingombrante chì mi preoccupa dapoi un paiu di ghjorni.

    À ringrazià vi.

  8.   Gabriel dijo

    Amicu, sò assai novu per altri servitori, ùn aghju alcuna idea ma capiscu u sughjettu è imparu prestu, a mo dumanda hè a seguente aghju 2 servitori serv_1 è serv_2 chì aghju cunnessu à a stessa intranet, in questi servitori aghju una propria nuvola installata, Mi piacerebbe fà u seguitu:

    chì una certa gamma di ips per esempiu rangeip_1 quandu si mette un ip d'accessu à u owncloud (ipowncloud) hè direttu versu u serv_1 è s'ellu hè un altru rangeip_2 piazzatu u listessu ipowncloud hè direttu à u serv_2, questu per chì i 2 servitori si trovanu in duie cità sfarente è e gamme IP sò diverse ma sò tutte in a stessa rete, chì seria a prima parte, a seconda seria chjara hè di sincronizà questi 2 servitori in modu chì sianu specchi o chì mi cunsiglinu per ottimisà a larghezza banda, per piacè, se mi spieghjerete cumu fà lu passu à passu micca in modu super programmatore = (

  9.   Antonio Carrizosa dijo

    Salutu, scusate mi, aghju un interruttore incaricatu di a cumunicazione di tutti i dispositivi chì custituiscenu a mo rete, è dopu questu un firewall è infine a surtita d'Internet, ciò chì accade hè chì mi piacerebbe chì a redirezione sia data in u cambia è ùn deve micca ghjunghje à u firewall, à menu chì u serviziu dumandatu sia internet.

  10.   Ghjuvanni dijo

    Aduprendu stu metudu puderia rindirizzà HTTPS à HTTP?

  11.   mati dijo

    Salute, forse hè un pocu tardi, ma ti vulia dumandà, cumu devu fà chì u calamaru ùn mudifichi micca l'IP di u cliente quandu vogliu cunnessi à un servore web in a stessa rete?

  12.   Lafat32 dijo

    Ùn mi trattate micca male per dumandà. Pò esse fattu in Windows?

  13.   Martin dijo

    Questa infurmazione hè stata utile per mè. Cum'è sempre, voi ragazzi ponu esse fidati, quandu ùn possu truvà qualcosa in inglese sò di solitu finitu per circà in spagnolu, in quelle occasioni vengu guasi sempre à stu situ. Grazie.