الرئيسية قاعدة المعرفة الشبكات والاتصالات الشبكات العملية: VPN وDNS والجدار الناري لربط المصانع بأمان
الشبكات والاتصالات

الشبكات العملية: VPN وDNS والجدار الناري لربط المصانع بأمان

VPN: ربط المصنع بالمكتب بأمان

معدات المصنع غالباً تقع خلف شبكة خاصة لا يمكن الوصول إليها من الخارج. المهندسون يحتاجون الوصول للوحات SCADA وتحديث البرامج الثابتة وفحص السجلات — بدون كشف الأنظمة الصناعية للإنترنت العام.

VPN تنشئ نفقاً مشفراً بين شبكتين. حركة البيانات تتدفق كما لو أن الطرفين على نفس الشبكة المحلية لكن مشفرة من طرف لطرف. الاستخدامات الشائعة تشمل ربط شبكات المصانع بلوحات سحابية، الوصول عن بُعد للمهندسين، ربط مواقع مصانع متعددة، وتأمين اتصالات بوابات Raspberry Pi.

WireGuard: أبسط وأسرع VPN

WireGuard بروتوكول VPN حديث مدمج في نواة Linux. يستخدم أقل من 4,000 سطر كود، مما يجعله أسرع وأبسط من OpenVPN.

التثبيت وتوليد المفاتيح

sudo apt update && sudo apt install -y wireguard
wg genkey | tee /etc/wireguard/private.key | wg pubkey > /etc/wireguard/public.key
chmod 600 /etc/wireguard/private.key

إعداد الخادم (VPS سحابي)

# /etc/wireguard/wg0.conf
[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = <SERVER_PRIVATE_KEY>
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]
PublicKey = <FACTORY_PUBLIC_KEY>
AllowedIPs = 10.0.0.2/32

إعداد العميل (بوابة المصنع)

# /etc/wireguard/wg0.conf
[Interface]
Address = 10.0.0.2/24
PrivateKey = <FACTORY_PRIVATE_KEY>

[Peer]
PublicKey = <SERVER_PUBLIC_KEY>
Endpoint = vps.drmachine.io:51820
AllowedIPs = 10.0.0.0/24
PersistentKeepalive = 25
sudo systemctl enable --now wg-quick@wg0
sudo wg show

DNS: ترجمة الأسماء إلى عناوين

بدلاً من حفظ عناوين IP، يتيح لك DNS استخدام أسماء مقروءة.

DNS محلي مع /etc/hosts

10.0.0.1    vps.factory.local
10.0.0.2    gateway.factory.local
192.168.10.100  plc-line-a.factory.local

CoreDNS في Docker

services:
  coredns:
    image: coredns/coredns:latest
    ports:
      - "53:53/udp"
      - "53:53/tcp"
    volumes:
      - ./coredns:/etc/coredns:ro
    command: -conf /etc/coredns/Corefile
# coredns/Corefile
factory.local {
    hosts /etc/coredns/factory.hosts
    log
}
. {
    forward . 8.8.8.8 1.1.1.1
    cache 30
}

الجدار الناري المتقدم: قواعد iptables

للمصانع المتصلة عبر VPN، تحكّم بدقة في أي حركة بيانات تتدفق بين الشبكات:

sudo iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A FORWARD -i wg0 -s 10.0.0.0/24 -d 192.168.10.0/24 -p tcp --dport 443 -j ACCEPT
sudo iptables -A FORWARD -i wg0 -s 10.0.0.0/24 -d 192.168.10.0/24 -p tcp --dport 3000 -j ACCEPT
sudo iptables -A FORWARD -j DROP

الحفظ وتحديد المعدل

sudo iptables-save > /etc/iptables/rules.v4
sudo apt install -y iptables-persistent
# حماية SSH من هجمات القوة الغاشمة
sudo iptables -A INPUT -p tcp --dport 22 -m recent --set --name ssh
sudo iptables -A INPUT -p tcp --dport 22 -m recent --update --seconds 60 --hitcount 4 --name ssh -j DROP

التشفير: HTTPS و Let's Encrypt

كل خدمة تواجه الويب يجب أن تستخدم HTTPS. Let's Encrypt يوفر شهادات TLS مجانية تتجدد تلقائياً.

services:
  nginx:
    image: nginx:alpine
    ports: ["80:80", "443:443"]
    volumes:
      - ./nginx/conf.d:/etc/nginx/conf.d:ro
      - certbot-data:/etc/letsencrypt
      - certbot-webroot:/var/www/certbot
  certbot:
    image: certbot/certbot
    volumes:
      - certbot-data:/etc/letsencrypt
      - certbot-webroot:/var/www/certbot
    entrypoint: "/bin/sh -c 'trap exit TERM; while :; do certbot renew; sleep 12h & wait $${!}; done'"
volumes:
  certbot-data:
  certbot-webroot:
server {
    listen 443 ssl;
    server_name monitor.drmachine.io;
    ssl_certificate /etc/letsencrypt/live/monitor.drmachine.io/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/monitor.drmachine.io/privkey.pem;
    location / { proxy_pass http://factory-app:8080; }
    location /grafana/ { proxy_pass http://grafana:3000/; }
}

مثال عملي: ربط مصنع بسيرفر سحابي عبر WireGuard

# === على VPS (10.0.0.1) ===
sudo apt install -y wireguard
wg genkey | tee /etc/wireguard/private.key | wg pubkey > /etc/wireguard/public.key
# أنشئ /etc/wireguard/wg0.conf بإعداد الخادم
sudo systemctl enable --now wg-quick@wg0
sudo ufw allow 51820/udp

# === على Raspberry Pi (10.0.0.2) ===
sudo apt install -y wireguard
wg genkey | tee /etc/wireguard/private.key | wg pubkey > /etc/wireguard/public.key
# أنشئ /etc/wireguard/wg0.conf بإعداد العميل
sudo systemctl enable --now wg-quick@wg0

# === التحقق من كلا الطرفين ===
ping 10.0.0.2   # من VPS
ping 10.0.0.1   # من RPi
curl http://10.0.0.1:3000  # الوصول لـ Grafana عبر VPN

إعداد PersistentKeepalive = 25 يبقي النفق حياً خلف موجّهات NAT.

الخلاصة

الشبكات الآمنة هي العمود الفقري للإدارة الصناعية عن بُعد. WireGuard يوفر VPN سريع وحديث لربط شبكات المصانع بالبنية التحتية السحابية. DNS يترجم العناوين إلى أسماء مقروءة، قواعد iptables تفرض التحكم بالوصول، وHTTPS مع Let's Encrypt يشفر جميع حركة الويب. في الدرس القادم، ستتعلم استراتيجيات النسخ الاحتياطي وممارسات الأمان لحماية بياناتك الصناعية.

VPN WireGuard firewall DNS iptables encryption الشبكة الافتراضية الجدار الناري التشفير الاتصال الآمن الشبكات الربط