תארו לעצמכם: 50 עובדים עובדים מרחוק, אבל הרשת הארגונית בנויה על OpenVPN — היא איטית, הלקוחות מתנתקים כל הזמן, והרישיונות עולים כסף. הפתרון הוא WireGuard. אנו פורסים שרתי VPN של WireGuard לגישה מרחוק מאובטחת לתשתית הארגונית. במשך יותר מ-5 שנים, השלמנו פרויקטים עבור יותר מ-50 חברות, מסטארטאפים ועד ארגונים עם מאות עובדים. WireGuard הוא פרוטוקול מודרני המובנה בליבת לינוקס, שעולה על OpenVPN ו-IPSec גם בביצועים וגם בפשטות.
למה אנחנו בוחרים ב-WireGuard על פני VPN מיושנים
המהנדסים שלנו עברו ל-WireGuard מזמן. הסיבה היא קוד המקור: כ-4000 שורות לעומת 400,000 עבור OpenVPN. זה לא רק משפר את האבטחה (משטח תקיפה קטן יותר) אלא גם את המהירות. WireGuard פועל במרחב הליבה, משתמש ב-ChaCha20-Poly1305 וב-Curve25519 — על שרתים מודרניים הוא מספק עד 2 Gbps לכל ליבה. לשם השוואה: OpenVPN על אותם משאבים מניב כ-300 Mbps. התוצאה: משתמשים לא שמים לב לעיכובים בעבודה עם 1C, Bitrix24 או אחסון קבצים. החיסכון ברישיונות VPN מסחריים מגיע ל-70%.
איך אנחנו מקימים שרת WireGuard VPN במפתח מלא
התקנה ויצירת מפתחות
# Ubuntu 20.04+, Debian 11+ apt install wireguard
# Генерация ключей сервера
wg genkey | tee /etc/wireguard/server.key | wg pubkey > /etc/wireguard/server.pub
chmod 600 /etc/wireguard/server.key
# Ключи для первого клиента
wg genkey | tee /etc/wireguard/client1.key | wg pubkey > /etc/wireguard/client1.pub
תצורת שרת
# /etc/wireguard/wg0.conf
[Interface]
Address = 10.10.0.1/24
ListenPort = 51820
PrivateKey = <содержимое server.key>
# Включить форвардинг и NAT для клиентов (если нужен выход в интернет)
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o ens3 -j MASQUERADE
# Клиент 1
[Peer]
PublicKey = <содержимое client1.pub>
AllowedIPs = 10.10.0.2/32
# Клиент 2
[Peer]
PublicKey = <содержимое client2.pub>
AllowedIPs = 10.10.0.3/32
# Включить IP forwarding
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.d/99-wg.conf
sysctl -p /etc/sysctl.d/99-wg.conf
# Поднять интерфейс и добавить в автозапуск
systemctl enable --now wg-quick@wg0 תצורת לקוח
# /etc/wireguard/wg0.conf (на клиенте)
[Interface]
Address = 10.10.0.2/32
PrivateKey = <содержимое client1.key>
DNS = 10.10.0.1 # DNS через VPN (опционально)
[Peer]
PublicKey = <содержимое server.pub>
Endpoint = vpn.example.com:51820
AllowedIPs = 0.0.0.0/0 # Весь трафик через VPN
# Или только корпоративная подсеть:
# AllowedIPs = 10.0.0.0/8, 172.16.0.0/12
PersistentKeepalive = 25 # Держать NAT-отверстие открытым
# Ubuntu 20.04+, Debian 11+ apt install wireguard # Генерация ключей сервера wg genkey | tee /etc/wireguard/server.key | wg pubkey > /etc/wireguard/server.pub chmod 600 /etc/wireguard/server.key # Ключи для первого клиента wg genkey | tee /etc/wireguard/client1.key | wg pubkey > /etc/wireguard/client1.pub חשוב ללקוחות מאחורי NAT (מחשבים ניידים, מכשירים ניידים). בלעדיו, החיבור נופל בזמן חוסר פעילות — רשומת ה-NAT פגה.
ניהול עמיתים ללא הפעלה מחדש
# Добавить нового клиента на лету
wg set wg0 peer <pubkey-нового-клиента> allowed-ips 10.10.0.10/32
# Сохранить изменения в конфиг
wg-quick save wg0
# Удалить клиента
wg set wg0 peer <pubkey> remove
# Статус всех подключений
wg show# /etc/wireguard/wg0.conf [Interface] Address = 10.10.0.1/24 ListenPort = 51820 PrivateKey = <содержимое server.key> # Включить форвардинг и NAT для клиентов (если нужен выход в интернет) PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o ens3 -j MASQUERADE # Клиент 1 [Peer] PublicKey = <содержимое client1.pub> AllowedIPs = 10.10.0.2/32 # Клиент 2 [Peer] PublicKey = <содержимое client2.pub> AllowedIPs = 10.10.0.3/32 מציג את זמן לחיצת היד האחרונה עבור כל עמית — נוח לראות מי מחובר כרגע.
איך להפוך פריסת לקוחות WireGuard המונית לאוטומטית
אנו משתמשים בסקריפטים ליצירת תצורות מתבניות. עבור מאה עובדים, אנו מכינים playbook של Ansible: הוא יוצר מפתחות, מרכיב תצורות ושולח אותן בדוא"ל או בפורטל הארגוני. התהליך:
- מלאי — רשימת עובדים עם תת-הרשתות שלהם.
- יצירת מפתחות —
# Включить IP forwarding echo "net.ipv4.ip_forward=1" >> /etc/sysctl.d/99-wg.conf sysctl -p /etc/sysctl.d/99-wg.conf # Поднять интерфейс и добавить в автозапуск systemctl enable --now wg-quick@wg0. - הרכבת תצורה — החלפת המפתח הציבורי של השרת והמפתח הפרטי של הלקוח בתבנית.
- הפצה — דרך מאגר Git פנימי או סקריפט הפצה.
זה מצמצם פעולות ידניות למינימום ומבטל שגיאות בהעתקת מפתחות. אנו מאחסנים תצורות ב-Git, מה שמאפשר מעקב אחר שינויים וחזרה לאחור במקרה של שגיאות — למעשה GitOps עבור VPN. לשילוב עם Active Directory, אנו משתמשים בסקריפטים שיוצרים מפתחות על בסיס קבוצות משתמשים.
איך לנטר WireGuard דרך Prometheus?
לאיסוף מדדים, אנו משתמשים ב-# /etc/wireguard/wg0.conf (на клиенте) [Interface] Address = 10.10.0.2/32 PrivateKey = <содержимое client1.key> DNS = 10.10.0.1 # DNS через VPN (опционально) [Peer] PublicKey = <содержимое server.pub> Endpoint = vpn.example.com:51820 AllowedIPs = 0.0.0.0/0 # Весь трафик через VPN # Или только корпоративная подсеть: # AllowedIPs = 10.0.0.0/8, 172.16.0.0/12 PersistentKeepalive = 25 # Держать NAT-отверстие открытым . הוא מייצא את מספר העמיתים, הנתונים שהועברו וזמן לחיצת היד האחרונה. ב-Grafana, אנו מגדירים לוח מחוונים: עמיתים ירוקים (לחיצת יד < 2 דקות), צהובים (2–5 דקות), אדומים (>5 דקות). זה מספק נראות מיידית של מצב ה-VPN. אנו מגדירים את Alertmanager על בסיס SLO: אם לחיצת יד לא התרחשה תוך 2 דקות, נשלחת התראה; ה-MTTR מצטמצם ל-5 דקות הודות ל-runbook מוכן. אם אתם צריכים ניטור VPN, צרו קשר — אנו נקים Prometheus ו-Grafana למשימות שלכם.
בעיות נפוצות והפתרונות שלהן
לקוחות מאחורי NAT מאבדים חיבור — הוסיפו PersistentKeepalive = 25 ובדקו את שרשרת iptables FORWARD. מהירות איטית בנפחים גדולים — אנו ממליצים להגדיר MTU ל-1420 ולבדוק עומס CPU על השרת. התנגשות תת-רשת — אם הרשת הארגונית משתמשת ב-10.0.0.0/8, החליפו את רשת ה-VPN לאחרת, למשל 172.16.0.0/12. עבור Kubernetes, אנו משתמשים ב-containers צדדיים של WireGuard לגישה מאובטחת לשרת ה-API.
מה כלול בהתקנת WireGuard
| רכיב | תיאור |
|---|---|
| בדיקת רשת נוכחית | בדיקת ניתוב, חומת אש, NAT — ביטול התנגשויות |
| התקנה ותצורת שרת | WireGuard, העברת מנות, חומת אש, הפעלה אוטומטית |
| יצירת מפתחות וסקריפטים | ליצירת לקוחות המונית (מאות עובדים) |
| תצורות לקוח | הגדרה לכל המכשירים: Linux, Windows, macOS, Android, iOS |
| תיעוד והדרכה | הוראות למשתמשים ומנהלים, runbook לתמיכה |
| ניטור והתראות | Prometheus + Grafana + Alertmanager (אופציונלי) |
| אחריות ביצועים | בדיקת קישוריות, בדיקות מהירות, ניטור דרך Prometheus |
אנו מעריכים את הפרויקט ביום עסקים אחד. לוחות זמנים: משעתיים עד יומיים בהתאם להיקף. הזמינו ייעוץ — מהנדס ינתח את התשתית שלכם ויציע את הפתרון האופטימלי.
לוחות זמנים
| משימה | זמן |
|---|---|
| שרת + כמה לקוחות | 2–4 שעות |
| חלק שרת + סקריפטים ליצירת לקוחות | 4–8 שעות |
התמחור מחושב באופן אישי לאחר בדיקת תשתית. קבלו ייעוץ — נשלח לכם הערכה מדויקת.







