GNU/Linux >> Linux Esercitazione >  >> Linux

AWS VPC + IPtables + NAT:il port forwarding non funziona

Alla fine, l'ho risolto !!!!

Nell'istanza NAT, ho dovuto modificare il comando seguente:

Da:

iptables -t nat -A POSTROUTING -o eth0 -s 10.0.0.0/16 -j MASQUERADE

A:

iptables -t nat -A POSTROUTING -j MASQUERADE

E ha FUNZIONATO!!!!

Quindi, presto creerò una nuova domanda su ServerFault chiedendo quali sono i vantaggi e gli svantaggi nell'usare i due comandi precedenti.


  • Assicurati di consentire la porta tcp 2222 in entrata da 0.0.0.0/0 sul gruppo di sicurezza per la tua nat box
  • Assicurati di aver configurato correttamente la "Tabella di instradamento" VPC.
  • Almeno due tabelle separate (una associata alla sottorete privata, una associata alla sottorete pubblica)
  • Il tuo 10.0.1.0 La sottorete (privata) dovrebbe avere una regola della tabella di instradamento come:Destinazione:0.0.0.0/0 , Target:"Nat box"
  • Il tuo 10.0.0.0 La sottorete (pubblica) dovrebbe avere una regola della tabella di instradamento come:Destinazione:0.0.0.0/0 , Destinazione:"Gateway Internet"
  • Assicurati di avere il controllo di origine/destinazione disattivato sulla scheda NIC per la tua casella NAT, nessun divertimento NAT senza di essa. (So ​​che ce l'hai già, ma è davvero importante, quindi includilo per qualche futuro visualizzatore)

  • Assicurati che i pacchetti in uscita sappiano dove andare:

    iptables --table nat --append POSTROUTING --source 10.0.0.0/16 --destination 0.0.0.0/0 --jump MASQUERADE

  • Assicurati di inviare i pacchetti a 2222 essere reindirizzato correttamente:

    iptables --table nat --append PREROUTING --protocol tcp --dport 2222 --jump DNAT --to-destination 10.0.1.243:22


Questi post mi hanno aiutato molto a comprendere AWS NAT. Così ho iniziato a indagare su cosa ha reso iptables -t nat -A POSTROUTING -j MASQUERADE ha funzionato.

Bene, la risposta che ho trovato nell'affermazione di cui sopra è consentire alla casella NAT di fornire al NAT l'IP "LAPTOP" su "10.0.0.54" mentre allo stesso tempo esegue il NAT di destinazione su 10.0.1.243. In questo momento la casella di sottorete privata è una richiesta ssh proveniente solo dal dispositivo NAT. Questo comando sta effettivamente riducendo la sicurezza del server della sottorete privata. Si consiglia di utilizzare il comando seguente per ottimizzare l'accesso alla sottorete privata tramite ssh e NAT box come indicato di seguito;

iptables --table nat --append POSTROUTING --source "INTERNET IP of the Laptop" --destination 10.0.1.243 --jump MASQUERADE

Linux
  1. R 3.5.0 non funziona su Ubuntu 18.04?

  2. nc:comando non trovato

  3. iptables:comando non trovato

  4. fflush() non funziona in Linux

  5. Il comando Linux 'll' non funziona

Gestisci AWS VPC utilizzando aws-cli

Linux limits.conf non funziona?

La crescita di XFS non funziona

IPTables - Porta a un altro ip e porta (dall'interno)

Apache non funziona su AWS Linux dopo il riavvio - Codice di risposta 301

Consentire FTP con IPTables