منبع اصلی نوشتار زیر در این لینک قرار دارد

ایجاد تونل ipsec و اعمال تنظیمات pfsense

با سلام خدمت دوستان عزیزم

توی این پست با setup کردن تونل IPSec به صورت site-to-site و نحوه تنظیمات مربوط به فایروال pfsense در خدمتتون هستم . خوب در ابتدا در رابطه با IPSec یه توضیحاتی بدم ، این پروتکل برای این منظور طراحی شده که بتواند بسته (Packet) های اطلاعاتی TCP/IP را توسط کلید عمومی ( همان روش PKC) رمز کند تا در طول مسیر، امکان استفاده غیر مجاز از آنها وجود نداشته باشد. به بیان دیگر کامپیوتر مبدا بسته اطلاعاتی TCP/IP عادی را بصورت یک بسته اطلاعاتی IPSec بسته بندی (Encapsulate) می کند و برای کامپیوتر مقصد ارسال میکند. این بسته تا زمانی که به مقصد برسد رمز شده است و طبیعتا” کسی نمی تواند از محتوای آنها اطلاع بدست آورد. باوجود آنکه بنظر سیستم ساده ای می آید اما باید راجع به آن مطالب بیشتری بدانید. بدیهی ترین نکته آن است که استفاده از این پروتکل زمان نقل و انتقال اطلاعات را بیشتر می کند چرا که هم حجم اطلاعات بیشتر می شود و هم زمانی برای رمز کردن و رمزگشایی. بنابراین بهتر آن است که جز در موارد خاص که علاقه ندارید کسی در شبکه فعالیت های شما را متوجه شود از این پروتکل استفاده کنید. بخصوص که شما می توانید با تعریف سیاست هایی به Windows بگویید که در چه مواردی از آن استفاده کند و در چه مواردی نه. شما می توانید با دادن یک سری دستورالعمل ها به Windows، او را تعلیم دهید که تحت چه شرایطی از IPSec استفاده کند. تحت این شرایط شما در واقع مشخص می کنید که ترافیک کدام گروه از IP ها باید توسط IPSec انجام شود و کدامیک نشود برای این منظور معمولا” از روش ***** کردن IP استفاده می شود. فهرست خاصی از IP های ***** شده که شما تهیه می کنید می تواند مرجعی برای استفاده از پروتکل IPSec برای ویندوز باشد. بدیهی است برای انجام اینکار علاوه بر آشنایی با ویندوز، شما باید تا اندازه ای با شبکه ای که به آن متصل هستید آشنا بوده و اطلاعات اولیه ای را داشته باشید. برای این منظور باید از کنسول مدیریتی ویندزو (Microsoft Management Console) استفاده کرده و از snap-in های مربوط به IPSec برای تعریف سیاست های نامبرده شده استفاده کنید IPSec Policy . خوب برای رسیدن به هدفی که توی عنوان ذکر شده باید یک V+P+N روی Pfsense در حالت تونل داشته باشیم و برای data encryption باید از پروتکل ESP استفاده کنیم .

دیاگرام کار

ipsec

شکل بالا نمونه ساده ای از یک ارتباط سایت تو سایت هست با یک درگاه Secure که دو شبکه داخلی LAN1 و LAN2 رو به هم مرتبط میکنه ، شبکه ای که بهش متصل می شیم Cisco/OpenBSD هست و روی شبکه خودمون pfsense راه اندازی میشه .

کانفیگ v+p+n روی gateway سیسکو / اوپن بی اس دی

فاز 1 :

Ip Address : 122.16.7.42

GateWay : 173.191.1.42

Preshared Key : YOUR-password-key

Encryption : 3DES

Authentication : MD5

Diffie-Hellman Group : 2

Keylife : 14400

فاز 2 :

Encryption : 3DES

Authentication : MD5

Perfect Forward Secrecy (PFS) : Yes

Diffie-Hellman Group : 2

Keylife : 3600

Internal Subnets : 192.168.1.0/24

Remote Subnets : 10.10.29.64/26 and 10.12.249.192/26

کانفیگ Pfsense

فایروال pfsense باید برای شکه داخلی درست کانفیگ بشه و کار کنه ، هر دو طرف باید از non-overlapping آی پی ساب نت استفاده کنند ، فرض میکنیم یوزر اینترفیس فایروال https://192.168.1.254/ باشه .

pfsense_login

بعد از ورود Setup the v+p+n tunnel ، طبق شکل زیر عمل میکنیم :

pfsense-2

بعد از زدن تیک enable ipsec مورد 2 و 3 رو کلیک میکنیم

add-vpn-3

بعد برای اعمال تنظیماتی که در فاز یک گفتم روی + کلیک میکنیم و طبق تصویر زیر اطلاعات خواسته شده رو کامل میکنیم :

add-phase-1-config-4

بعد از زدن دکمه save با تصویر زیر مواجه میشید که باید apply کنید :

vpn-6

خوب بعدش باید فاز دو رو کانفیگ کنیم ، به شکل زیر عمل میکنیم :

vpn-phase-2

بعد هم تنظیمات و اطلاعاتی که برای فاز دو گفتیم رو به شکل زیر وارد میکنیم :

phase-2-vpn-7

حالا که فاز یک و فاز دو رو به صورتهای بالا اعمال تنظیمات کردیم باید به رول های فایروال pfsense بپردازیم .

برای دیدن تنظیمات و رول هایی که به صورت پیشفرض روی wan اضافه شده از دستور زیر توی ترمینال میتونیم استفاده کنیم :

pfctl -sr | grep -i ipsec

خروجی به شکل زیر خواهد بود :

anchor "ipsec/*" all
pass out on enc0 all flags S/SA keep state label "IPsec internal host to host"
pass out route-to (rl0 192.168.0.1) inet proto udp from any to 	173.191.1.42 port = isakmp keep state label "IPsec: SL IPsec - outbound isakmp"
pass in on rl0 reply-to (rl0 192.168.0.1) inet proto udp from 	173.191.1.42 to any port = isakmp keep state label "IPsec: SL IPsec - inbound isakmp"
pass out route-to (rl0 192.168.0.1) inet proto udp from any to 	173.191.1.42 port = sae-urn keep state label "IPsec: SL IPsec - outbound nat-t"
pass in on rl0 reply-to (rl0 192.168.0.1) inet proto udp from 	173.191.1.42 to any port = sae-urn keep state label "IPsec: SL IPsec - inbound nat-t"
pass out route-to (rl0 192.168.0.1) inet proto esp from any to 	173.191.1.42 keep state label "IPsec: SL IPsec - outbound esp proto"
pass in on rl0 reply-to (rl0 192.168.0.1) inet proto esp from 	173.191.1.42 to any keep state label "IPsec: SL IPsec - inbound esp proto"

برای اعمال تنظیمات بسته به دید خودتون باید از قسمت Firewall > Rules and IPsec این کار رو انجام بدید .

برای دیدن وضعیت کنونی IPSec V+P+N باید از قسمت status > IPSec این کار رو بکنید .

 

vpn-status-8

که بعد با تصویر زیر مواجه میشید :

 

vpn-9-status

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

 

status-log-4 status-overview-1 status-spd-3 status-sad-2

برای تست وی+پی+ان از Local network میتونیم ارتباط رو چک کنیم :

$ ping -c2 10.10.29.68
PING 10.10.29.68 (10.10.29.68): 56 data bytes
64 bytes from 10.10.29.68: icmp_seq=0 ttl=60 time=267.420 ms
64 bytes from 10.10.29.68: icmp_seq=1 ttl=60 time=271.900 ms
--- 10.10.29.68 ping statistics ---
2 packets transmitted, 2 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 267.420/269.660/271.900/2.240 ms
$ ssh [email protected]

خوب امیدوارم که این آموزش براتون مفید واقع بشه.

پیروز و سربلند باشید .



برچسب ها : , , , , ,