מאגר המידע הוראות פשוטות לעבודה עם שירות Profitserver
ראשי מאגר המידע הגדרת שרת VPN בלינוקס: PPTP או OpenVPN?

הגדרת שרת VPN בלינוקס: PPTP או OpenVPN?


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

כדי להפעיל את oun VPN שלך, אתה צריך לשכור שרת VPS. יש תוכנות שונות המאפשרות לך ליצור חיבור VPN. זה שונה זה מזה על ידי מערכות ההפעלה הנתמכות והאלגוריתמים בשימוש. נסתכל על שתי גישות עצמאיות להקמת שרת VPN. הראשון מבוסס על פרוטוקול PPTP שכבר נחשב מיושן ולא מאובטח אבל ממש קל להגדיר אותו. השני משתמש בתוכנה מודרנית ומאובטחת OpenVPN אך דורש התקנת אפליקציית לקוח של צד שלישי ותהליך הגדרה יסודי יותר.

בסביבת הבדיקה שלנו, אנו הולכים להשתמש בשרת וירטואלי המופעל על ידי Ubuntu Server 18.04. חומת אש עומדת להיות כבויה בשרת כי התצורה שלה ראויה למאמר נפרד. נתאר את תהליך ההתקנה ב-Windows 10.

הכנה

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

כדי להפעיל העברת מנות פתח את הקובץ "/etc/sysctl.conf" ולשנות "net.ipv4.ip_forward" ערך פרמטר לתוך 1.

הפעל העברת מנות להגדרת VPN

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

sudo sysctl -p /etc/sysctl.conf

תרגום כתובת רשת מוגדר באמצעות iptables. ראשית, בדוק את השם של ממשק הרשת החיצוני שלך המריץ את הפקודה "הצגה של קישור ip" - תזדקק לזה בשלב הבא. השם שלנו הוא "ens3".

הצגת קישור ל- ip

אפשר תרגום כתובות רשת בממשק החיצוני שלך עבור כל צמתי הרשת המקומית.

sudo iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE

שימו לב שאתם צריכים לציין את השם האמיתי של הממשק של השרת שלכם, הוא יכול להיות שונה משלנו.

כברירת מחדל, כל הכללים שנוצרו על ידי iptables מאופסים לאחר הפעלה מחדש של השרת. על מנת למנוע זאת, השתמש "Iptables-persistent" תוֹעֶלֶת. התקן את החבילה הבאה:

sudo apt install iptables-persistent

בשלב מסוים במהלך תהליך ההתקנה, תראה חלון תצורה שיציע לך לשמור את כללי iptables הנוכחיים. מכיוון שהכללים כבר מוגדרים, פשוט אשר ולחץ "כן" פַּעֲמַיִם. מאז, הכללים יחולו אוטומטית לאחר הפעלה מחדש של השרת.

הפעל את תרגום הכתובות

שרת PPTP

תצורת שרת

התקן את החבילה:

sudo apt install pptpd

לאחר סיום ההתקנה, פתח את הקובץ "/etc/pptpd.conf" בכל עורך טקסט וערוך אותו כך:

option /etc/ppp/pptpd-options #path to the settings file
logwtmp #client connections logging mechanism
connections 100 #number of simultaneous connections
localip 172.16.0.1 #the address that will serve as a client gateway
remoteip 172.16.0.2-200 #range of addresses

לאחר מכן, ערוך את הקובץ "/etc/ppp/pptpd-options". רוב הפרמטרים מוגדרים כברירת מחדל.

#name of the service for new client records
name pptpd
#restrict obsolete authentication methods
refuse-pap
refuse-chap
refuse-mschap
#allow a more secure authentication method
require-mschap-v2
#enable encryption
require-mppe-128
#specify dns servers for clients (use any available servers)
ms-dns 8.8.8.8
ms-dns 8.8.4.4
proxyarp
nodefaultroute
lock
nobsdcomp
novj
novjccomp
nologfd

בשלב הבא, יהיה עליך ליצור רשומה עבור חיבורי לקוחות. נניח שאתה רוצה להוסיף משתמש "vpnuser" עם סיסמה "1" ולאפשר פנייה דינמית עבורו. פתח את הקובץ "/etc/ppp/chap-secrets" והוסיפו את השורה הבאה עם הפרמטרים של המשתמש בסוף הקובץ:

vpnuser pptpd 1 *

"pptpd" value הוא שם השירות שציינו בקובץ "pptpd-Options". במקום "*" אתה יכול לציין כתובת IP קבועה. בתוצאה, הקובץ "סודות-צ'אפ" צריך להיראות כך:

הגדרת שרת VPN

כדי להחיל את ההגדרות אפס את pptpd שירות ולהוסיף אותו לטעינה אוטומטית.

sudo systemctl restart pptpd
sudo systemctl enable pptpd

תצורת השרת הסתיימה.

תצורת לקוח

להרחיב "התחל" - "הגדרות" - רשת ואינטרנט - "VPN" ולחץ על "הוסף חיבור VPN"

הגדר לקוח לחיבור VPN

הזן את פרמטרי החיבור בחלון שנפתח ולחץ "להציל"

  • ספק VPN: "Windows (מובנה)"
  • שם חיבור: "vpn_connect" (אתה יכול לבחור כל שם)
  • שם או כתובת שרת: (ציין את כתובת ה-IP החיצונית של השרת)
  • סוג VPN: "אוטומטי"
  • סוג פרטי הכניסה: "שם משתמש וסיסמה"
  • שם משתמש: vpnuser (שם צוין בקובץ "chap-secrets" בשרת)
  • סיסמה: 1 (כמו בקובץ "סודות הצ'אפ")

לאחר שמירת הפרמטרים, תראה את חיבור ה-VPN החדש בחלון. לחץ לחיצה ימנית על החיבור ובחר "חבר". במקרה של חיבור מוצלח, תראה "מְחוּבָּר" מעמד.

הוספת חיבור VPN

באפשרויות תמצאו כתובות פנימיות של הלקוח ושל השרת. שָׂדֶה "כתובת היעד" מציג את כתובת השרת החיצוני.

כיצד להגדיר שרת VPN בעצמך

כאשר מחובר, כתובת ה-IP הפנימית של השרת, 172.16.0.1 במקרה שלנו, הופך לשער ברירת המחדל עבור כל החבילות היוצאות.

בדוק כתובת IP חיצונית

באמצעות כל שירות מקוון אתה יכול לוודא שכתובת ה-IP החיצונית של המחשב זהה כעת לכתובת ה-IP של שרת ה-VPN שלך.

שרת OpenVPN

תצורת שרת

בואו נקדם את רמת ההרשאות של המשתמש הנוכחי מכיוון שלצורך ההגדרה הנוספת שלנו נצטרך גישת שורש.

sudo -s

התקן את כל החבילות הדרושות. נצטרך "קל-RSA" מנה לניהול מפתחות הצפנה.

apt install openvpn easy-rsa iptables-persistent

אפשר חיבורים נכנסים בפורט 1194 דרך פרוטוקול UDP והחיל את כללי iptables.

sudo iptables -I INPUT -p udp --dport 1194 -j ACCEPT

sudo netfilter-persistent save

צור ספרייה עם קבצים שהועתקו מחבילת "Easy-RSA" ונווט לתוכה.

make-cadir ~/openvpn

cd ~/openvpn

יצירת תשתית מפתח ציבורי (PKI).

./easyrsa init-pki

צור את אישור הבסיס של רשות האישורים (CA).

./easyrsa build-ca

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

צור מפתח פרטי ובקשת אישור. כארגומנט, ציין שם שרירותי; במקרה שלנו, זה "vpn-server".

./easyrsa gen-req vpn-server nopass

השאר את הערך 'שם נפוץ' כברירת מחדל.

חתום על בקשת אישור השרת שנוצרה.

./easyrsa sign-req server vpn-server

בשלב זה, ענה "כן" כדי לאשר את החתימה, לאחר מכן הזן את הסיסמה שנוצרה במהלך יצירת אישור הבסיס.

צור פרמטרים של דיפי-הלמן. פרמטרים אלה משמשים להחלפת מפתחות מאובטחת בין השרת ללקוח.

./easyrsa gen-dh

כל הקבצים הדרושים נוצרו. בואו ניצור תיקייה בשם "keys" בספריית העבודה של OpenVPN כדי לאחסן את המפתחות ולהעתיק לשם את הקבצים שנוצרו.

mkdir /etc/openvpn/keys

sudo cp pki/ca.crt pki/issued/vpn-server.crt pki/private/vpn-server.key pki/dh.pem /etc/openvpn/keys

הגדרת NAT באמצעות iptables כללים. צור קובץ בשם nat ולפתוח אותו לעריכה ב- /etc/openvpn/ במדריך.

#!/bin/sh

# Reset firewall settings
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X

# (eth0 in our case, may vary)
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# (eth0 in our case, may vary)
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT

# Allow OpenVPN connections (eth0 in our case, may vary)
iptables -A INPUT -i eth0 -p udp --dport 1194 -j ACCEPT

iptables -A INPUT -i tun0 -j ACCEPT

# (eth0 in our case, may vary):
iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT

# (eth0 in our case, may vary)
iptables -A FORWARD -i eth0 -o tun0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# Enable masquerading for the local network (eth0 in our case, may vary)
iptables -t nat -A POSTROUTING -o eth0 -s 10.8.0.0/24 -j MASQUERADE

# Deny incoming connections from outside
iptables -A INPUT -i eth0 -j DROP

# Deny transit traffic from outside (eth0 in our case, may vary)
iptables -A FORWARD -i eth0 -o tun0 -j DROP

sudo netfilter-persistent save

שמור את הקובץ והפוך אותו לקובץ הרצה.

sudo chmod 755 /etc/openvpn/nat

העתק את תבנית תצורת השרת.

cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn/

פתח את הקובץ "/etc/openvpn/server.conf" לעריכה, ודא שהוא מכיל את השורות הבאות, וערוך אותן במידת הצורך:

#Port, protocol, and interface

port 1194

proto udp

dev tun
#Path to the encryption keys

ca /etc/openvpn/keys/ca.crt

cert /etc/openvpn/keys/vpn-server.crt

key /etc/openvpn/keys/vpn-server.key

dh /etc/openvpn/keys/dh.pem

#SHA256 Hashing Algorithm

auth SHA256
#Switching off additional encryption

#tls-auth ta.key 0
#Network parameters

server 10.8.0.0 255.255.255.0

ifconfig-pool-persist /var/log/openvpn/ipp.txt

push "redirect-gateway def1 bypass-dhcp"

push "dhcp-option DNS 8.8.8.8"

push "dhcp-option DNS 8.8.4.4"
#Ping every 10 seconds to check the connection.

keepalive 10 120
#Set up AES-256 encryption for the tunnel.

cipher AES-256-GCM
#Demoting the service OpenVPN after launch

user nobody

group nogroup
#Switching on parameters saving after reboot

persist-key

persist-tun
#Set log verbosity

verb 3
#Redirecting logs

log-append /var/log/openvpn/openvpn.log
#Script the rule installation launch.

up /etc/openvpn/nat

הפעל העברת תעבורה בשרת.

sudo sysctl -w net.ipv4.ip_forward=1

echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf

הפעל את OpenVPN כדי להחיל את התצורה.

systemctl restart openvpn@server

תצורת השרת הסתיימה!

תצורת לקוח

עבור לאתר הרשמי של OpenVPN "https://openvpn.net", עבור אל "COMUNITY" סָעִיף.

Заходим на официальный сайт проекта "https://openvpn.net", переходим в раздел "COMUNITY".

גללו למטה והורידו את קובץ ההתקנה עבור גרסת מערכת ההפעלה שלכם. במקרה שלנו, מדובר ב-Windows 11 ARM64.

пролистываем вниз ו- скачиваем инсталлятор для своей версии операционной системы. В нашем случае это Windows 11 ARM64.

התקן את האפליקציה תוך השארת כל הפרמטרים כברירת מחדל.

בשלב הבא תצטרכו להכין את הקובץ הבא בשרת ולהעבירם למחשב הלקוח:

  • מפתחות ציבוריים ופרטיים;
  • עותק של מפתח מרכז האישורים;
  • תבנית קובץ תצורה.

התחבר לשרת, העלה הרשאות ונווט אל הספרייה שיצרנו "~/openvpn".

sudo -s

cd ~/openvpn

צור מפתח פרטי ובקשת אישור עבור הלקוח. כארגומנט, ציין שם שרירותי; במקרה שלנו, זה "client1".

./easyrsa gen-req client1 nopass

הזן את הסיסמה שקבענו בעת יצירת אישור הבסיס והשאר את ערך השם המשותף כברירת מחדל.

Вводим пароль, который мы устанавливали при создании корневого сертификата и оставляем значение שם נפוץ по умол.

חתום על בקשת אישור הלקוח שנוצרה.

./easyrsa sign-req client client1

בשלב זה, ענה "כן" כדי לאשר את החתימה, לאחר מכן הזן את הסיסמה שנוצרה במהלך יצירת אישור הבסיס.

На этом шаге отвечаем "yes" для подтверждения подписи, после чего вводим пароль, который был созандисан пароль сертификата.

לנוחיותנו, בואו ניצור תיקייה בשם 'client1' בתיקיית הבית ונעתיק לתוכה את כל הקבצים המיועדים להעברה למחשב הלקוח.

mkdir ~/client1

cp pki/issued/client1.crt pki/private/client1.key pki/ca.crt ~/client1/

העתק את תבנית קובץ תצורת הלקוח לאותה ספרייה. שנה את סיומת הקובץ ל ".ovpn" תוך כדי העתקה.

cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client1/client.ovpn

שנה את הבעלים של הספרייה וכל הקבצים "~/client1/" כדי להיות מסוגל להפיץ אותם ללקוח. בואו נעשה "מיהאיל" הבעלים במקרה שלנו.

chown -R mihail:mihail ~/client1

עבור אל מחשב הלקוח והעתק את התוכן של "~/client1/" תיקייה. אתה יכול לעשות את זה בעזרת "PSCP" כלי שירות, זה הולך עם Putty.

PSCP -r mihail@[IP_сервера]:/home/mihail/client1 c:\client1

אתה יכול לאחסן קבצי מפתח "ca.crt", "client1.crt", "client1.key" איפה שתרצה. במקרה שלנו, הם נמצאים בתיקייה הזו "c:\Program Files\OpenVPN\keys", ואנו מודדים את קובץ התצורה "client.ovpn" אל "c:\Program Files\OpenVPN\config" במדריך.

כעת נעבור להגדרת הלקוח. פתח את הקובץ "c:\Program Files\OpenVPN\config\client.ovpn" בעורך טקסט וערוך את השורות הבאות:

#announce that this is the client

client
#interface and protocol just like on the server

dev tun

proto udp
#IP address of the server and port

remote ip_address 1194
#saving parameters after reload

persist-key

persist-tun
#key paths

ca “c:\\Program Files\\OpenVPN\\keys\\ca.cert”

cert “c:\\Program Files\\OpenVPN\\keys\\client1.crt”

key “c:\\Program Files\\OpenVPN\\keys\\client1.key”
#enable server verification

remote-cert-tls server
#disable extra encryption

#tls-auth ta.key 1

cipher AES-256-CBC

auth-nocache

verb 3

השאר את השאר ללא פגע.

שמור את הקובץ והפעל את יישום הלקוח "GUI של OpenVPN".

הגדרת ה-VPN הסתיימה

לחץ לחיצה ימנית על סמל האפליקציה בשורת המשימות ובחר "חבר". אם החיבור הצליח הסמל יהפוך לירוק.

השתמש בכל שירות מקוון כדי לוודא שכתובת ה-IP הציבורית שלך השתנתה וכעת היא זהה לכתובת ה-IP של השרת.

❮ מאמר קודם כיצד להגדיר Wireguard VPN בשרת שלך
המאמר הבא ❯ הגדרת שרת FTP

שאל אותנו לגבי VPS

אנחנו תמיד מוכנים לענות על שאלותיכם בכל שעה ביום ובלילה.