IPSec

معرفی IPSec

IPSec یا Internet Protocol security عبارت است از مجموعه‌ای از چندین پروتکل که برای ایمن‌سازی پروتکل اینترنت در ارتباطات بوسیله احراز هویت و رمزگذاری در هربسته(packet) در یک سیر داده به کار می‌رود. IPSec بطور گسترده در تکنولوژی VPN جهت احراز هویت، محرمانگی، یکپارچگی و مدیریت کلید در شبکه های مبتنی بر IP، مورد استفاده قرار می گیرد. IPsec امنیت ارتباطات را در بطن شبکه با کمک سرویس های امن رمزنگاری برقرار می کند. برای عملکرد صحیح و کامل IPSec، هر دو طرف فرستنده و گیرنده باید یک کلید عمومی را به اشتراک بگذارند که بواسطه استفاده از پروتکل “مدیریت کلید” عملی می شود. این پروتکل به گیرنده این اجازه را می دهد تا یک کلید عمومی را بدست آورده و فرستنده را بر اساس امضای دیجیتال احراز هویت نماید.مزایایی که IPSec برای یک ارتباط به ارمغان می آورد، شامل موارد زیر می باشد:

  • محافظت از حمله replay

  • محرمانگی اطلاعات (رمزنگاری)

  • یکپارچکی اطلاعات

  • احراز منبع و منشاء اطلاعات

  • احراز هویت در لایه Network


نحوه پیکربندی

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

Transform-set

یک TS، شامل تنظیمات پایه‌ای برای برقراری ارتباط بین دو سر IPSec میباشد که در واقع شامل تنظیمات الگوریتم‌های رمزنگاری می باشد.

Profile

در پروفایل، کلیدهای لازم برای رمزنگاری مشخص میگردند. این کلیدها می تواند توسط کاربر و بصورت manual وارد گردد و یا از IKE استفاده شود.

Crypto map

با استفاده از crypto map ترافیک مورد نظر برای رمز کردن را مشخص میکنیم.

حال فرض کنید قصد داریم تونل GRE که در بخش کارگاه gre اضافه کردیم را با IPsec حفاظت کرده و رمز کنیم . ابتدا به تنظیم روتر Soodar1 میپردازیم:

Scen3

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

Soodar1(config)# access-list acl-ipsec permit gre any any  

حال Transform-set را می سازیم :

Soodar1(config)# crypto ipsec transform-set ipsec-Site1-TS esp hmac md5 cipher aes-256
Soodar1(cfg-crypto-trans)# mode transport  

دو روش برای تشکیل sa برای تونل ipsec وجود دارد . استفاده از کلید های ثابت از قبل تعیین شده و استفاده از ike . در این بخش ما از کلید های ثابت استفاده می کنیم و در ادامه نیز نحوه تنظیم پروفایل ike را نیز شرح می دهیم.

در این بخش به تنظیم profile می پردازیم :

Soodar1(config)# crypto ipsec profile ipsec-Site1-profile  
Soodar1(ipsec-profile)#  set transform-set ipsec-Site1-TS  
Soodar1(ipsec-profile)#  set session-key inbound 300 authenticator 782f4125442a472d4b6150645367566b59703373367639792442264529482b4d cipher 66546a576e5a7234753778214125442a472d4b6150645267556b587032733576  
Soodar1(ipsec-profile)#  set session-key outbound 6132 authenticator 5368566d597133743677397a24432646294a404e635266556a576e5a72347537 cipher 6251655468576d5a7134743777217a25432a46294a404e635266556a586e3272  

به اعداد inbound و outbound توجه داشته باشید. این دو عدد نشانگر SA داده میباشد و باید در دو طرف، به صورت ضربدری، با یکدیگر برابر باشند.
حال Crypto map را میسازیم:

Soodar1(config)# crypto map 10 CMAP 
Soodar1(config-crypto-map)#  set profile ipsec-Site1-profile  
Soodar1(config-crypto-map)#  match address acl-ipsec

عدد 10 که در بالا وارد شد، شماره Sequence در این crypto map میباشد.
پس از ساختن crypto map، کار ما تقریبا تمام است و کافیست این crypto map را به اینترفیس(ها) دلخواه اعمال نماییم:

Soodar1(config)# interface ge1
Soodar1(config-if)#  crypto map CMAP  

اکنون روتر Soodar1 کاملا تنظیم شده است. حال به تنظیم روتر Soodar2 میپردازیم:

Soodar2(config)# access-list acl-ipsec-Site2 permit gre any any
Soodar2(config)# crypto ipsec transform-set ipsec-Site2-TS esp hmac md5 cipher aes-256
Soodar2(cfg-crypto-trans)# mode transport  
------------------------------------------------------------------------------------------    
Soodar2(config)# crypto ipsec profile ipsec-Site2-profile
Soodar2(ipsec-profile)#  set transform-set ipsec-Site2-TS  
Soodar2(ipsec-profile)#  set session-key outbound 300 authenticator 782f4125442a472d4b6150645367566b59703373367639792442264529482b4d cipher 66546a576e5a7234753778214125442a472d4b6150645267556b587032733576  
Soodar1(ipsec-profile)#  set session-key inbound 6132 authenticator 5368566d597133743677397a24432646294a404e635266556a576e5a72347537 cipher 6251655468576d5a7134743777217a25432a46294a404e635266556a586e3272  
------------------------------------------------------------------------------------------
Soodar2(config)# crypto map 10 CMAP-Site2 
Soodar2(config-crypto-map)#  set profile ipsec-Site2-profile  
Soodar2(config-crypto-map)#  match address acl-ipsec-Site2
------------------------------------------------------------------------------------------
Soodar2(config)# interface ge1
Soodar2(config-if)#  crypto map CMAP-Site2  

بررسی عملکرد تونل

اولا باید ارتباط تونل gre برقرار باشد و شبکه های 192.168.1.0 و 192.168.2.0 باید یکدیگر را ببینند در ثانی با بررسی ترافیک خروجی روی تونل gre باید مشخص شود که ترافیک به صورت رمز شده و با استفاده از ipsec در حال انتقال است .

فعال کردن log های IPSec

با دستور زیر می توانید Log های مربوط به ipsec را فعال کنید:

soodar1# debug ipsec event

تونل IPSec با استفاده از IKE

IKEv2( Internet Key Exchange version 2) پروتکلی است برای راه اندازی و تشکیل SA که جهت استفاده در تونل ipsec به کار گرفته می شود

IKEv2 dpd

dead peer detection . زمانی که بعد از آن طرف مقابل حذف شده و فرآیند ike بین دو طرف مجددا راه اندازی می شود

crypto ikev2 dpd (1-3600) [(1-100)]

عدد اول طول عمر را مشخص می کند و پارامتر دوم حداکثر تعداد تلاش ها برای حذف طرف مقابل را مشخص می کند

IKEv2 proposal

proposal مجموعه ای از الگوریتم های رمزنگاری برای تشکیل SA است

ساخت یک پروپوزال ike با نام IKEPOSAL

crypto ikev2 proposal IKEPOSAL

مشخص کردن الگوریتم های رمز نگاری در پروپوزال

encryption ALGORITHM

integrity ALGORITHM

مشخص کردن یک گروه به عنوان گروه Diffie-Hellman

group GROUP

مثال :


soodar(config)# crypto ikev2 proposal proposal-exemplary
soodar(config-ikev2-proposal)# encryption aes-192
soodar(config-ikev2-proposal)# integrity sha1-96
soodar(config-ikev2-proposal)# group 5

IKEv2 keyring

همانطور که از نام مشخص است این ساختار ID طرف مقابل و همچنین آدرس های آن ها و پارمتر های احراز هویت آن ها را نگه می دارد

ساخت یک keyring جدید با نام IKEKEYRING

crypto ikev2 keyring IKEKEYRING

ساخت peer جدید در keyring به نام PEER

peer PEER

تنظیم آدرس شبکه peer

address <A.B.C.D|X:X::X:X>

تنظیم psk برای احراز هویت peer

pre-shared-key LINE

استفاده از یک آدرس به عنوان peer id . این id در زمان برقراری نشست ike بین دو طرف استفاده می شود.

identity address <A.B.C.D|X:X::X:X>

استفاده از یک FQDN به عنوان peer id . این id در زمان برقراری نشست ike بین دو طرف استفاده می شود.

identity fqdn FQDN

استفاده از یک EMAIL آدرس به عنوان peer id . این id در زمان برقراری نشست ike بین دو طرف استفاده می شود.

identity email MAIL

مثال:

soodar(config)# crypto ikev2 keyring keyring-1
soodar(config-ikev2-keyring)# peer PC-1
soodar(config-ikev2-keyring-peer)# address 192.168.1.100
soodar(config-ikev2-keyring-peer)# identity email home@sweet.home
soodar(config-ikev2-keyring-peer)# pre-shared-key 123@321
soodar(config-ikev2-keyring)# peer PC-2
soodar(config-ikev2-keyring-peer)# address 192.168.1.20
soodar(config-ikev2-keyring-peer)# identity address 1.1.1.1
soodar(config-ikev2-keyring-peer)# pre-shared-key ITSAHARDPASSWD!!

IKEv2 profile

profile بخش اصلی ike می باشد . تعریف یک آدرس به عنوان id محلی . در نشست ike توسط این id به طرف های مقابل شناسانده می شود

identity local address <A.B.C.D|X:X::X:X>

تعریف یک FQDN به عنوان id محلی . در نشست ike توسط این id به طرف های مقابل شناسانده می شود

identity local fqdn FQDN

تعریف یک EMAI به عنوان id محلی . در نشست ike توسط این id به طرف های مقابل شناسانده می شود

identity local email MAIL

id طرف مقابل را به شکل address وارد کنید بقیه اطلاعات از keyring استخراج خواهد شد .

match identity remote address <A.B.C.D|X:X::X:X>

id طرف مقابل را به شکل FQDN وارد کنید بقیه اطلاعات از keyring استخراج خواهد شد .

match identity remote fqdn FQDN

id طرف مقابل را به شکل EMAIL وارد کنید بقیه اطلاعات از keyring استخراج خواهد شد .

match identity remote email EMAIL

مشخص کردن keyring برای پیداکردن peer مربوطه برای برقراری نشست ike

keyring local IKEKEYRING

استفاده از IKEPOSAL برای تشکیل IKEv2 SA

proposal IKEPOSAL

مثال :

soodar(config)# crypto ikev2 profile VPN
soodar(config-ikev2-profile)# identity local 192.168.1.1
soodar(config-ikev2-profile)# match identity remote home@sweet.home
138
Chapter 9. SecuritySoodar User Manual, Release 20.01
soodar(config-ikev2-profile)# keyring local keyring-1
soodar(config-ikev2-profile)# proposal proposal-exemplary

پس از تنظیم ike می توان آن را در پروفایل ipsec استفاده کرد : مثال:


soodar(config)# crypto ipsec profile ipsec-Site2-profile
soodar(ipsec-profile)#  set transform-set ipsec-Site2-TS
soodar(ipsec-profile)#  set ikev2-profile VPN

مشاهده SA

soodar# show crypto ikev2 sa
soodar# show crypto ipsec sa