آموزش فوروارد کردن ترافیک با 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 سرور مقصد در نظر گرفته شده و تمام ترافیک به آن هدایت میشود.
با اعمال این تنظیمات، سرور شما میتواند بهعنوان یک گیتوی یا پراکسی برای سرور مقصد عمل کند.