strongSwan היא מימוש תוכנה חופשית, צלב-פלטפורמה, מודרנית, ונפוצה מאוד של VPN (רשת פרטית וירטואלית) מבוססת IPsec הרצה על Linux, FreeBSD, OS X, Windows, Android, ו- iOS. זאת בעיקר דמון מפתחות התומך בפרוטוקולי החלפת מפתחות אינטרנט (IKEv1 ו- IKEv2) כדי להקים הסכמות אבטחה (SA) בין שני עמיתים.
מאמר זה מתאר איך להגדיר שערי IPSec VPN מאתר אל מאתר באמצעות strongSwan על שרתי Ubuntu ו- Debian. באמצעות "מאתר אל מאתר" אנו מתכוונים שלכל שער אבטחה יש תת-רשת מאחוריו. בנוסף, העמיתים יאמתו כל על ידי מפתח משותף מוקדם (PSK).
סביבת בדיקה
זכור להחליף את ה-IPים הבאים עם ה-IPים האמיתיים שלך כדי להגדיר את הסביבה שלך.
שער 1 (tecmint-devgateway)
OS 1: Debian or Ubuntu Public IP: 10.20.20.1 Private IP: 192.168.0.101/24 Private Subnet: 192.168.0.0/24
שער 2 (tecmint-prodgateway)
OS 2: Debian or Ubuntu Public IP: 10.20.20.3 Private IP: 10.0.2.15/24 Private Subnet: 10.0.2.0/24
שלב 1: הפעלת העברת חבילות בליבה
1. ראשית, עליך להגדיר את הליבה כך שתאפשר העברת חבילות על ידי הוספת משתני מערכת מתאימים בקובץ התצורה /etc/sysctl.conf בשני שערי האבטחה.
$ sudo vim /etc/sysctl.conf
חפש את השורות הבאות והסר את ההערות מפניהן והגדר את הערכים שלהן כפי שמוצג (קרא את ההערות בקובץ למידע נוסף).
net.ipv4.ip_forward = 1 net.ipv6.conf.all.forwarding = 1 net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.all.send_redirects = 0
2. לְבַצֵע אֶת הָגָדָרוֹת הַחֲדָשׁוֹת, יֵשׁ לְהַפְעִיל אֶת הַפְקָמָה הַבָּאָה.
$ sudo sysctl -p

3. אִם יֵשׁ לְךָ שֵׁרֵת חוֹמָה UFW מוּפָעַל, עַלֶיךָ לְהוֹסִיף אֶת הַכּוֹלוֹת הַבָּאוֹת לְקוֹבֵּץ הַהָגָדוֹת /etc/ufw/before.rules כְּתַקְנָה סֻגָּרִים בְּשַׁעַרֵי בִּטָּחוֹן.
שַׁעַר 1 (tecmint-devgateway)
*nat :POSTROUTING ACCEPT [0:0] -A POSTROUTING -s 10.0.2.0/24 -d 192.168.0.0/24 -j MASQUERADE COMMIT
שַׁעַר 2 (tecmint-prodgateway)
*nat :POSTROUTING ACCEPT [0:0] -A POSTROUTING -s 192.168.0.0/24 -d 10.0.2.0/24 -j MASQUERADE COMMIT
4. לְאַחַר שֶׁהַכּוֹלוֹת שֶׁל הַגָּדוֹת הַחוֹמָה נוֹסְפוֹת, יֵשׁ לְהַחֲלִיף אֶת הַשִׁינוּיִים הַחֲדָשִׁים עַל יְדֵי הַפְעָלַת UFW כְּפִי שֶׁמוּצָג.
$ sudo ufw disable $ sudo ufw enable
שלב 2: התקנַת strongSwan בְּדֶבִיאַן וּבְאוּבוּנְטוּ
5. לְעַדֵכֵן אֶת מַחְסוֹן הַחֲבִילוֹת שֶׁלְךָ בְּשַׁעַרֵי בִּטָּחוֹן שְׁנַיִם וּלְהַתְקִין אֶת הַחֲבִילָה strongswan בְּאֶמְצָעוֹת מַנַּהַל הַחֲבִילוֹת APT.
$ sudo apt update $ sudo apt install strongswan
6. לְאַחַר שֶׁהַהַתְקָנָה הִשְׁלִימָה, סְקִיפְט הַהַתְקָנָה יַפְעִיל אֶת שֵׁרֵת הַחֲבִילוֹת וִיאַפֵשׁ לְהַפְעִיל אוֹתוֹ בְּאוֹפֶן אוֹטוֹמָטִי בְּעֵת הַפְּעָלַת הַמַעֲרֶכֶת. תוּכַל לְבָדוֹק אֶת מַעֲמָדוֹ וְהַאִם הוּא מוּפָעַל בְּאֶמְצָעוֹת הַפְקָמָה הַבָּאָה.
$ sudo systemctl status strongswan.service $ sudo systemctl is-enabled strongswan.service
שלב 3: הגדָרוֹת שַׁעַרֵי בִּטָּחוֹן
7. לְבַצֵע אֶת הַגָדָרוֹת שַׁעַרֵי הַבִּטָּחוֹן בְּאֶמְצָעוֹת קוֹבֵּץ הַהָגָדוֹת /etc/ipsec.conf.
שַׁעַר 1 (tecmint-devgateway)
$ sudo cp /etc/ipsec.conf /etc/ipsec.conf.orig $ sudo nano /etc/ipsec.conf
העתק והדבק את התצורה הבאה בקובץ.
config setup charondebug="all" uniqueids=yes conn devgateway-to-prodgateway type=tunnel auto=start keyexchange=ikev2 authby=secret left=10.20.20.1 leftsubnet=192.168.0.101/24 right=10.20.20.3 rightsubnet=10.0.2.15/24 ike=aes256-sha1-modp1024! esp=aes256-sha1! aggressive=no keyingtries=%forever ikelifetime=28800s lifetime=3600s dpddelay=30s dpdtimeout=120s dpdaction=restart
שער אתר 2 (tecmint-prodgateway)
$ sudo cp /etc/ipsec.conf /etc/ipsec.conf.orig $ sudo nano /etc/ipsec.conf
העתק והדבק את התצורה הבאה לתוך הקובץ.
config setup charondebug="all" uniqueids=yes conn prodgateway-to-devgateway type=tunnel auto=start keyexchange=ikev2 authby=secret left=10.20.20.3 leftsubnet=10.0.2.15/24 right=10.20.20.1 rightsubnet=192.168.0.101/24 ike=aes256-sha1-modp1024! esp=aes256-sha1! aggressive=no keyingtries=%forever ikelifetime=28800s lifetime=3600s dpddelay=30s dpdtimeout=120s dpdaction=restart
כאן נמצא משמעות כל פרמטר בתצורה:
- config setup – מציין מידע כללי להגדרת IPSec שנוגע לכל החיבורים.
- charondebug – מגדיר כמה פלט ניפוי שגיאות של Charon צריך להירשם.
- uniqueids – מציין האם זיהוי משתתף מסוים צריך להישמר כייחודי.
- conn prodgateway-to-devgateway – מגדיר את שם החיבור.
- type – מגדיר את סוג החיבור.
- auto – איך לטפל בחיבור כאשר IPSec מופעל או מופעל מחדש.
- keyexchange – מגדיר את גרסת פרוטוקול ה-IKE שצריך להשתמש בו.
- authby – מגדיר כיצד על התייחסות של עמיתים לאמת זה את זה.
- left – מגדיר את כתובת ה-IP של ממשק הרשת הציבורית של המשתתף השמאלי.
- leftsubnet – מציין את התת-רשת הפרטית מאחורי המשתתף השמאלי.
- right – סותם את כתובת ה-IP של ממשק הרשת הציבורית של המשתתף הימני.
- rightsubnet – מציין את התת-רשת הפרטית מאחורי המשתתף השמאלי.
- ike – מגדיר רשימת אלגוריתמי הצפנה/אימות של SA של IKE/ISAKMP שיש להשתמש בהם. ניתן להוסיף רשימה מופרדת בפסיקים.
- esp – מגדיר רשימת אלגוריתמי הצפנה/אימות של ESP שיש להשתמש בהם עבור החיבור. ניתן להוסיף רשימה מופרדת בפסיקים.
- aggressive – מציין האם להשתמש במצב Aggressive או Main Mode.
- keyingtries – מציין את מספר הניסיונות שצריך לבצע כדי לממש חיבור.
- ikelifetime – מציין כמה זמן עליית המפתח של חיבור צריך להישאר לפני שינוי.
- lifetime – מגדיר כמה זמן חיבור מסוים צריך להישאר, מניגוש מוצלח עד תפוגה.
- dpddelay – מציין את מרווח הזמן בו הודעות R_U_THERE/החלפות מידע נשלחות לעמית.
- dpdtimeout – מציין את מרווח הזמן לאחריו כל החיבורים לעמית נמחקים במקרה של לא פעילות.
- dpdaction – מגדיר איך להשתמש בפרוטוקול זיהוי עמית מתים (DPD) כדי לנהל את החיבור.
למידע נוסף על פרמטרי התצורה הנ"ל, קרא את עמוד המדריך של ipsec.conf על ידי הרצת הפקודה.
$ man ipsec.conf
שלב 4: הגדרת PSK לאימות עמית-אל-עמית
8. לאחר הגדרת שני שערי האבטחה, צור מפתח PSK מאובטח לשימוש על ידי העמיתים באמצעות הפקודה הבאה.
$ head -c 24 /dev/urandom | base64

טב. לאחר מכן, הוסף את ה-PSK בקובץ /etc/ipsec.secrets בשני השערים.
$ sudo vim /etc/ipsec.secrets
העתק והדבק את השורה הבאה.
------- Site 1 Gateway (tecmint-devgateway) ------- 10.20.20.1 10.20.20.3 : PSK "qLGLTVQOfqvGLsWP75FEtLGtwN3Hu0ku6C5HItKo6ac=" ------- Site 2 Gateway (tecmint-prodgateway) ------- 10.20.20.3 10.20.20.1 : PSK "qLGLTVQOfqvGLsWP75FEtLGtwN3Hu0ku6C5HItKo6ac="
י'. הפעל מחדש את תוכנת IPSec ובדוק את המעמד שלה כדי לראות את החיבורים.
$ sudo ipsec restart $ sudo ipsec status

יא'. לבסוף, וודא שאתה יכול לגשת לתתי-רשתות הפרטיות משני השערי ביטחון על ידי הרצת פקודת ping.
$ ping 192.168.0.101 $ ping 10.0.2.15

יב'. בנוסף, אתה יכול לעצור ולהתחיל את IPSec כפי שמוצג.
$ sudo ipsec stop $ sudo ipsec start
יג'. כדי למצוא עוד על פקודות IPSec להפעלת חיבורים ידניות ועוד, ראה את עמוד העזרה של IPSec.
$ ipsec --help
זהו! במאמר זה, תיארנו כיצד להגדיר VPN ש
Source:
https://www.tecmint.com/setup-ipsec-vpn-with-strongswan-on-debian-ubuntu/