IPSec

معرفی

IPSec (Internet Protocol Security) مجموعه‌ای از پروتکل‌ها برای ایمن‌سازی ارتباطات شبکه‌ای در لایه اینترنت است. این تکنولوژی با ارائه احراز هویت، رمزنگاری و یکپارچگی داده‌ها، امنیت ارتباطات را در شبکه‌های مبتنی بر آی‌پی تضمین می‌کند.

مزایای استفاده

  • محرمانگی: رمزنگاری کامل داده‌ها

  • یکپارچگی: جلوگیری از دستکاری اطلاعات

  • احراز هویت: تأیید هویت طرفین ارتباط

  • محافظت در برابر حملات: جلوگیری از حملات Replay

  • امنیت در لایه شبکه: مستقل از برنامه‌های کاربردی

حالت‌های عملکرد

حالت تونل (Tunnel Mode)

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

کاربرد: ارتباطات سایت به سایت (Site-to-Site VPN)

حالت انتقال (Transport Mode)

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

کاربرد: ارتباط مستقیم بین میزبان‌ها (End-to-End)

پروتکل‌های امنیتی

AH (Authentication Header)

پروتکل AH احراز هویت و یکپارچگی داده را فراهم می‌کند اما رمزنگاری ارائه نمی‌دهد. این پروتکل کل بسته آی‌پی (شامل هدر) را احراز هویت می‌کند.

مناسب برای: تراکنش‌های مالی و موارد حساس که یکپارچگی داده اهمیت بالایی دارد.

ESP (Encapsulating Security Payload)

پروتکل ESP علاوه بر احراز هویت و یکپارچگی، رمزنگاری داده را نیز فراهم می‌کند.

مناسب برای: شبکه‌های خصوصی مجازی و ارتباطات امن

محدودیت

در حال حاضر در سودار تنها از ESP یا AH به تنهایی می‌توان استفاده کرد و ترکیب آن‌ها پشتیبانی نمی‌شود.

فازهای IPSec

فاز ۱: ایجاد کانال امن (IKE Phase 1)

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

  1. احراز هویت دستگاه‌های ارتباطی

  2. مذاکره روش امن برای تبادل کلیدها

  3. ایجاد کانال امن برای مذاکرات فاز ۲

مراحل IKEv2

  • IKE_SA_INIT: مذاکره امنیتی برای محافظت از ترافیک IKEv2

  • IKE_AUTH: احراز هویت طرفین و مذاکره پارامترهای IPSec

  • CHILD_SA: ایجاد Security Association برای ترافیک کاربری

فاز ۲: مذاکره پارامترهای امنیتی (IPSec Phase 2)

در این فاز پارامترهای خاص برای ایمن‌سازی داده‌های واقعی مذاکره می‌شود:

  1. ایجاد IPSec SA برای هر جهت ارتباط

  2. مذاکره پروتکل‌های رمزنگاری و احراز هویت

  3. تنظیم کلیدها برای پروتکل‌های انتخابی

مفاهیم کلیدی

Transform Set

مجموعه‌ای از الگوریتم‌های امنیتی که مشخص می‌کند داده‌ها چگونه رمزنگاری و احراز هویت شوند.

اجزا:

  • الگوریتم احراز هویت (HMAC)

  • الگوریتم رمزنگاری (Cipher)

  • حالت عملکرد (Transport/Tunnel)

IPSec Profile

پروفایل IPSec ترکیبی از Transform Set و پروفایل IKEv2 است که به تونل اعمال می‌شود.

IKEv2 Profile

شامل تنظیمات مربوط به احراز هویت و شناسایی طرفین ارتباط

IKEv2 Proposal

پیشنهاد الگوریتم‌های رمزنگاری برای ایجاد IKEv2 SA

IKEv2 Keyring

مجموعه کلیدهای از پیش تعریف شده (PSK) برای احراز هویت طرفین

تنظیمات IKE (فاز ۱)

تنظیم IKEv2 Proposal

crypto ikev2 proposal PROPOSAL-NAME

این دستور برای ایجاد و پیکربندی یک IKEv2 Proposal استفاده می‌شود که الگوریتم‌های رمزنگاری و احراز هویت برای فاز ۱ IKEv2 را مشخص می‌کند.

  • PROPOSAL-NAME: نام Proposal را مشخص می‌کند.

n1# config terminal
n1/config# crypto ikev2 proposal PROPOSAL-NAME
n1/c/crypto/ikev2/proposal/PROPOSAL-NAME# integrity ALGORITHM
n1/c/crypto/ikev2/proposal/PROPOSAL-NAME# encryption ALGORITHM
n1/c/crypto/ikev2/proposal/PROPOSAL-NAME# group DH-GROUP

الگوریتم‌های یکپارچگی (Integrity):

  • sha-96: SHA-1 با برش ۹۶ بیتی

  • sha-256: SHA-256 با برش ۲۵۶ بیتی

  • sha-384: SHA-384 با برش ۳۸۴ بیتی

  • sha-512: SHA-512 با برش ۵۱۲ بیتی

الگوریتم‌های رمزنگاری (Encryption):

  • des: DES

  • aes: AES-128

  • aes-192: AES-192

  • aes-256: AES-256

گروه‌های Diffie-Hellman:

  • 14: گروه ۱۴ (۲۰۴۸ بیت)

  • 19: گروه ۱۹ (منحنی بیضوی ۲۵۶ بیت)

  • 20: گروه ۲۰ (منحنی بیضوی ۳۸۴ بیت)

  • 21: گروه ۲۱ (منحنی بیضوی ۵۲۱ بیت)

  • 28: گروه ۲۸ (Brainpool ECP ۲۵۶ بیت)

  • 29: گروه ۲۹ (Brainpool ECP ۳۸۴ بیت)

  • 30: گروه ۳۰ (Brainpool ECP ۵۱۲ بیت)

  • 31: Curve 25519

  • 32: Curve 448

مثال:

n1# config terminal
n1/config# crypto ikev2 proposal IKE-PROPOSAL
n1/c/crypto/ikev2/proposal/IKE-PROPOSAL# integrity sha-384
n1/c/crypto/ikev2/proposal/IKE-PROPOSAL# encryption aes-192
n1/c/crypto/ikev2/proposal/IKE-PROPOSAL# group 14
n1/c/crypto/ikev2/proposal/IKE-PROPOSAL# exit

تنظیم IKEv2 Keyring (برای PSK)

crypto ikev2 keyring KEYRING-NAME

این دستور برای ایجاد و پیکربندی یک IKEv2 Keyring استفاده می‌شود که کلیدهای از پیش تعریف شده (PSK) برای احراز هویت را نگهداری می‌کند.

  • KEYRING-NAME: نام Keyring را مشخص می‌کند.

n1# config terminal
n1/config# crypto ikev2 keyring KEYRING-NAME
n1/c/crypto/ikev2/keyring/KEYRING-NAME# peer PEER-NAME
n1/c/crypto/ikev2/keyring/KEYRING-NAME/peer/PEER-NAME# address IP-ADDRESS
n1/c/crypto/ikev2/keyring/KEYRING-NAME/peer/PEER-NAME# identity TYPE VALUE
n1/c/crypto/ikev2/keyring/KEYRING-NAME/peer/PEER-NAME# pre-shared-key PASSWORD

انواع شناسایی (Identity):

  • address <IP>: شناسایی با آدرس آی‌پی

  • fqdn <DOMAIN>: شناسایی با نام دامنه کامل

  • email <EMAIL>: شناسایی با ایمیل

مثال:

n1# config terminal
n1/config# crypto ikev2 keyring KEYRING-1
n1/c/crypto/ikev2/keyring/KEYRING-1# peer SOODAR2
n1/c/crypto/ikev2/keyring/KEYRING-1/peer/SOODAR2# address 200.1.2.2
n1/c/crypto/ikev2/keyring/KEYRING-1/peer/SOODAR2# identity address 222.2.2.2
n1/c/crypto/ikev2/keyring/KEYRING-1/peer/SOODAR2# pre-shared-key mysecretpass123
n1/c/crypto/ikev2/keyring/KEYRING-1/peer/SOODAR2# exit

تنظیم IKEv2 Profile

crypto ikev2 profile PROFILE-NAME

این دستور برای ایجاد و پیکربندی یک IKEv2 Profile استفاده می‌شود که تنظیمات احراز هویت و شناسایی طرفین ارتباط را مشخص می‌کند.

  • PROFILE-NAME: نام Profile را مشخص می‌کند.

n1# config terminal
n1/config# crypto ikev2 profile PROFILE-NAME
n1/c/crypto/ikev2/profile/PROFILE-NAME# identity local TYPE VALUE
n1/c/crypto/ikev2/profile/PROFILE-NAME# match identity remote TYPE VALUE
n1/c/crypto/ikev2/profile/PROFILE-NAME# authentication local METHOD
n1/c/crypto/ikev2/profile/PROFILE-NAME# authentication remote METHOD
n1/c/crypto/ikev2/profile/PROFILE-NAME# keyring local KEYRING-NAME
n1/c/crypto/ikev2/profile/PROFILE-NAME# proposal PROPOSAL-NAME
n1/c/crypto/ikev2/profile/PROFILE-NAME# lifetime SECONDS

روش‌های احراز هویت:

  • pre-share: از کلید از پیش تعریف شده (PSK)

  • rsa-sig: از گواهینامه دیجیتال (Certificate)

مثال با PSK:

n1# config terminal
n1/config# crypto ikev2 profile IKE-PROFILE
n1/c/crypto/ikev2/profile/IKE-PROFILE# identity local address 222.1.1.1
n1/c/crypto/ikev2/profile/IKE-PROFILE# match identity remote address 222.2.2.2
n1/c/crypto/ikev2/profile/IKE-PROFILE# keyring local KEYRING-1
n1/c/crypto/ikev2/profile/IKE-PROFILE# proposal IKE-PROPOSAL
n1/c/crypto/ikev2/profile/IKE-PROFILE# exit

مثال با RSA (گواهینامه):

n1# config terminal
n1/config# crypto ikev2 profile IKE-PROFILE-RSA
n1/c/crypto/ikev2/profile/IKE-PROFILE-RSA# identity local fqdn n1.local.net
n1/c/crypto/ikev2/profile/IKE-PROFILE-RSA# match identity remote fqdn n2.local.net
n1/c/crypto/ikev2/profile/IKE-PROFILE-RSA# authentication local rsa-sig
n1/c/crypto/ikev2/profile/IKE-PROFILE-RSA# authentication remote rsa-sig
n1/c/crypto/ikev2/profile/IKE-PROFILE-RSA# proposal IKE-PROPOSAL
n1/c/crypto/ikev2/profile/IKE-PROFILE-RSA# lifetime 2400
n1/c/crypto/ikev2/profile/IKE-PROFILE-RSA# exit

تنظیم DPD (Dead Peer Detection)

crypto ikev2 dpd TIMEOUT [RETRY-COUNT]

این دستور برای پیکربندی Dead Peer Detection (DPD) در IKEv2 استفاده می‌شود که برای شناسایی قطع ارتباط طرف مقابل استفاده می‌شود.

  • TIMEOUT: زمان (۱-۳۶۰۰ ثانیه) قبل از شناسایی قطع ارتباط طرف مقابل را مشخص می‌کند.

  • RETRY-COUNT: (اختیاری) تعداد تلاش مجدد (۱-۱۰۰) را مشخص می‌کند.

مثال:

n1# config terminal
n1/config# crypto ikev2 dpd 30 5

تنظیمات IPSec (فاز ۲)

سرویس IPSec

به‌طور پیش‌فرض، سرویس IPSec غیرفعال است. این سرویس به‌طور خودکار هنگام وارد کردن اولین دستور پیکربندی IPSec فعال می‌شود، یا می‌توان آن را به‌صورت دستی توسط کاربر فعال کرد.

برای فعال‌سازی دستی سرویس IPSec، از دستور زیر استفاده کنید:

crypto ipsec enable

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

n1# config terminal
n1/config# crypto ipsec enable

Note

سرویس IPSec به‌طور خودکار غیرفعال نمی‌شود زمانی که آخرین پیکربندی IPSec حذف می‌شود. برای غیرفعال‌سازی دستی سرویس IPSec، از فرم no دستور crypto ipsec enable استفاده کنید:

n1# config terminal
n1/config# no crypto ipsec enable

تنظیم Transform Set

crypto ipsec transform-set TS-NAME ah hmac HMAC-ALG

این دستور برای ایجاد یک Transform Set با پروتکل AH استفاده می‌شود.

  • TS-NAME: نام Transform Set را مشخص می‌کند.

  • HMAC-ALG: الگوریتم HMAC را مشخص می‌کند (sha-96, sha-256, sha-384, sha-512).

n1# config terminal
n1/config# crypto ipsec transform-set TS-NAME ah hmac HMAC-ALG
n1/c/crypto/trans/TS-NAME# mode transport|tunnel
crypto ipsec transform-set TS-NAME esp hmac HMAC-ALG cipher CIPHER-ALG

این دستور برای ایجاد یک Transform Set با پروتکل ESP استفاده می‌شود.

  • TS-NAME: نام Transform Set را مشخص می‌کند.

  • HMAC-ALG: الگوریتم HMAC را مشخص می‌کند (sha-96, sha-256, sha-384, sha-512).

  • CIPHER-ALG: الگوریتم رمزنگاری را مشخص می‌کند (aes-128, aes-192, aes-256, aes-ctr-128, aes-ctr-192, aes-ctr-256, aes-gcm-128, aes-gcm-192, aes-gcm-256).

n1# config terminal
n1/config# crypto ipsec transform-set TS-NAME esp hmac HMAC-ALG cipher CIPHER-ALG
n1/c/crypto/trans/TS-NAME# mode transport|tunnel

الگوریتم‌های HMAC:

  • sha-96, sha-256, sha-384, sha-512

الگوریتم‌های رمزنگاری (Cipher):

  • aes-128, aes-192, aes-256: AES CBC

  • aes-ctr-128, aes-ctr-192, aes-ctr-256: AES CTR

  • aes-gcm-128, aes-gcm-192, aes-gcm-256: AES GCM

نکته

هنگام استفاده از الگوریتم‌های GCM، نیازی به تنظیم HMAC نیست.

مثال:

n1# config terminal
n1/config# crypto ipsec transform-set IPSEC-TS esp hmac sha-256 cipher aes-256
n1/c/crypto/trans/IPSEC-TS# mode transport
n1/c/crypto/trans/IPSEC-TS# exit

تنظیم IPSec Profile

crypto ipsec profile PROFILE-NAME

این دستور برای ایجاد و پیکربندی یک IPSec Profile استفاده می‌شود که ترکیبی از Transform Set و IKEv2 Profile است.

  • PROFILE-NAME: نام Profile را مشخص می‌کند.

n1# config terminal
n1/config# crypto ipsec profile PROFILE-NAME
n1/ipsec-profile# set transform-set TS-NAME
n1/ipsec-profile# set ikev2-profile IKE-PROFILE-NAME
n1/ipsec-profile# set pfs GROUP
n1/ipsec-profile# set security-association lifetime seconds SECONDS
  • pfs: Perfect Forward Secrecy (گروه‌های ۱۴، ۱۹، ۲۰، ۲۱، ۲۸، ۲۹، ۳۰، ۳۱، ۳۲)

  • lifetime: طول عمر SA (۱۲۰-۲۸۸۰۰ ثانیه، پیش‌فرض: ۳۶۰۰)

مثال:

n1# config terminal
n1/config# crypto ipsec profile IPSEC-PROFILE
n1/ipsec-profile# set transform-set IPSEC-TS
n1/ipsec-profile# set ikev2-profile IKE-PROFILE
n1/ipsec-profile# set pfs 14
n1/ipsec-profile# set security-association lifetime seconds 3600
n1/ipsec-profile# exit

نکته مهم

  • هر پروفایل IKEv2 فقط باید در یک پروفایل IPSec استفاده شود

  • هر پروفایل IPSec فقط باید به یک تونل متصل شود

  • برای هر تونل نیاز به یک پروفایل IKEv2 و یک پروفایل IPSec جداگانه دارید

سناریو عملی ۱: IPSec با PSK

در این سناریو دو روتر سودار را با استفاده از IPSec و احراز هویت PSK به هم متصل می‌کنیم.

Topology

تو پولوژی

  • Soodar1: 200.1.2.1 (Public), 1.1.1.1/24 (Private)

  • Soodar2: 200.1.2.2 (Public), 2.1.1.1/24 (Private)

  • هدف: ایجاد تونل IPSec بین دو روتر

پیکربندی Soodar1

فاز ۱: تنظیمات IKE

n1# config terminal
n1/config# crypto ikev2 proposal IKE-PP
n1/c/crypto/ikev2/proposal/IKE-PP# encryption aes-192
n1/c/crypto/ikev2/proposal/IKE-PP# integrity sha-96
n1/c/crypto/ikev2/proposal/IKE-PP# group 14
n1/c/crypto/ikev2/proposal/IKE-PP# exit

n1/config# crypto ikev2 keyring KEYRING-1
n1/c/crypto/ikev2/keyring/KEYRING-1# peer SOODAR2
n1/c/crypto/ikev2/keyring/KEYRING-1/peer/SOODAR2# address 200.1.2.2
n1/c/crypto/ikev2/keyring/KEYRING-1/peer/SOODAR2# identity address 222.2.2.2
n1/c/crypto/ikev2/keyring/KEYRING-1/peer/SOODAR2# pre-shared-key mysecret123
n1/c/crypto/ikev2/keyring/KEYRING-1/peer/SOODAR2# exit
n1/c/crypto/ikev2/keyring/KEYRING-1# exit

n1/config# crypto ikev2 profile VPN
n1/c/crypto/ikev2/profile/VPN# identity local address 222.1.1.1
n1/c/crypto/ikev2/profile/VPN# match identity remote address 222.2.2.2
n1/c/crypto/ikev2/profile/VPN# keyring local KEYRING-1
n1/c/crypto/ikev2/profile/VPN# proposal IKE-PP
n1/c/crypto/ikev2/profile/VPN# exit

فاز ۲: تنظیمات IPSec

n1/config# crypto ipsec transform-set IPSEC-SITE1-TS esp hmac sha-256 cipher aes-256
n1/c/crypto/trans/IPSEC-SITE1-TS# mode transport
n1/c/crypto/trans/IPSEC-SITE1-TS# exit

n1/config# crypto ipsec profile IPSEC-SITE1-PROFILE
n1/ipsec-profile# set transform-set IPSEC-SITE1-TS
n1/ipsec-profile# set ikev2-profile VPN
n1/ipsec-profile# exit

ایجاد تونل

n1/config# interface tunnel12
n1/c/interface/tunnel12# tunnel source 200.1.2.1
n1/c/interface/tunnel12# tunnel destination 200.1.2.2
n1/c/interface/tunnel12# tunnel protection ipsec profile IPSEC-SITE1-PROFILE
n1/c/interface/tunnel12# ip address 10.0.0.12/32
n1/c/interface/tunnel12# exit

n1/config# ip route 2.1.1.0/24 tunnel12
n1/config# exit
n1# write

پیکربندی Soodar2

n2# config terminal
n2/config# crypto ikev2 proposal IKE-PP-2
n2/c/crypto/ikev2/proposal/IKE-PP-2# encryption aes-192
n2/c/crypto/ikev2/proposal/IKE-PP-2# integrity sha-96
n2/c/crypto/ikev2/proposal/IKE-PP-2# group 14
n2/c/crypto/ikev2/proposal/IKE-PP-2# exit

n2/config# crypto ikev2 keyring KEYRING-2
n2/c/crypto/ikev2/keyring/KEYRING-2# peer SOODAR1
n2/c/crypto/ikev2/keyring/KEYRING-2/peer/SOODAR1# address 200.1.2.1
n2/c/crypto/ikev2/keyring/KEYRING-2/peer/SOODAR1# identity address 222.1.1.1
n2/c/crypto/ikev2/keyring/KEYRING-2/peer/SOODAR1# pre-shared-key mysecret123
n2/c/crypto/ikev2/keyring/KEYRING-2/peer/SOODAR1# exit
n2/c/crypto/ikev2/keyring/KEYRING-2# exit

n2/config# crypto ikev2 profile VPN-2
n2/c/crypto/ikev2/profile/VPN-2# identity local address 222.2.2.2
n2/c/crypto/ikev2/profile/VPN-2# match identity remote address 222.1.1.1
n2/c/crypto/ikev2/profile/VPN-2# keyring local KEYRING-2
n2/c/crypto/ikev2/profile/VPN-2# proposal IKE-PP-2
n2/c/crypto/ikev2/profile/VPN-2# exit

n2/config# crypto ipsec transform-set IPSEC-SITE2-TS esp hmac sha-256 cipher aes-256
n2/c/crypto/trans/IPSEC-SITE2-TS# mode transport
n2/c/crypto/trans/IPSEC-SITE2-TS# exit

n2/config# crypto ipsec profile IPSEC-SITE2-PROFILE
n2/ipsec-profile# set transform-set IPSEC-SITE2-TS
n2/ipsec-profile# set ikev2-profile VPN-2
n2/ipsec-profile# exit

n2/config# interface tunnel21
n2/c/interface/tunnel21# tunnel source 200.1.2.2
n2/c/interface/tunnel21# tunnel destination 200.1.2.1
n2/c/interface/tunnel21# tunnel protection ipsec profile IPSEC-SITE2-PROFILE
n2/c/interface/tunnel21# ip address 10.0.0.21/32
n2/c/interface/tunnel21# exit

n2/config# ip route 1.1.1.0/24 tunnel21
n2/config# exit
n2# write

بررسی و تست

بررسی وضعیت IKEv2 SA:

n1# show crypto ikev2 sa
n1# show crypto ikev2 sa detailed

بررسی وضعیت IPSec SA:

n1# show crypto ipsec sa
n1# show crypto ipsec sa detailed

تست ارتباط:

n1# ping 2.1.1.10 source 1.1.1.10

سناریو عملی ۲: IPSec با RSA (گواهینامه)

در این سناریو از گواهینامه‌های دیجیتال برای احراز هویت استفاده می‌کنیم.

پیش‌نیازها

  • یک سرور CA معتبر

  • گواهینامه برای هر روتر با SAN مناسب

    • Soodar1: n1.local.net

    • Soodar2: n2.local.net

تنظیمات PKI (برای هر دو روتر)

در Soodar1:

n1# config terminal
n1/config# crypto key generate rsa label soodar1-key modulus 2048
n1/config# crypto pki trustpoint soodar1-cert
n1/ca-trustpoint# rsakeypair soodar1-key
n1/ca-trustpoint# subject-name C=IR, O=Soodar, CN=s1.local.net
n1/ca-trustpoint# subject-alt-name soodar1.local.net
n1/ca-trustpoint# exit
n1/config# crypto pki authenticate soodar1-cert

(وارد کردن CA Certificate)

n1/config# crypto pki enroll soodar1-cert

(کپی CSR و امضا توسط CA)

n1/config# crypto pki import soodar1-cert certificate

(وارد کردن گواهینامه امضا شده)

همین مراحل را برای Soodar2 تکرار کنید.

پیکربندی IKEv2 با RSA

در Soodar1:

n1# config terminal
n1/config# crypto ikev2 proposal IKE-PROPOSAL
n1/c/crypto/ikev2/proposal/IKE-PROPOSAL# integrity sha-384
n1/c/crypto/ikev2/proposal/IKE-PROPOSAL# encryption aes
n1/c/crypto/ikev2/proposal/IKE-PROPOSAL# group 28
n1/c/crypto/ikev2/proposal/IKE-PROPOSAL# exit

n1/config# crypto ikev2 profile IKE-PROFILE-RSA
n1/c/crypto/ikev2/profile/IKE-PROFILE-RSA# identity local fqdn n1.local.net
n1/c/crypto/ikev2/profile/IKE-PROFILE-RSA# match identity remote fqdn n2.local.net
n1/c/crypto/ikev2/profile/IKE-PROFILE-RSA# authentication local rsa-sig
n1/c/crypto/ikev2/profile/IKE-PROFILE-RSA# authentication remote rsa-sig
n1/c/crypto/ikev2/profile/IKE-PROFILE-RSA# proposal IKE-PROPOSAL
n1/c/crypto/ikev2/profile/IKE-PROFILE-RSA# lifetime 2400
n1/c/crypto/ikev2/profile/IKE-PROFILE-RSA# exit

n1/config# crypto ipsec transform-set TS esp hmac sha-96 cipher aes
n1/c/crypto/trans/TS# mode transport
n1/c/crypto/trans/TS# exit

n1/config# crypto ipsec profile IPSEC-PROFILE-RSA
n1/ipsec-profile# set transform-set TS
n1/ipsec-profile# set ikev2-profile IKE-PROFILE-RSA
n1/ipsec-profile# exit

n1/config# interface tunnel10
n1/c/interface/tunnel10# tunnel source 200.1.2.1
n1/c/interface/tunnel10# tunnel destination 200.1.2.2
n1/c/interface/tunnel10# tunnel protection ipsec profile IPSEC-PROFILE-RSA
n1/c/interface/tunnel10# ip address 10.1.1.1/32
n1/c/interface/tunnel10# exit

n1/config# ip route 2.1.1.0/24 tunnel10
n1/config# exit
n1# write

پیکربندی مشابه در Soodar2 با تغییر مقادیر مناسب.

دستورات نمایش و عیب‌یابی

نمایش Security Associations

n1# show crypto ikev2 sa
n1# show crypto ikev2 sa detailed
n1# show crypto ikev2 sa json

خروجی نمونه:

Profile ike-n1-n2
  Status:           ESTABLISHED
  Local:            200.1.2.1
  Remote:           200.1.2.2/500
  Encr:             AES_CBC-128
  Hash:             HMAC_SHA2_384_192
  DH Grp:           ECP_256_BP
  Life/Active Time: 240/190 sec
n1# show crypto ipsec sa
n1# show crypto ipsec sa detailed
n1# show crypto ipsec sa json

خروجی نمونه:

Profile ipsec-n1-n2
  Status:            INSTALLED
  IKEv2 Profile:     ike-n1-n2
  Mode:              TUNNEL
  Protocol:          ESP
  Encr:              AES_CBC-128
  Hash:              HMAC_SHA2_256_128
  Life/Active Time:  66/32 sec

نمایش گواهینامه‌ها

n1# show crypto pki certificate <TRUSTPOINT-NAME>

نمایش کلیدها

n1# show crypto key <KEY-NAME>

فعال‌سازی لاگ‌های دیباگ

n1# debug ipsec event
n1# debug ipsec vici json
n1# debug ipsec vici detail

نمایش لاگ‌های IPSec

n1# show log ipsec

مدیریت PKI

ایجاد کلید RSA

n1# config terminal
n1/config# crypto key generate rsa label <KEY-NAME> modulus <2048|4096>

ایجاد Trustpoint

n1# config terminal
n1/config# crypto pki trustpoint <TP-NAME>
n1/ca-trustpoint# rsakeypair <KEY-NAME>
n1/ca-trustpoint# subject-name <SUBJECT-DN>
n1/ca-trustpoint# subject-alt-name <SAN>

احراز هویت CA

n1# config terminal
n1/config# crypto pki authenticate <TP-NAME>

ایجاد CSR

n1# config terminal
n1/config# crypto pki enroll <TP-NAME>

وارد کردن گواهینامه

n1# config terminal
n1/config# crypto pki import <TP-NAME> certificate

حذف کلید

n1# config terminal
n1/config# crypto key zeroize <KEY-NAME>

حذف Trustpoint

n1# config terminal
n1/config# no crypto pki trustpoint <TP-NAME>

نکات مهم و بهترین شیوه‌ها

نکات امنیتی

  1. کلید قوی: از کلیدهای PSK قوی (حداقل ۲۰ کاراکتر) استفاده کنید

  2. الگوریتم‌های قوی: از AES-256 و SHA-384 یا بالاتر استفاده کنید

  3. PFS: برای امنیت بیشتر حتماً PFS را فعال کنید

  4. گواهینامه: در محیط‌های تولیدی از RSA به جای PSK استفاده کنید

  5. DPD: حتماً DPD را برای تشخیص قطع ارتباط تنظیم کنید

توصیه‌های عملیاتی

  1. مستندسازی: تمام تنظیمات و کلیدها را مستند کنید

  2. پشتیبان‌گیری: قبل از تغییرات از پیکربندی پشتیبان بگیرید

  3. تست: ابتدا در محیط آزمایشگاهی تست کنید

  4. نظارت: از لاگ‌ها برای نظارت مداوم استفاده کنید

  5. به‌روزرسانی: گواهینامه‌ها را قبل از انقضا تمدید کنید

عیب‌یابی رایج

مشکل ۱: IKE SA برقرار نمی‌شود

علائم:

  • پیام خطا در لاگ

  • عدم ایجاد تونل

راه‌حل:

  1. بررسی هماهنگی پارامترهای proposal در دو طرف

  2. بررسی صحت PSK یا گواهینامه

  3. بررسی دسترسی شبکه (فایروال، مسیریابی)

  4. بررسی identity های تنظیم شده

n1# show crypto ikev2 sa
n1# show log ipsec
n1# debug ipsec event

مشکل ۲: IPSec SA نصب نمی‌شود

علائم:

  • IKE SA برقرار است اما IPSec SA نیست

  • ترافیک رمزنگاری نمی‌شود

راه‌حل:

  1. بررسی هماهنگی Transform Set در دو طرف

  2. بررسی اتصال پروفایل IKEv2 به پروفایل IPSec

  3. بررسی اعمال profile به تونل

n1# show crypto ipsec sa
n1# show running-config | include tunnel
n1# debug ipsec vici json

مشکل ۳: ترافیک رمزنگاری نمی‌شود

علائم:

  • SA ها برقرار هستند

  • بسته‌ها رمز نمی‌شوند

راه‌حل:

  1. بررسی مسیریابی صحیح از طریق تونل

  2. بررسی حالت Transform Set (transport vs tunnel)

  3. بررسی ACL یا فایروال

n1# show ip route
n1# ping <DEST-IP> source <SRC-IP>
n1# show crypto ipsec sa detailed

مشکل ۴: گواهینامه معتبر نیست

علائم:

  • خطای احراز هویت

  • رد شدن گواهینامه

راه‌حل:

  1. بررسی اعتبار زمانی گواهینامه

  2. بررسی SAN در گواهینامه

  3. بررسی زنجیره اعتماد CA

  4. بررسی CRL

n1# show crypto pki certificate <TP-NAME>
n1# show clock

جدول مرجع سریع

دستورات IKEv2

دستور

کاربرد

crypto ikev2 proposal NAME

ایجاد proposal

crypto ikev2 keyring NAME

ایجاد keyring

crypto ikev2 profile NAME

ایجاد profile

crypto ikev2 dpd TIME [COUNT]

تنظیم DPD

show crypto ikev2 sa

نمایش IKE SA

دستورات IPSec

دستور

کاربرد

crypto ipsec transform-set NAME

ایجاد Transform Set

crypto ipsec profile NAME

ایجاد IPSec Profile

crypto ipsec enable

فعال‌سازی سرویس

show crypto ipsec sa

نمایش IPSec SA

tunnel protection ipsec profile NAME

اعمال profile به تونل

دستورات PKI

دستور

کاربرد

crypto key generate rsa

ایجاد کلید RSA

crypto pki trustpoint NAME

ایجاد trustpoint

crypto pki authenticate NAME

احراز هویت CA

crypto pki enroll NAME

ایجاد CSR

crypto pki import NAME certificate

وارد کردن گواهینامه

show crypto pki certificate NAME

نمایش گواهینامه

دستورات عیب‌یابی

دستور

کاربرد

debug ipsec event

لاگ رویدادهای IPSec

debug ipsec vici json

لاگ پیام‌های VICI

show log ipsec

نمایش لاگ StrongSwan

show crypto ikev2 sa detailed

جزئیات کامل IKE SA

show crypto ipsec sa detailed

جزئیات کامل IPSec SA

خلاصه

IPSec یک راه‌حل جامع برای ایمن‌سازی ارتباطات شبکه است که:

امنیت چندلایه ارائه می‌دهد
انعطاف‌پذیری بالا در انتخاب الگوریتم‌ها دارد
مقیاس‌پذیری برای شبکه‌های بزرگ
استانداردهای صنعتی را رعایت می‌کند
سازگاری با تجهیزات مختلف

با رعایت بهترین شیوه‌ها و پیکربندی صحیح، می‌توانید یک زیرساخت امن و پایدار برای ارتباطات شبکه خود ایجاد کنید.