Redirectare trafic cu iptables

Post-ul de față nu este o revoluție în măsură de documentație iptables, dar ținând cont că eu personal nu am fost niciodată capabil să rețin corect ordinea și formularea parametrilor iptables, iar consumul de ouă, vin și friptură de miel de zilele astea îmi afectează și mai tare memoria, l-am scris ca reminder și cheat sheet pentru ca data viitoare când o să am nevoie să-l găsesc ușor.

Situația mea este în felul următor:

  • am două mașini virtuale, fiecare cu IP-ul propriu.
  • una dintre ele este server web, cealaltă server mail.
  • numele lor sunt, www.domeniu.ro și mail.domeniu.ro.
  • îmi doresc să accesez webmail-ul cu adresa http://mail.domeniu.ro/, dar nu vreau să instalez un server web în vserver-ul mail, ci să folosesc Apache-ul deja existent în vserver-ul www.
  • am acces la firewall-ul mașinii host pe care rulează cele două mașini virtuale.

Soluția este, logic, redirectarea cererilor sosite către portul 80 al IP-ului “mail”, către portul 80 al IP-ului “www”, permițând Apache-ului care rulează deja pe www să răspundă cererilor către http://mail.domeniu.ro/.

Comanda magică ce trebuie rulată pe mașina host este următoarea:

# iptables -A PREROUTING -t nat -p tcp -d ip-vserver-mail --dport 80 -j DNAT --to-destination ip-vserver-www:80

Desigur, “ip-vserver-mail” și “ip-vserver-www” sunt IP-urile celor două mașini virtuale. De aici încolo toate cererile către portul 80 al serverului mail vor fi servite de Apache-ul care rulează pe portul 80 al vserver-ului www.

Pentru a redirecta conexiunile HTTPS se va folosi o regulă asemănătoare, cu portul 443 în loc de 80.

Enjoy și Hristos a înviat!

PS: Este luni și avem știri noi pe blog-ul NOVIT. Citește-le aici!

Image credit: philcampbell.

TwitterFacebookLinkedInGoogle ReaderYahoo MessengerEmailGoogle GmailYahoo MailPrintShare

Related posts:

  1. Apache2 vs reverse
  2. Trafic ante-nato
  3. Probleme cu DNS-ul

Leave a Reply

Your email address will not be published. Required fields are marked *

*


+ seven = 13

CommentLuv badge