جابه جایی پورت در لینوکس یا Port Forwarding

به کمک iptables لینوکس می خوایم یک پورت مشخص مثل 9090 رو به یه آدرس ای پی و پورت مشخص دیگه وصل کنیم.
با Port Forwarding کار های زیادی می شه انجام داد مثل :

  • جدا کردن سرور آپاچی و سرور دیتابیس (Load Balancing)
  • در مواقعی که فیلتر شکن ها اجازه نمی دن سرور خارجی بهمون وصل بشه با جابه جایی مبدا می شه فیلتر شکن رو گول زد
  • به عنوان سرور آینه (Server Mirroring)
  • و …

برای شروع به یک سرور لینوکسی نیاز داریم،  
اول از همه ip forward رو با دستور زیر فعال می کنیم :
sudo sysctl net.ipv4.ip_forward=1 
حالا باید رول ها رو تنظیم کنیم :
sudo iptables -t nat -A PREROUTING -p tcp -d x.x.x.x –dport 80 -j DNAT –to-destination y.y.y.y:8014 
x.x.x.x: این آدرسه خود سرور پراکسی هستش که روی پورت ۸۰ تنظیم شده
y.y.y.y: این هم آدرس کلاینتم هستش که روی پورت ۸۰۱۴ تنظیم شده
بعد از اجرا کردن دستور بالا دستور زیر رو اجرا کنید:
iptables -t nat -A POSTROUTING -j MASQUERADE 
با دستور بالا مبدا رو عوض می کنیم و کلاینت ها فکر می کنن از خود سرور پراکسی ما دارن داده ها رو دریافت می کنن
تمام ، با این کار اگه به سرور x.x.x.x روی پورت 80 وصل بشیم سرور ما رو جا به جا می کنه و پاکت های ارسالی رو برای y.y.y.y روی پورت 8014 ارسال می کنه
برای دیدن لیست Rule‌ ها دستور زیر رو بزنید:
iptables -t nat –line-numbers -L
و برای پاک کردنشون هم دستور زیر رو همراه با شماره خط دستور قبلی وارد کنید :
iptables -t nat -D PREROUTING 6
برای استفاده از روش SNAT به جایه MASQUERADE از دستور زیر استفاده کنید:
iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT –to-source x.x.x.x

با دستور بالا آدرس مبدا پاکت ها رو به x.x.x.x تغییر می دهیم

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s