آموزش فوروارد کردن ترافیک با iptables در لینوکس

با استفاده از iptables می‌توانید تمام ترافیک شبکه را به یک سرور مقصد هدایت کنید. این تنظیمات به شما امکان می‌دهد سرور خود را به‌عنوان یک گیت‌وی یا پراکسی برای سرور مقصد (مانند 192.168.10.1) استفاده کنید.

۱. مراقب ارتباط SSH باشید!

برای جلوگیری از قطع ارتباط SSH، ابتدا پورت ۲۲ را باز نگه دارید:

iptables -t nat -A PREROUTING -p tcp --dport 22 -j ACCEPT

۲. فعال‌سازی IP Forwarding

برای شروع، باید قابلیت فوروارد کردن IP را در سیستم فعال کنید:

sysctl -w net.ipv4.ip_forward=1
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf

۳. هدایت ترافیک TCP و UDP

برای هدایت تمام ترافیک‌های TCP و UDP به آدرس IP مقصد (مانند 192.168.10.1) از دستورات زیر استفاده کنید:

# TCP
iptables -t nat -A PREROUTING -p tcp -j DNAT --to-destination 192.168.10.1

# UDP
iptables -t nat -A PREROUTING -p udp -j DNAT --to-destination 192.168.10.1

۴. تغییر آدرس مبدأ با SNAT

برای اطمینان از بازگشت صحیح پاسخ‌ها، آدرس مبدأ بسته‌ها را تغییر دهید:

iptables -t nat -A POSTROUTING -j MASQUERADE

نکته: این دستور باعث می‌شود آدرس IP مبدأ به IP سرور شما تغییر یابد تا مقصد بتواند پاسخ را به‌درستی ارسال کند.

۵. اجازه فوروارد ترافیک در جدول فیلتر

برای اجازه دادن به ترافیک فوروارد شده به مقصد، از دستور زیر استفاده کنید:

iptables -A FORWARD -d 192.168.10.1 -j ACCEPT

۶. فوروارد پورت خاص

اگر می‌خواهید تنها یک پورت خاص (مثلاً پورت ۸۰) را فوروارد کنید:

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

۷. ذخیره و اعمال دائمی قوانین

برای ذخیره دائمی قوانین iptables، از ابزارهایی مانند iptables-save یا iptables-persistent استفاده کنید.

نکته: در مثال‌های بالا، 192.168.10.1 به‌عنوان IP سرور مقصد در نظر گرفته شده و تمام ترافیک به آن هدایت می‌شود.

با اعمال این تنظیمات، سرور شما می‌تواند به‌عنوان یک گیت‌وی یا پراکسی برای سرور مقصد عمل کند.