تونل کردن وای فای با لینوکس

تونل کردن وای فای با لینوکس

سناریوی کاربردی: بسیاری از مودم‌های فیبر نوری (مانند Huawei HG8245Q2) یا مودم‌های خانگی، امکان نصب مستقیم VPN را ندارند. در این آموزش یاد می‌گیریم که چگونه یک سیستم لینوکسی (که همیشه در شبکه روشن است) را به یک Default Gateway تبدیل کنیم تا ترافیک گوشی‌ها و لپ‌تاپ‌های متصل به وای‌فای، به صورت خودکار از تونل VPN لینوکس عبور کند.

این معماری شبکه نیازمند یک سیستم لینوکسی (مانند دبیان یا اوبونتو) است که با کابل LAN به مودم متصل شده باشد. در ادامه، مراحل را قدم به قدم پیش می‌بریم.

دیاگرام معماری هدایت ترافیک وای‌فای به سرور لینوکس و تونل کردن وای فای با لینوکس

مرحله ۱: استخراج اطلاعات کارت شبکه

🌐 به زبان ساده:

کامپیوتر شما برای ارتباط با مودم یک «کارت شبکه» دارد و برای ارتباط با VPN یک «تونل مجازی» می‌سازد. در این مرحله فقط می‌خواهیم نام این دو مسیر و آدرس کامپیوترمان را پیدا کنیم تا در مراحل بعدی آدرس‌دهی را درست انجام دهیم.

⚙️ توضیحات تخصصی:

باید نام Interface فیزیکی متصل به شبکه لوکال (LAN) و Interface تونل (مانند tun0) را در لایه ۳ شناسایی کنیم. دستور زیر وضعیت لینک‌ها و آی‌پی‌های اختصاص یافته را به صورت خلاصه نشان می‌دهد.

ip -br a

در خروجی این دستور، دنبال اینترفیسی بگردید که وضعیت آن UP است و آی‌پی لوکال دارد (مثلاً enp7s0 با آی‌پی 192.168.100.9). اینترفیس VPN شما نیز معمولاً tun0 نام دارد.

مرحله ۲: باز کردن دسترسی شبکه محلی (LAN) در VPN

🌐 به زبان ساده:

نرم‌افزارهای VPN قابلیتی به نام Kill Switch دارند که برای امنیت بیشتر، دسترسی سیستم را به شبکه‌ی خانگی قطع می‌کنند. ما باید به VPN بگوییم که اجازه دهد کامپیوتر ما با سایر دستگاه‌های داخل خانه (مثل گوشی‌ها) صحبت کند.

⚙️ توضیحات تخصصی:

برای جلوگیری از Drop شدن پکت‌های شبکه محلی توسط قوانین فایروالِ کلاینت VPN، باید ترافیک ساب‌نت لوکال (Local Subnet) را از تونل Exclude کنیم. در ابزاری مثل ExpressVPN این کار با دستور زیر انجام می‌شود.

expressvpn preferences set local_network yes
expressvpn connect

مرحله ۳: فعال‌سازی IP Forwarding در کرنل

🌐 به زبان ساده:

به صورت پیش‌فرض، لینوکس اجازه نمی‌دهد اطلاعاتی که از یک جا وارد می‌شوند، مستقیماً از جای دیگری خارج شوند. با این دستور، ما لینوکس را تبدیل به یک «پُل» یا «چهارراه» می‌کنیم تا اطلاعات گوشی شما از کارت شبکه وارد شده و از تونل VPN خارج شود.

⚙️ توضیحات تخصصی:

باید قابلیت IPv4 Packet Forwarding را در کرنل لینوکس فعال کنیم تا سیستم‌عامل بتواند بسته‌های اطلاعاتی (Packets) را بین اینترفیس‌های شبکه مسیریابی (Route) کند. این کار با تغییر متغیر در فایل sysctl.conf انجام می‌شود.

echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

مرحله ۴: پیاده‌سازی قوانین NAT و Routing با iptables

🌐 به زبان ساده:

حالا باید یک تابلوی راهنما در لینوکس نصب کنیم. این قوانین به لینوکس می‌گویند: «هر اطلاعاتی که از طرف گوشی‌ها آمد را بردار، آن را داخل تونل VPN مخفی کن و به اینترنت بفرست. وقتی هم جوابش از اینترنت برگشت، آن را دوباره به همان گوشی تحویل بده.»

⚙️ توضیحات تخصصی:

با استفاده از ابزار iptables در Netfilter، ما ترافیک خروجی از شبکه محلی (مثلاً enp7s0) را به سمت اینترفیس تونل (tun0) عملیات Source NAT یا Masquerade می‌کنیم. سپس رول‌های FORWARD را برای رفت و برگشت پکت‌های ESTABLISHED مجاز می‌کنیم.

sudo iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
sudo iptables -A FORWARD -i enp7s0 -o tun0 -j ACCEPT
sudo iptables -A FORWARD -i tun0 -o enp7s0 -m state --state RELATED,ESTABLISHED -j ACCEPT

برای اینکه این رول‌ها با ری‌استارت شدن سرور پاک نشوند، آن‌ها را دائمی می‌کنیم:

sudo apt-get install iptables-persistent
sudo netfilter-persistent save

مرحله ۵: پیکربندی dnsmasq به عنوان DHCP Server

🌐 به زبان ساده:

دستگاه‌های متصل به وای‌فای نیاز به یک «آدرس موقت» و یک «آدرس خروجی (Gateway)» دارند تا وارد اینترنت شوند. با نصب این برنامه، سیستم لینوکس ما مسئولیت پخش کردن آی‌پی بین گوشی‌ها را بر عهده می‌گیرد و به آن‌ها می‌گوید: «از این به بعد اینترنت شما من هستم، نه مودم!»

⚙️ توضیحات تخصصی:

ما سرویس dnsmasq را به عنوان یک DHCP Server سبک راه‌اندازی می‌کنیم. استفاده از دستور bind-interfaces بسیار حیاتی است؛ زیرا از تداخل پورت ۶۷ با اینترفیس‌های مجازی برنامه‌هایی مثل Docker یا LXC روی سرور جلوگیری می‌کند. در این پیکربندی، آی‌پی لینوکس به عنوان Gateway (آپشن ۳) به کلاینت‌ها معرفی می‌شود.

sudo apt update && sudo apt install dnsmasq

پس از نصب، فایل /etc/dnsmasq.conf را ویرایش کرده و تنظیمات زیر را در آن قرار دهید (آی‌پی‌ها را متناسب با شبکه خود اصلاح کنید):

interface=enp7s0
bind-interfaces
dhcp-range=192.168.100.50,192.168.100.150,12h
dhcp-option=3,192.168.100.9
dhcp-option=6,1.1.1.1,8.8.8.8

سپس سرویس را ری‌استارت کنید:

sudo systemctl restart dnsmasq

مرحله ۶: غیرفعال کردن DHCP مودم

🌐 به زبان ساده:

در شبکه نباید دو نفر هم‌زمان مسئول پخش آی‌پی باشند، وگرنه دستگاه‌ها گیج می‌شوند. چون لینوکس را مسئول این کار کردیم، حالا باید وارد تنظیمات مودم شویم و مسئولیت پخش آی‌پی (DHCP) را از مودم بگیریم. این کار مثل بازنشسته کردن مسئول قبلی است.

⚙️ توضیحات تخصصی:

وجود دو DHCP Server فعال در یک Broadcast Domain باعث ایجاد پدیده Rogue DHCP می‌شود و کلاینت‌ها ممکن است Gateway اشتباه (IP مودم) را دریافت کنند. باید به پنل مودم (معمولاً 192.168.100.1) بروید، وارد بخش LAN شده و تیک Enable DHCP Server را کاملاً بردارید.

🎉 عملیات با موفقیت انجام شد!
حالا تمام زیرساخت آماده است. تنها کاری که باید انجام دهید این است که وای‌فای گوشی یا لپ‌تاپ خود را یک بار خاموش و روشن کنید. دستگاه شما به صورت خودکار از سرور دبیان آی‌پی می‌گیرد و تمام ترافیک آن بدون نیاز به نصب هیچ اپلیکیشن اضافه‌ای، از داخل تونل VPN عبور خواهد کرد. برای تست می‌توانید وب‌سایت whatismyip.com را باز کنید.
5 1 رأی
امتیاز مقاله
guest
0 دیدگاه
قدیمی‌ترین
جدیدترین بیشترین رأی
بازخوردهای درون‌خطی
مشاهده همه دیدگاه‌ها
پیمایش به بالا