با سلام خدمت دوستان عزیزم
توی این پست با 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 استفاده کنیم .
دیاگرام کار
شکل بالا نمونه ساده ای از یک ارتباط سایت تو سایت هست با یک درگاه 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/ باشه .
بعد از ورود Setup the v+p+n tunnel ، طبق شکل زیر عمل میکنیم :
بعد از زدن تیک enable ipsec مورد 2 و 3 رو کلیک میکنیم
بعد برای اعمال تنظیماتی که در فاز یک گفتم روی + کلیک میکنیم و طبق تصویر زیر اطلاعات خواسته شده رو کامل میکنیم :
بعد از زدن دکمه save با تصویر زیر مواجه میشید که باید apply کنید :
خوب بعدش باید فاز دو رو کانفیگ کنیم ، به شکل زیر عمل میکنیم :
بعد هم تنظیمات و اطلاعاتی که برای فاز دو گفتیم رو به شکل زیر وارد میکنیم :
حالا که فاز یک و فاز دو رو به صورتهای بالا اعمال تنظیمات کردیم باید به رول های فایروال 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 این کار رو بکنید .
که بعد با تصویر زیر مواجه میشید :
بعد از اینکه روی کانکت کلیک میکنیم تصاویر زیر رو خواهیم دید :
برای تست وی+پی+ان از 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]
خوب امیدوارم که این آموزش براتون مفید واقع بشه.
پیروز و سربلند باشید .