اگر در یک سازمان یا شرکت چندشعبه‌ای کار کرده باشید یا در تیم‌های NOC و پشتیبانی زیرساخت مشغول به فعالیت باشید، حتما با نیاز مبرم به ارتباط پایدار و امن میان دیتاسنترها، دفاتر استانی و شعب دورکار مواجه شده‌اید.

در گذشته شرکت‌ها مبالغ سنگینی را ماهانه صرف خرید خطوط اختصاصی مانند اینترانت یا MPLS می‌کردند تا بسته‌های داده بدون ورود به اینترنت عمومی منتقل شوند. اما امروزه با استفاده از پروتکل استاندارد IPsec، می‌توان بستری کاملا رمزگذاری‌شده، غیرقابل شنود و امن را درست روی بستر عمومی اینترنت برپا کرد.

در این مقاله از بایتوتک، ابتدا به چرایی و نحوه عملکرد IPsec و تفاوت فازهای ۱ و ۲ می‌پردازیم، سپس تجهیزات و شبیه‌سازهای مناسب برای تمرین را بررسی می‌کنیم و در نهایت یک سناریوی کامل را برای اتصال شبکه دفتر تهران به شیراز روی روترهای سیسکو با خط فرمان پیاده‌سازی و عیب‌یابی خواهیم کرد.

 


چرا به پروتکل IPsec نیاز داریم و کاربردهای آن چیست؟

اینترنت ذاتا یک شبکه ناامن (Untrusted) است. هر بسته‌ای که روی این بستر ارسال می‌شود، در روترهای میانی و ارائه‌دهندگان اینترنت قابل رصد و دستکاری است. پروتکل IPsec با ایجاد سه فاکتور حیاتی، ارتباط را ایمن می‌کند:

۱. محرمانگی (Confidentiality): با استفاده از الگوریتم‌های رمزنگاری متقارن نظیر AES، محتوای بسته قفل شده و هیچ ناظر بیرونی قادر به خواندن داده‌ها نیست.

۲. یکپارچگی (Integrity): با بهره‌گیری از توابع هش مانند SHA256، اطمینان حاصل می‌شود که بسته در طول مسیر حتی یک بیت دستکاری نشده باشد.

۳. احراز هویت (Authentication): هویت دو روتر مبدا و مقصد قبل از هرگونه تبادل اطلاعات به وسیله کلید اشتراکی (Pre-Shared Key) یا سرتیفیکیت دیجیتال تایید می‌گردد.

 

کاربردهای اصلی این پروتکل در دنیای واقعی عبارتند از:

  • اتصال امن دفاتر و شعب استانی (Site-to-Site VPN) بدون نیاز به خطوط گران‌قیمت.
  • برقراری ارتباط رمزنگاری‌شده میان سرورهای ابری (Cloud Infrastructure) و دیتاسنتر داخلی سازمان (On-Premises).
  • انتقال ترافیک حساس پایگاه‌داده، سامانه‌های مالی و اطلاعات هویتی پرسنل بین رک‌های توزیع‌شده.

انتخاب محیط لابراتوار و نیازمندی‌های تمرین

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

۱. نرم‌افزار Cisco Packet Tracer:

برای درک اولیه و سناریوهای سبک مناسب است. در پکت تریسر می‌توانید از دو روتر سری 2911 یا 1941 استفاده کنید (دقت کنید که لایسنس Security روی روتر با دستور license boot module فعال باشد).

۲. شبیه‌سازهای EVE-NG یا GNS3 (پیشنهاد اصلی بایتوتک):

برای تمرین سناریوهای واقعی و نزدیک به محیط عملیاتی، این محیط‌ها بهترین گزینه هستند. با بارگذاری ایمیج‌های Cisco IOSv یا روترهای CSR1000v، تمامی دستورات و دیباگ‌ها دقیقا مشابه یک روتر فیزیکی درون رک دیتاسنتر رفتار می‌کنند.
 

تجهیزات منطقی مورد نیاز برای پیاده‌سازی این سناریو:

  • دو دستگاه روتر سیسکو (یکی در نقش روتر تهران و دیگری روتر شیراز)
  • دو دستگاه سیستم فرضی (PC یا VPCS) در هر شبکه برای تست پینگ و ارسال داده
  • یک سوئیچ یا شبکه میانی جهت شبیه‌سازی فضای اینترنت (Cloud / WAN)

 


سناریوی عملی: اتصال شبکه دفتر تهران به شیراز

در این سناریو می‌خواهیم کلاینت‌های شبکه داخلی دفتر تهران را با امنیت کامل به کلاینت‌های دفتر شیراز متصل کنیم. روترها باید ترافیک عادی اینترنت را بدون پردازش اضافی عبور دهند، اما به محض دریافت بسته‌ای از سمت شبکه داخلی تهران به مقصد شیراز، تونل رمزنگاری فعال شود.
 

مشخصات سناریو:

  • شبکه داخلی تهران: 192.168.1.0/24
  • شبکه داخلی شیراز: 192.168.2.0/24
  • آی‌پی پابلیک روتر تهران (WAN): 203.0.113.1 روی اینترفیس GigabitEthernet0/0
  • آی‌پی پابلیک روتر شیراز (WAN): 203.0.113.2 روی اینترفیس GigabitEthernet0/0
  • کلید اشتراکی احراز هویت: BytotechSecretKey

پیش‌نیاز سناریو: پیش از شروع تنظیمات، مطمئن شوید که دو پورت WAN توانایی پینگ یکدیگر را دارند و اینترفیس‌های LAN روی هر روتر وضعیت Up دارند.

 


پیکربندی روتر دفتر تهران (Tehran-RTR)

مرحله اول: تفکیک ترافیک مهم (Interesting Traffic)

روتر باید متوجه شود کدام بخش از ترافیک نیازمند رمزگذاری درون تونل است:

Tehran-RTR# configure terminal
Tehran-RTR(config)# access-list 100 permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255
Tehran-RTR(config)# exit

تحلیل: این اکسس‌لیست برای فیلتر یا مسدود کردن پورت نیست، بلکه به عنوان یک متر و معیار برای شناسایی ترافیکی که باید وارد تونل IPsec شود استفاده می‌شود.

 

مرحله دوم: تنظیم فاز یک (IKE Phase 1)

در این مرحله پارامترهای امنیتی جهت احراز هویت اولیه دو روتر و ایجاد کانال امن مدیریتی تعیین می‌شود:

Tehran-RTR(config)# crypto isakmp policy 10
Tehran-RTR(config-isakmp)# encr aes
Tehran-RTR(config-isakmp)# hash sha256
Tehran-RTR(config-isakmp)# authentication pre-share
Tehran-RTR(config-isakmp)# group 14
Tehran-RTR(config-isakmp)# lifetime 86400
Tehran-RTR(config-isakmp)# exit

Tehran-RTR(config)# crypto isakmp key BytotechSecretKey address 203.0.113.2

تحلیل: الگوریتم رمزنگاری AES، هش دیتای SHA256، روش احراز هویت با پسورد مشترک، طول کلید دیفی-هلمن Group 14 (معادل ۲۰۴۸ بیت) تعریف شد و پسورد BytotechSecretKey به آی‌پی روتر شیراز نسبت داده شد.
 

مرحله سوم: تنظیم فاز دو (IPsec Phase 2 - Transform Set)

مشخص می‌کنیم بسته‌های واقعی داده کاربران پس از ورود به تونل با چه الگوریتمی محافظت شوند:

Tehran-RTR(config)# crypto ipsec transform-set TS-BYTO esp-aes esp-sha256-hmac
Tehran-RTR(cfg-crypto-trans)# mode tunnel
Tehran-RTR(cfg-crypto-trans)# exit

تحلیل: پروتکل ESP وظیفه رمزگذاری با AES و تایید اصالت با الگوریتم SHA256 را بر عهده می‌گیرد و حالت tunnel بسته‌های آی‌پی داخلی را درون یک هدر جدید پابلیک کپسوله می‌کند.

 

مرحله چهارم: ساخت Crypto Map و پیاده‌سازی روی اینترفیس اینترنت

تمامی مراحل بالا را درون یک نقشه امنیتی گردهم می‌آوریم و آن را به پورت خروجی روتر متصل می‌کنیم:

Tehran-RTR(config)# crypto map CMAP-BYTO 10 ipsec-isakmp
Tehran-RTR(config-crypto-map)# set peer 203.0.113.2
Tehran-RTR(config-crypto-map)# set transform-set TS-BYTO
Tehran-RTR(config-crypto-map)# match address 100
Tehran-RTR(config-crypto-map)# exit

Tehran-RTR(config)# interface GigabitEthernet0/0
Tehran-RTR(config-if)# crypto map CMAP-BYTO
Tehran-RTR(config-if)# exit

 


پیکربندی روتر دفتر شیراز (Shiraz-RTR)

Shiraz-RTR# configure terminal

! ۱. اکسس لیست ترافیک مورد نظر به سمت تهران
Shiraz-RTR(config)# access-list 100 permit ip 192.168.2.0 0.0.0.255 192.168.1.0 0.0.0.255

! ۲. فاز یک متناظر با تهران
Shiraz-RTR(config)# crypto isakmp policy 10
Shiraz-RTR(config-isakmp)# encr aes
Shiraz-RTR(config-isakmp)# hash sha256
Shiraz-RTR(config-isakmp)# authentication pre-share
Shiraz-RTR(config-isakmp)# group 14
Shiraz-RTR(config-isakmp)# lifetime 86400
Shiraz-RTR(config-isakmp)# exit
Shiraz-RTR(config)# crypto isakmp key BytotechSecretKey address 203.0.113.1

! ۳. فاز دو یکسان
Shiraz-RTR(config)# crypto ipsec transform-set TS-BYTO esp-aes esp-sha256-hmac
Shiraz-RTR(cfg-crypto-trans)# mode tunnel
Shiraz-RTR(cfg-crypto-trans)# exit

! ۴. کریپتو مپ و الصاق به اینترفیس خروجی
Shiraz-RTR(config)# crypto map CMAP-BYTO 10 ipsec-isakmp
Shiraz-RTR(config-crypto-map)# set peer 203.0.113.1
Shiraz-RTR(config-crypto-map)# set transform-set TS-BYTO
Shiraz-RTR(config-crypto-map)# match address 100
Shiraz-RTR(config-crypto-map)# exit

Shiraz-RTR(config)# interface GigabitEthernet0/0
Shiraz-RTR(config-if)# crypto map CMAP-BYTO
Shiraz-RTR(config-if)# exit

تنظیمات سمت شیراز کاملا متقارن با تهران است؛ با این تفاوت که آی‌پی‌های مبدا و مقصد در اکسس‌لیست جابه‌جا شده و آدرس Peer به آی‌پی پابلیک تهران تغییر می‌یابد:

 


دستورات مانیتورینگ و عیب‌یابی (Verification & Troubleshooting)

تونل‌های IPsec ماهیت On-Demand دارند؛ یعنی تا زمانی که کاربری در شبکه تهران سعی نکند سیستمی در شبکه شیراز را صدا بزند، تونل به صورت خودکار برقرار نمی‌شود. برای بالا آوردن تونل، از یک کامپیوتر در شبکه تهران (مثلا 192.168.1.10) یک پینگ متوالی به سمت کلاینت شیراز (192.168.2.10) ارسال کنید.

 

سپس وضعیت را با دستورات زیر روی روتر بررسی نمایید:

۱. بررسی وضعیت فاز یک (IKE SA)

Tehran-RTR# show crypto isakmp sa

خروجی استاندارد:

 

نکته طلایی: اگر در ستون state عبارت QM_IDLE را مشاهده کردید، بدین معناست که احراز هویت اولیه دو روتر با موفقیت کامل انجام شده و فاز یک به درستی برقرار است.
 

۲. بررسی وضعیت فاز دو و شمارنده پکت‌ها (IPsec SA)

Tehran-RTR# show crypto ipsec sa

در میان سطرهای این خروجی طولانی، دو مقدار حیاتی را جستجو کنید:

تحلیل:

  • عدد encaps نشان‌دهنده پکت‌هایی است که روتر تهران برای شیراز قفل و بسته‌بندی کرده است.
  • عدد decaps پکت‌هایی است که از سمت شیراز آمده و روتر تهران آن‌ها را رمزگشایی کرده است.
  • اگر هر دو عدد به موازات هم افزایش یابند، ارتباط دوطرفه بدون کوچک‌ترین مشکلی در حال تبادل است.

سه خطای رایج در راه‌اندازی IPsec VPN که باید بدانید

۱. تداخل با سرویس NAT اینترنت (عدم اجرای NAT Exemption):

اگر روتر شما علاوه بر تونل، اینترنت کاربران را NAT می‌کند، به طور پیش‌فرض پکت‌های مقصد شیراز را هم به آدرس پابلیک روتر ترجمه می‌کند. در نتیجه، پکت‌ها دیگر با Access-list تطابق پیدا نکرده و تونل فعال نمی‌شود. راهکار این است که ترافیک بین دو سابنت را پیش از دستور NAT با یک دستور Deny مستثنا (Bypass) کنید.
 

۲. عدم تطابق کامل پالیسی‌های فاز یک (Policy Mismatch):

تمامی پارامترهای درون crypto isakmp policy (اعم از الگوریتم رمزنگاری، هش، سایز گروه دیفی-هلمن و رمز اشتراکی) باید در هر دو روتر مثل آینه عینا منطبق باشند. حتی اگر هش یک سمت SHA و سمت دیگر SHA256 باشد، تونل در مرحله فاز یک متوقف شده و خطای MM_NO_STATE را مشاهده خواهید کرد.
 

۳. مسدود بودن پورت‌های مدیریتی یا پروتکل ESP در فایروال میانی:

اگر بین دو دفتر، فایروال یا مودمی با تنظیمات امنیتی قرار دارد، باید مطمئن شوید درگاه UDP 500 و پروتکل ESP (Protocol 50، نه پورت 50) مسدود نشده باشند. در صورت فعال بودن مکانیزم عبور از نات (NAT-Traversal)، پورت UDP 4500 نیز باید باز باشد.

 


جمع‌بندی

تسلط بر پیاده‌سازی پروتکل IPsec Site-to-Site VPN یکی از شاخص‌ترین مهارت‌ها برای هر مهندس شبکه و متخصص NOC است. این راهکار امکان برقراری ارتباطی کاملا امن، قابل اعتماد و مقرون‌به‌صرفه را میان موقعیت‌های جغرافیایی مختلف سازمان فراهم می‌سازد. با دنبال کردن دقیق سناریوی فوق و رعایت تقارن در کانفیگ هر دو شعبه، می‌توانید زیرساخت ارتباطی سازمان خود را در بالاترین سطح امنیتی پیاده‌سازی کنید.