راهاندازی داخلی خارج از دفتر با مسیر اتصال امن
در این سناریو یک کارمند مجاز از ویندوز و تونل WireGuard به IP خصوصی مرکز تلفن وصل میشود. تنها داخلی و مسیرهای تلفنی لازم در اختیار اوست؛ دسترسی مدیریت مرکز و کل شبکه از این اتصال لازم نیست.
این راهنما براساس مستندات رسمی تهیه شده و توسط نتمسترز بهصورت عملی آزمایش نشده است.
آخرین بازبینی متن:
در این صفحه
دامنه نمونه و پیشنیاز اتصال
مبنای مرکز Issabel 5 روی Rocky Linux 8 با Asterisk 18 و PJSIP و کد رسمی PBX مورخ ۳۰ آوریل ۲۰۲۴ است. برای تونل، همان نمونه RouterOS 7 در آموزش WireGuard کارکنان مبناست؛ آن صفحه نسخه مستند و مراحل کلید، ورودی UDP، مسیر و فایروال را مشخص کرده است. کلاینت این تمرین ویندوز با WireGuard و سافتفون MicroSIP است؛ نسخه نصبشده هر سه بخش را ثبت و رابطهای واقعی را تطبیق دهید.
| نقش | مقدار |
|---|---|
| روتر شرکت / رابط تونل | 192.168.50.1/24 و wg-staff با 10.77.0.1/24 |
| مرکز تلفن خصوصی | 192.168.50.20/24؛ دروازه این نمونه 192.168.50.1 |
| دستگاه دورکار تازه | 10.77.0.3/32 با کلید مستقل؛ peer کارمند .2 را کپی نکنید. |
| داخلی دورکار / داخلی محلی | 521 / 522؛ دو شماره آزاد و دو رمز مستقل |
| AllowedIPs سمت کلاینت | 192.168.50.20/32؛ در این تمرین اتصال با IP است. |
| Allowed Address سمت peer روتر | 10.77.0.3/32؛ با peer دیگر همپوشانی نداشته باشد. |
برای دیدن همه ستونها، جدول را به چپ یا راست بکشید؛ با کیبورد از کلیدهای جهت استفاده کنید.
IP عمومیِ قابل دسترس یا هدایت معتبر UDP برای خود WireGuard باید از قبل فراهم باشد. CGNAT سمت دفتر با DDNS یا Port Forward محلی رفع نمیشود. شبکه خانه، شرکت و تونل هم نباید همپوشانی آدرس داشته باشند. این نمونه SIP، RTP یا پنل مدیریتی PBX را روی اینترنت منتشر نمیکند و راهحل تمام سناریوهای چند WAN یا IPv6 نیست.
مسیر PBX و برگشت آن را آماده کنید
طبق راهنمای WireGuard، peer و کلید مستقل دستگاه .3 را بسازید. در کلاینت فقط مقصد PBX را به AllowedIPs بدهید؛ مجوزهای وب و DNS کارمند .2 در آن آموزش، به این دستگاه منتقل نمیشوند. اگر بعدها نام داخلی مرکز بهجای IP استفاده شود، مسیر و مجوز DNS مناسب هم جدا لازم است.
مرکز باید پاسخ 10.77.0.3 را به میکروتیک برگرداند. در این مثال دروازه خود مرکز همین روتر است؛ در شبکهای با دروازه دیگر، مسیر شبکه تونل روی دروازه واقعی به سمت 192.168.50.1 لازم است. masquerade عمومی بین VPN و LAN اضافه نکنید تا اشکال برگشت پنهان و هویت همه دستگاهها یکسان شود.
پیش از اتصال سافتفون، IP و پورت transport واقعی PJSIP و بازه RTP مرکز را از تنظیم مؤثر همان نصب ثبت کنید. بازه دریافت رسانه سافتفون را نیز از تنظیمات و مستند نسخه نصبشده مشخص کنید. SIP و RTP یک پورت نیستند؛ عددهای متداول 5060 یا 10000–20000 را بدون تطبیق، قانون آماده مرکز خود ندانید.
مجوز صوت را محدود و در جای درست اضافه کنید
بکاپ و دسترسی مدیریت محلی را حفظ کنید. در WinBox → IP → Firewall → Filter Rules، برای همین peer قواعد زیر را با پورتهای واقعی بسازید. در نمونه WireGuard قبلی، زنجیره nm-wg-access ورودی تونل را میسنجد و انتهای آن Drop دارد. مجوزهای جدیدِ .3 باید پیش از همان Drop باشند؛ مجوزهای کارمند .2 بدون دلیل تغییر نکنند.
| محل | محدوده مجوز |
|---|---|
| nm-wg-access، پیش از NM-WG-deny-other | Accept فقط Src. Address=10.77.0.3 و Dst. Address=192.168.50.20، Protocol=udp و Dst. Port=پورت واقعی PJSIP این آزمایش |
| همان زنجیره، پیش از Drop | Accept فقط همان مبدأ و مقصد، Protocol=udp و Dst. Port=بازه واقعی دریافت RTP/RTCP مرکز |
| forward، پیش از NM-WG-deny-new-to-client | Accept فقط Src. Address=192.168.50.20، Dst. Address=10.77.0.3، Out. Interface=wg-staff، Protocol=udp و Dst. Port=پورت SIP محلی سافتفون؛ در این نمونه 5092 پس از اطمینان از آزادبودن آن |
| forward، پیش از NM-WG-deny-new-to-client | Accept فقط Src. Address=192.168.50.20، Dst. Address=10.77.0.3، Out. Interface=wg-staff، Protocol=udp و Dst. Port=بازه دریافت RTP/RTCP سافتفون |
| باقی سیاست تونل | Drop سایر مقصدها و پورتها و منع input به مدیریت روتر حفظ شود. |
برای دیدن همه ستونها، جدول را به چپ یا راست بکشید؛ با کیبورد از کلیدهای جهت استفاده کنید.
برای این قواعد تازه، حالت invalid همچنان رد شود و ارتباط new و established مطابق سیاست پذیرفته شود. قاعده برگشت established/related در نمونه وب، شروع همه جریانهای صوت یا INVITE تازه پس از پایان مهلت وضعیت UDP را تضمین نمیکند؛ به همین دلیل SIP ورودی و رسانه برگشتی از IP مرکز جدا مجاز شدند. اگر کلاینت یا مرکز پورت RTCP جدا استفاده میکند، آن هم باید در بازه واقعی پوشش داده شود. مجوز «همه UDPها به کل LAN» لازم نیست.
فایروال خود PBX نیز فقط مبدأ 10.77.0.3 و پورتهای تلفنی لازم را بپذیرد؛ پنل وب و SSH برای کاربر داخلی لازم نیست. در فایروال ویندوز، دریافت برنامه سافتفون را فقط از IP مرکز و مسیر مجاز فراهم کنید. ترتیب Dropها، قواعد عمومی و FastTrack باید با راهنمای تونل سازگار بماند؛ اضافهکردن wg-staff به فهرست LAN مورداعتماد، این محدودیت را جایگزین نمیکند.
اگر ترتیب فعلی فایروال با این زنجیرهها متفاوت است، نام قواعد را کورکورانه کپی نکنید؛ همین سیاست مبدأ، مقصد، پورت و جهت را در ساختار موجود اعمال کنید. پس از هر تغییر از شمارنده قاعده و یک ارتباط تازه استفاده کنید، نه فقط اتصال از قبل برقرار.
داخلی و سافتفون را روی IP خصوصی مرکز ثبت کنید
دو داخلی آزاد PJSIP، مثلاً 521 برای دورکار و 522 برای یک دستگاه محلی پاسخگو، مطابق آموزش داخلی و سافتفون بسازید. حساب هر دستگاه مستقل و تعداد ثبت همزمان متناسب با همان یک دستگاه باشد. مجوز تماس بیرونی را صریح بررسی کنید؛ from-internal یا صرف ساخت داخلی، به معنی محدودبودن آن به تماس داخلی نیست. در مرکز آزمایشی این مرحله Route بیرونی قابل استفاده برای حساب 521 نداشته باشید.
برای همین دو داخلی، Direct Media را No قرار دهید تا رسانه از PBX عبور کند؛ سپس Submit و Apply Config کنید. در غیر این صورت ممکن است سافتفون به IP خصوصی یک گوشی LAN فرستاده شود که در AllowedIPs و فایروال این نمونه مجاز نیست. اگر transport مرکز تنظیمات NAT دارد، شبکه تونل را در محدوده محلی مناسبِ همان transport لحاظ کنید تا برای این peer آدرس عمومیِ نامناسب در SDP جایگزین نشود؛ تنظیم فعال ترانکهای دیگر را بیبررسی تغییر ندهید.
- ابتدا WireGuard را فعال کنید و handshake تازه و مسیر مقصد PBX را بررسی کنید. تنها دیدن handshake کافی نیست.
- در MicroSIP، Add Account را باز کنید. SIP Server را 192.168.50.20:PORT با جایگزینی PORT توسط پورت واقعی PJSIP قرار دهید؛ Domain در این نمونه 192.168.50.20 است و پورت به آن اضافه نمیشود.
- Username و Login را 521 و Password را رمز همان داخلی بگذارید. Display Name فقط نام نمایشی است. Transport این تمرین UDP است؛ Outbound Proxy عمومی برای این مسیر مستقیم لازم نیست.
- برای این حساب، Local port را پس از اطمینان از آزادبودن روی 5092 و Public address را IP رابط تونل یعنی 10.77.0.3 بگذارید؛ نام Public address در اینجا به معنی واردکردن IP عمومی اینترنت نیست. همین پورت محلی را در قاعده برگشت SIP و فایروال ویندوز تطبیق دهید.
- کدک مشترک، مثلاً PCMA / G.711 A-law با alaw مرکز، را فعال کنید. تنظیمات را ذخیره و وضعیت ثبت را بررسی کنید. این نمونه برای گذر از NAT عمومیِ خود SIP، STUN خارجی تنظیم نمیکند.
اگر برنامه روی چند رابط فعال است، آدرس Contact و رسانه اعلامشده باید از مرکز به مسیر تونل قابل رسیدن باشند؛ IP خصوصی خانه ممکن است از شرکت قابل دسترسی نباشد. صرف روشنبودن آیکون حساب را کافی ندانید. در کنسول مجاز Asterisk فرمان زیر را اجرا و Contact حساب 521 را با دستگاه و مسیر فعلی تطبیق دهید؛ نتیجه واقعی در این مقاله تولید نشده است.
pjsip show contactsتونل WireGuard بخش اینترنتی این مسیر را محافظت میکند؛ UDP محلی SIP/RTP از روتر تا PBX را خودبهخود به TLS/SRTP تبدیل نمیکند. اگر سیاست شرکت رمزنگاری سرتاسری آن بخش را هم میخواهد، سازگاری و پیکربندی TLS/SRTP موضوع جداست.
از یک اینترنت دیگر، پذیرش مثبت و منفی بگیرید
| آزمون | نتیجه لازم |
|---|---|
| 521 به 522 و سپس 522 به 521 | زنگ، پاسخ، صدای دوطرفه، قطع و تماس مجدد درست باشد. |
| پس از چند دقیقه بیکاری و قفل ویندوز | با حفظ بیداربودن دستگاه و اتصال شبکه، تماس ورودی برسد؛ خواب دستگاه آزمون جدا دارد. |
| قطع و اتصال دوباره VPN | پس از برگشت شبکه، ثبت تازه و تماس دوطرفه دوباره برقرار شود. |
| یک شبکه بیرونی دیگر، مثلاً هاتاسپات همراه | ثبت و صوت از مسیر تازه دوباره آزموده شود؛ حفظ تماس هنگام جابهجایی شبکه تضمین نشده است. |
| پنل PBX، مدیریت روتر و مقصد LAN نامجاز | درخواست واقعاً به تونل ارسال شود و در قاعده منع رد شود؛ نبود Route بهتنهایی آزمون فایروال نیست. |
| لغو دسترسی دستگاه آزمایشی | peer و حساب مربوط محدود شوند و امکان ثبت و تماس مجدد واقعاً از بین برود. |
برای دیدن همه ستونها، جدول را به چپ یا راست بکشید؛ با کیبورد از کلیدهای جهت استفاده کنید.
برای آزمون مقصد نامجاز، فقط روی کلاینت آزمایشی مسیر /32 همان مقصد تحت اختیار را موقتاً به AllowedIPs اضافه و ردشدن را از شمارنده فایروال بررسی کنید؛ سپس مسیر موقت را حذف کنید. سرویس خاموش را با فایروالِ درست اشتباه نگیرید. برای قطع دسترسی، فقط پاککردن فایل VPN از لپتاپ کافی نیست؛ peer سمت شرکت و حساب یا نشست داخلی هم طبق مسئولیت کاربر لغو و اثر آن بررسی شود.
اگر دریافت پس از بیکاری مشکل دارد، زندهبودن تونل، ثبت SIP، سیاست خواب ویندوز و فایروال را جدا بررسی کنید. PersistentKeepalive=25 در peer کلاینت میتواند در برخی NATها نگاشت WireGuard را نگه دارد؛ دستگاه خوابیده یا سافتفون بسته را بیدار نمیکند. قبولی این نمونه ویندوز، قابلیت Push یا زنگ پسزمینه همه برنامههای موبایل را ثابت نمیکند.
اگر اتصال هست ولی تماس کار نمیکند
بدون handshake، Endpoint و مسیر UDP و کلیدها را بررسی کنید. با handshake و بدون ثبت، مسیر خصوصی، پورت SIP، فایروال و حساب را ببینید. با ثبت و بدون صوت، آدرس SDP، Direct Media، پورتهای رسانه هر دو جهت و مسیر برگشت را بررسی کنید. با صوت بریده، آزمون کیفیت تماس را روی همان مسیر انجام دهید؛ بازکردن پنل مدیریتی یا همه پورتها درمان این مراحل نیست.
پیش از استفاده روزمره، مقصد جایگزین هنگام قطع داخلی دورکار را در مسیر پاسخگویی شرکت مشخص و جدا آزمایش کنید؛ مثلاً داخلی محلی مجاز. برگشت از تمرین با غیرفعالکردن peer آزمایشی، بازیابی تنظیمات همین دو داخلی و جمعکردن قواعد مخصوص .3 انجام شود؛ تونل و دسترسی کارمندهای دیگر را حذف نکنید. نسخهها، مالک دستگاه، مجوزها، نتیجه واقعی تماسها و محدودیتهای حلنشده را بدون رمز و کلید خصوصی ثبت کنید.