איך להגדיר את שרת ה-VPN של OpenConnect

יש לך רשת פרטית וירטואלית (VPN) זה חיוני בעידן הטכנולוגיה הנוכחי. VPNs הפכו חשובים יותר ויותר לשימוש אישי ובמיוחד לעסקים ולמוסדות. ואם עדיין אתה עושה החלטה בנוגע לפתרון ה-VPN שבו להמר, למה לא לשקול את OpenConnect VPN?

OpenConnect VPN הוא פתרון VPN חינמי עם ביצועים ותכונות ברמת עסקים. ובמדריך זה, תלמד כיצד להתקין ולהתחבר לשרת VPN של OpenConnect (ocserv).

המשך הקריאה ותשמור על רשת שלך מישויות רשעות!

דרישות מוקדמות

מדריך זה כולל הדגמות מעשיות. כדי להמשיך, ודא שיש לך את הדברים הבאים במקום:

  • A Linux server running Debian- This tutorial uses a Debian 11 Bullseye with hostname ocserv-debian.
  • משתמש מנהל או משתמש לא שורש עם הרשאות sudo/root.
  • A domain name pointed to your Linux server IP address – This tutorial uses a domain name vpn.atadomain.io.
  • A client machine like Windows 10 or Linux Desktop – This tutorial uses a Windows 10 machine.

התקנת שרת VPN של OpenConnect

שרת VPN של OpenConnect הוא שרת VPN מבוסס SSL קוד פתוח ל-Linux, זמין על רוב ההפצות של Linux, כגון Debian, Ubuntu, RHEL/CentOS ו-Fedora.

שרת VPN של OpenConnect תומך ברוב הלקוחות מהמחשב הנייח/המחשב לנייד (Android ו-iOS). באופן דומה, שרת VPN של OpenConnect תומך ברקעי אימות מרובים, כגון Radius, OpenID, Kerberos וכרטיס חכם.

אך לפני שתוכל להנות מהתכונות הללו, עליך להתקין תחילה את שרת ה-VPN של OpenConnect, כדלקמן:

1. עשה SSH אל השרת שלך והרץ את הפקודה הבאה apt update כדי לעדכן ולרענן את אינדקס החבילות. פקודה זו מבטיחה שיש לך את מידע החבילות העדכני.

sudo apt update
Updating the package repository

2. לאחר מכן, הרץ את הפקודה הבאה apt install כדי להתקין את החבילה ocserv.

sudo apt install ocserv -y

כאשר ההתקנה הושלמה, השירות החדש של systemd בשם ocserv יהיה מופעל ו

Installing the OpenConnect VPN Server

3. כעת, הרץ את הפקודות של systemctl הבאות כדי לוודא כי השירות ocserv פועל.

# בדיקה שהשירות ocserv מופעל
sudo systemctl is-enabled ocserv
# בדיקה שהשירות ocserv רץ
sudo systemctl status ocserv

כפי שניתן לראות מהפלט, מצב השירות ocserv הוא מופעל ופועל.

Verifying the ocserv service is enabled and running

יצירת תעודות SSL/TLS

עם התקנת שרת ה-VPN של OpenConnect, השלב הבא הוא לוודא שניתן לך להתחבר באופן מאובטח לשרת VPN של OpenConnect. איך? הצעד הראשון הוא ליצור תעודות SSL/TLS דרך Certbot ו־LetsEncrypt.

אבל לפני שתפיק תעודות, ודא כי יש לך כתובת דוא"ל להירשם ל-LetsEncrypt, וששם הדומיין מצביע לכתובת ה-IP של שרת Debian.

ליצירת תעודות SSL/TLS:

1. הפעל את הפקודה למטה כדי להתקין את ה־certbot בשרת ה-Linux שלך.

sudo apt install certbot -y
Installing Certbot

2. לאחר מכן, הפעל את הפקודה certbot ליצירת תעודות SSL/TLS. וודא שאתה משנה את כתובת הדוא"ל ([email protected]) ושם הדומיין (vpn.atadomain.io) לפי הצורך.

sudo certbot certonly --standalone --preferred-challenges http --agree-tos --no-eff --email [email protected] -d vpn.atadomain.io
Generating SSL/TLS certificates from LetsEncrypt

3. לבסוף, הפעל את הפקודה הבאה כדי לוודא שהתעודות SSL/TLS שנוצרו קיימות בספריית הדומיין שלך.

ls /etc/letsencrypt/live/vpn.atadomain.io

אם הפעולה הצליחה, תראה את המפתחות הציבוריים (fullchain.pem) והפרטיים (privkey.pem), כפי שמוצג למטה.

Verifying the SSL/TLS certificates exist

הגדרת שרת VPN OpenConnect

אפילו עם תעודות ה-SSL/TSL ברשותך, הן יישארו שם עד שתגדיר את שרת ה-VPN OpenConnect. עליך לשנות את ההגדרות ברירת המחדל של שרת ה-VPN OpenConnect (/etc/ocserv/ocserv.conf) כדלקמן:

  • שנה את שיטת האימות ברירת המחדל.
  • בטל את ה-UDP בשרת ה-VPN OpenConnect.
  • שנה את תעודות ה-SSL/TLS ברירת המחדל.
  • הגדרת שם דומיין ורשת פנימית או כתובת IP פנימית ללקוחות.

כדי להגדיר את שרת ה-VPN OpenConnect, עקוב אחר השלבים למטה:

1. ראשית, הפעל את הפקודה cp לעיל כדי לגבות את התצורה המוגדרת כברירת מחדל של שרת OpenConnect VPN (ocserv.conf) לקובץ בשם ocserv.conf.orig המאוחסן בתיקיית /etc/ocserv.

sudo cp /etc/ocserv/ocserv.conf /etc/ocserv/ocserv.conf.orig

2. לאחר מכן, פתח את קובץ התצורה של שרת OpenConnect VPN (/etc/ocserv/ocserv.conf) בעזרת העורך שאתה מעדיף.

3. שנה את ערך הפרמטר auth לערך plain[passwd=/etc/ocserv/ocpasswd], כפי שמוצג למטה. על ידי כך, תחליף את האימות המוגדר כברירת מחדל של מודולי האימות הניתנים להחלפה (PAM) עם קובץ הסיסמאות.

auth = "plain[passwd=/etc/ocserv/ocpasswd]"
Changing the default authentication to a password file

4. כעת, הוסף את התו # לפני הפרמטר udp-port כדי לנטרל את החיבורים המוגדרים כברירת מחדל של UDP.

תשתמש ב-OpenConnect VPN במצב TCP בלבד, אשר תוכל להגביר את המהירות דרך פרמטרי הקרנל.

tcp-port = 443
#udp-port = 443
Disabling the UDP support

5. החלף את נתיב קובץ האישור בפרמטר server-cert עם המפתח הציבורי ואת הפרמטר server-key עם המפתח הפרטי.

server-cert = /etc/letsencrypt/live/vpn.atadomain.io/fullchain.pem
server-key = /etc/letsencrypt/live/vpn.atadomain.io/privkey.pem
Changing the SSL/TLS certificate files path

6. שנה את ערך הפרמטר try-mtu-discovery ל־true כדי לאפשר את גילוי ה-MTU. פעולה זו מגבירה את המהירות והביצועים של שרת ה-OpenConnect VPN.

try-mtu-discovery = true
Enabling MTU discovery

7. לאחר מכן, הזן את שם הדומיין של שרת ה-OpenConnect VPN לפרמטר default-domain, ושנה את כתובת ה-IP הפנימית הברירתית בפרמטר ipv4-network.

בדוגמא זו, לקוחות VPN ישתמשו ברשת הפנימית 10.11.0.0/24.

default-domain = vpn.atadomain.io
ipv4-network = 10.11.0.0
Setting up the default domain and internal network for VPN clients

8. הסתר את פרמטרי ה-route ברירת המחדל על ידי הוספת תו # בתחילת כל שורה כדי לבטל את השער המחדל. לאחר הסיום, שמור את הקובץ וצא מהעורך.


#route = 10.0.0.0/8

#route = 172.16.0.0/12

#route = 192.168.0.0/16

#route = fd00::/8

#route = default
Disabling the default route gateway

9. כעת, הפעל את הפקודות הבאות כדי ל־אתחול מחדש של שירות ה־ocserv, להחיל את השינויים, ולרשום את כל הפורטים הפתוחים (ss) במערכת שלך.


# אתחול מחדש של שירות ה־ocserv והחילות השינויים

sudo systemctl restart ocserv

# רשום את כל הפורטים הפתוחים

ss -tulpn | grep ocserv

אם שרת ה-OpenConnect VPN פועל, תראה את הפורט 443 במצב LISTEN ובשימוש על ידי שירות ה־ocserv, כפי שמוצג למטה.

Checking the ocserv port

הוספת משתמשים לשרת ה-OpenConnect VPN

עם שרת ה-OpenConnect VPN מוגדר, יש לך דרך להתחבר אליו. איך? על ידי יצירה והוספה של משתמש VPN לשרת ה-OpenConnect VPN.

להוסיף משתמש לשרת OpenConnect VPN, עליך ליצור משתמש VPN וליצור קובץ סיסמא דרך הכלי ocpasswd כדלקמנו:

הרץ את הפקודה ocpasswd למטה כדי ליצור משתמש חדש. כאשר מתבקש, הזן סיסמא חדשה למשתמש וחזור על התהליך. במדריך זה, בחרנו לשם המשתמש atauser, אך ניתן לספק שם משתמש משלך.

לאחר יצירת המשתמש, הקובץ סיסמא (/etc/ocserv/ocpasswd) יוצר גם הוא.

sudo ocpasswd -c /etc/ocserv/ocpasswd atauser
Creating an OpenConnect user

עכשיו, הרץ את הפקודה הבאה cat כדי לבדוק את פרטי קובץ הסיסמא (/etc/ocserv/ocpasswd).

cat /etc/ocserv/ocpasswd
Checking the password file’s details

הוספת חוקי גישת חומת האש UFW לפתיחת יציאות חיוניות

במערכת Debian, הגישה לחומת האש המוגדרת כברירת המחדל היא IPTables, אשר מחייבת הבנה מעמיקה של תקשורת רשת להתקנה. למה לא לפשט את התהליך? במדריך זה, תתקין ותגדיר את UFW כחומת האש המוגדרת כברירת המחדל.

1. הרץ את הפקודה למטה כדי להתקין את UFW תוך קבלת כל הבקשות באופן אוטומטי (-y)

sudo apt install ufw -y
Installing UFW

2. לאחר שהתקנת UFW, הרץ את הפקודות ufw הבאות כדי לפתוח יציאות חיוניות עבור שרת OpenConnect VPN כדי שהוא יעבוד תקין.

# הוסף את שירות ה-OpenSSH הרץ על פורט 22.
sudo ufw allow OpenSSH
# הוסף את הפורט 80 לצורך חידוש תעודות LetsEncrypt, 
# ואת הפורט 443 לשימוש של שרת VPN OpenConnect.
sudo ufw allow 80,443/tcp
# הפעל ואפשר את UFW.
sudo ufw enable

כאשר תתבקש, הכנס Y והקש Enter כדי להמשיך עם הפעולה, כפי שמוצג למטה.

Adding firewall rules to open ports

3. לבסוף, הרץ את הפקודה הבאה כדי לבדוק את מצב ה-UFW ולוודא ש-UFW רץ.

sudo ufw status

הפלט למטה מציג את מצב ה-UFW הפעיל, ואת כל החוקים של הגישה האש שנוספו.

Checking the UFW status and listing all firewall rules

הפעלת הכיוון של פורטים

עם שרת VPN רץ, עליך להפנות תעבורה מהעולם החיצוני לשרת שלך על ידי הפעלת כיוון פורטים. עליך לאפשר כיוון פורטים בשרת Debian שלך דרך פרמטרי הקרנל.

כדי להפעיל כיוון פורטים, עקוב אחר השלבים הבאים:

הרץ את הפקודה הבאה, שאינה מפיקה פלט לטרמינל, אלא יוצרת קובץ חדש בשם /etc/sysctl.d/60-ocserv.conf. הקובץ מכיל פרמטרי קרנל להפעלת כיוון פורטים במערכת שלך.

cat > /etc/sysctl.d/60-ocserv.conf << EOF
net.ipv4.ip_forward = 1
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr
EOF

עכשיו, הפעל את הפקודה sysctl להחיל את פרמטרי הקרנל החדשים ולאפשר כיוון פורטים.

sudo sysctl -p /etc/sysctl.d/60-ocserv.conf
Enabling port forwarding

הגדרת NAT עם UFW

הפעלת כיוון פורטים היא רק אחת מהשלבים הראשונים הזהים. הפעם, עליך לוודא שלקוחות VPN יכולים להתחבר לאינטרנט או לרשתות ספציפיות דרך שרת VPN OpenConnect. כיצד? על ידי הגדרת NAT דרך UFW.

להגדיר NAT עם UFW עבור שרת OpenConnect VPN:

1. הפעל את הפקודה הבאה כדי לבדוק את רשימת הממשקים במערכת שלך.

ip a

בדוגמא זו, ממשק ה-eth1 יהיה שער ה-NAT עבור לקוחות ה-VPN.

Checking available interfaces

2. לאחר מכן, פתח את קובץ התצורה של UFW (/etc/ufw/before.rules) בעזרת העורך שאתה מעדיף שלך, והוסף את השורות הבאות לפני האפשרות *filter. תצורות אלו י-NAT את משתמשי ה-VPN (ציין ממשק יוצא) או הרשת הפנימית לממשק eth1.

ודא שאתה משנה את התת-רשת (10.11.0.0/24) עם רשת הלקוחות שלך ב-VPN והממשק (eth1) עם ממשק הרשת שלך.

# NAT עבור שרת OpenConnect VPN
# עם רשת לקוחות 10.11.0.0/24
# לממשק eth1
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.11.0.0/24 -o eth1 -j MASQUERADE
COMMIT
Configuring NAT via UFW

3. הוסף את השורות הבאות מתחת לחלק ok icmp code for FORWARD של האפשרויות של ufw-before-forward, שמור את הקובץ וצא מהעורך.

תצורות אלו מאפשרות הובלה (מקור ויעד) של רשת לקוחות ה-VPN.

# לאפשר הובלה של רשת לקוחות VPN
-A ufw-before-forward -s 10.11.0.0/24 -j ACCEPT
-A ufw-before-forward -d 10.11.0.0/24 -j ACCEPT
Enabling forwarding for VPN client network

4. לאחר שנשמר, הפעל את הפקודה הבאה כדי לטעון מחדש את כללי UFW ולאתחל את שירות UFW. פעולה זו מבטיחה שתצורת NAT תיושם על המערכת.

sudo ufw reload
sudo systemctl restart ufw

5. לבסוף, הפעל את הפקודה הבאה של iptables כדי לבדוק את מצב ה-NAT ב-UFW מאחר שהבקאנד של UFW הוא IPTables.

sudo iptables -t nat -L POSTROUTING

כאשר יש צלחה, תקבל פלט דומה לזה למטה.

התחברות לשרת OpenConnect VPN דרך OpenConnect-GUI

המעקב אחרי ההוראות צריך להביאך לשרת OpenConnect VPN הפועל באופן מלא. אך לאחר כל המאמץ, הרגע של האמת הגיע.

השרת של OpenConnect VPN יכול להיות פעיל, אך יש רק דרך אחת הטובה ביותר לוודא – להתחבר לשרת OpenConnect VPN.

כדי להתחבר לשרת OpenConnect VPN, עליך להתקין את אפליקציית OpenConnect-GUI:

1. פתח את הדפדפן המועדף עליך ובקר בעמוד GitHub של OpenConnect-GUI.

2. לאחר מכן, הורד והתקן את אפליקציית OpenConnect VPN למערכת ההפעלה שלך.

Downloading the OpenConnect VPN application for Windows

3. פתח את לקוח ה-OpenConnect-GUI VPN ולחץ על התפריט FileProfilesNew profile (advanced) (או הקש Ctrl+Shift+N). חלון קטן יופיע שבו תוכל למלא את פרטי הפרופיל החדש (שלב רביעי).

Creating a new VPN profile

4. כעת, מלא את פרטי הפרופיל VPN עם המידע הבא:

  • Name – ספק שם חיבור (לדוגמה, testvpn).
  • Gateway – ציין את שם הדומיין של השרת OpenConnect VPN שלך (לדוגמה, https://vpn.atadomain.io).
  • Username – המשתמש התווסף (atauser) לשרת OpenConnect VPN.

לאחר מילוי, לחץ על שמירה כדי לאשר את המידע וליצור את פרופיל ה-VPN.

Configuring the new VPN profile

5. לְבַצֵע זאת, הגדר את פרופיל ה-VPN שנוצר לאחרונה שלך (testvpn) כשרת, ולחץ על התחברות כדי להקים חיבור לשרת VPN של OpenConnect.

Connecting to the OpenConnect VPN Server

6. כאשר תתבקש, הזן את סיסמת ה-VPN שלך ולחץ על אישור.

Authenticating the connection to the OpenConnect VPN Server

7. לאחר התחברות, צבע המנעול משתנה לירוק, כפי שמוצג למטה.

Confirming successful connection to the OpenConnect VPN Server

8. לבסוף, לחץ על לשונית מידע על ה-VPN כדי לקבל מידע מפורט על מצב החיבור. אתה צריך לראות את כתובת ה-IP הפנימית שקיבלת משרת ה-VPN, שרת ה-DNS, וגרסת ה-TLS שאתה משתמש בה.

Checking the VPN connection details

סיכום

במהלך המדריך הזה, למדת להקים את שרת ה-VPN של OpenConnect. במקביל, למדת להשתמש בתעודות SSL/TSL ולהוסיף כללי חומה כדי להקים חיבור מאובטח לשרת ה-VPN של OpenConnect.

עם הידע החדש שזכית, למה לא לשלב את שרת ה-VPN של OpenConnect עם מספר מאמרי אימות, כגון רדיוס ו־OpenID? או להוסיף שכבת אבטחה נוספת לאימות לקוח באמצעות אימות דו־שלבי?

Source:
https://adamtheautomator.com/openconnect-vpn/