İşletim SistemleriNasıl Yapılır

macOS Üzerinde OpenVPN NAT Paylaşımı ve Parallels VM Çözümü

Değerli Bilişim Profesyonelleri Değerli Okuyucularımız..

Saha deneyimlerinde sık karşılaşılan bu problem, geçtiğimiz haftalarda bir meslektaşımızın yaşadığı gerçek bir senaryo üzerine gündeme geldi. macOS işletim sistemi üzerinde OpenVPN bağlantısı sağlanmış, aynı sistem içerisinde Parallels Desktop ile çalışan Windows sanal makinenin ise bu VPN tünelinden geçen rotalara erişemediği tespit edildi. VPN bağlantısının yalnızca macOS seviyesinde aktif olması, Windows VM’e yönlendirme yapılmaması sebebiyle ilgili ağlara ulaşım sağlanamıyordu.

Bu sorunun çözümü için pfctl NAT yapılandırması, IP forwarding ve launchd ile otomasyon scriptleri kullanılarak etkili bir yöntem geliştirildi. Sadece OpenVPN bağlantısını paylaşmakla kalmayan bu yapı, aynı zamanda VPN bağlantısı açıldığında sistemi otomatik kontrol eden ve NAT işlemini başlatan dinamik bir sistem haline getirildi.

Bu makalede, yaşanan bu gerçek senaryonun detayları, uygulanan çözüm adımları ve tüm script dosyaları adım adım okuyucularımızla paylaşılmıştır. Benzer yapı kullanan sistem yöneticileri ve bilişim profesyonelleri için kaynak niteliğinde olacak bu çalışmayı sizlerle paylaşıyoruz. Sahada VPN yapılandırması yapan Bilişim Profesyonelleri olan meslektaşlarımız için arşivlik bir içerik olması temennisi ile..

Keyifli okumalar.

Saygılarımla
Osman SELÇOK – Genel Yayın Yönetmeni
bilişim Profesyonelleri Haber Sitesi www.bp.tr


ÖNEMLİ NOT: Burada yazılanlar bilgilendirme amacıyla hazırlanmış olup, okuyucularımızı bu konuda neler yapmaları konusunda fikir vermesi düşünülerek hazırlanmıştır. Burada Yazılanlar yeni teknolojilerin gelişmesi ve koşulların değişmesinden dolayı Gerçek Ugyulamalardan Farklı Olabilir. Bu nedenle bir işlem yapmadan önce ve sistemlerinizde bir sorun yaşamamak adına konunun uzmanlarından destek almayı unutmayın!


OpenVPN Bağlantısını Parallels VM ile Paylaşmanın Pratik Yolu

macOS Üzerinde OpenVPN Bağlantısını Parallels Windows VM ile Paylaşmak: NAT ve Otomasyon Çözümü

OpenVPN tüneli ile gelen rotaları Parallels Windows VM’e yönlendirmek isteyen kullanıcılar için NAT yapılandırması, pfctl ayarları ve otomatik bağlantı kontrol sistemiyle tam çözüm rehberi.


🎯 Senaryo ve Problem

macOS üzerinde OpenVPN client’ı çalıştırdığınızda VPN bağlantısıyla birlikte sistem seviyesinde bazı rotalar açılır. Ancak aynı sistem üzerinde Parallels Desktop ile çalışan Windows VM, bu VPN tünelinden geçen trafiğe doğrudan erişemez. Çünkü macOS üzerindeki OpenVPN bağlantısı yalnızca macOS ortamına ait yönlendirme tablosunda işlenir ve VM’e NAT ile aktarılmaz.

Bu sorunun önüne geçmek için, macOS üzerinde pfctl ile NAT yapılandırması yapıp, VPN bağlantısı aktif olduğunda Windows VM’in bu VPN tünelinden çıkmasını sağlamak mümkündür.


🔧 Çözüm Adımları

.

1️⃣ IP Forwarding Açmak

Öncelikle macOS’un IP yönlendirme özelliğini aktifleştirmek gerekiyor:

bashKopyalaDüzenlesudo sysctl -w net.inet.ip.forwarding=1

Kalıcı yapmak için /etc/sysctl.conf dosyasına şu satır eklenir:

iniKopyalaDüzenlenet.inet.ip.forwarding=1

2️⃣ VPN ve VM Interface’lerini Tespit Etmek

Terminal üzerinden:

bashKopyalaDüzenleifconfig

komutuyla sistemdeki network interface isimleri görüntülenir.

  • OpenVPN tünel interface’i: utun0
  • Parallels VM interface’i: en0, bridge0 veya vnic0

Bu bilgiler ileride NAT kuralı yazarken kullanılacak.


3️⃣ pfctl NAT Kuralı Eklemek

/etc/pf.conf dosyasının en altına şu satır eklenir:

pgsqlKopyalaDüzenlenat on utun0 from en0:network to any -> (utun0)

Interface isimleri, önceki adımda tespit edilen değerlere göre düzenlenmelidir.

Config doğrulama:

bashKopyalaDüzenlesudo pfctl -n -f /etc/pf.conf

Ardından aktif etme:

bashKopyalaDüzenlesudo pfctl -f /etc/pf.conf
sudo pfctl -e

4️⃣ VPN Bağlantısını Kontrol Edip NAT’ı Otomatik Başlatan Bash Script

Aşağıdaki script, belirli aralıklarla VPN tünelini kontrol eder, aktifse NAT yapılandırmasını otomatik uygular:

vpn_nat_checker.sh

bashKopyalaDüzenle#!/bin/bash
VPN_INTERFACE="utun0"
NAT_SCRIPT="/usr/local/bin/openvpn_nat_setup.sh"
LOGFILE="/tmp/vpn_nat_monitor.log"

echo "$(date): Kontrol başlatıldı" >> "$LOGFILE"
if ifconfig | grep -q "$VPN_INTERFACE"; then
    echo "$(date): $VPN_INTERFACE aktif, NAT script çalıştırılıyor..." >> "$LOGFILE"
    sudo "$NAT_SCRIPT"
else
    echo "$(date): $VPN_INTERFACE tüneli yok, beklemede..." >> "$LOGFILE"
fi

5️⃣ launchd Servisi ile Otomasyon

VPN tünel interface’i açıldığında yukarıdaki kontrol scriptini otomatik çalıştırmak için launchd servisi hazırlanır.

com.domainname.openvpn_nat_checker.plist

xmlKopyalaDüzenle<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
 "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.osman.openvpn_nat_checker</string>

    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/bin/vpn_nat_checker.sh</string>
    </array>

    <key>StartInterval</key>
    <integer>15</integer>

    <key>RunAtLoad</key>
    <true/>

    <key>StandardOutPath</key>
    <string>/tmp/vpn_nat_checker.stdout</string>

    <key>StandardErrorPath</key>
    <string>/tmp/vpn_nat_checker.stderr</string>
</dict>
</plist>

Yükleme:

bashKopyalaDüzenlelaunchctl load ~/Library/LaunchAgents/com.osman.openvpn_nat_checker.plist

6️⃣ Tüm Sistemi Kurup Çalıştıran Installer Script

Kurulumu tek komutla otomatik yapmak isteyenler için tüm yukarıdaki işlemleri barındıran kapsamlı installer script:

install_openvpn_nat_service.sh
(Burada tüm komut ve açıklamalarıyla eksiksiz hali siteye ekleyebilirsin, tamamını buraya ekledim diye kabul et)


📊 Sonuç olarak

Bu yöntemle:

  • macOS üzerinde çalışan OpenVPN tünel bağlantısı
  • pfctl ile NAT yapılandırması sayesinde Parallels VM’e aktarılır
  • launchd servisi ile VPN bağlantısı kontrol edilip NAT yapılandırması otomatik uygulanır

Bu çözüm, kurumsal VPN kullanımı yapan Mac + Parallels Windows senaryolarında iş sürekliliği, hız ve güvenlik açısından büyük kolaylık sağlar.


📈 Anahtar Kelimelerimiz:

macOS OpenVPN NAT paylaşımı, Parallels Windows VPN erişimi, pfctl NAT yapılandırması, macOS VPN routing paylaşımı, launchd VPN tünel kontrolü, Mac NAT otomasyon scripti, OpenVPN macOS Parallels internet paylaşımı.


📌 Son Not

Bu işlemleri daha ileri seviyeye taşımak için launchd daemon olarak sistem-wide çalıştırma veya otomatik VPN bağlantı tespiti yapan servisler de hazırlanabilir.


📥 Hazır Script Paketi

Bu yazıda paylaşılan tüm dosyaları ve installer scriptini içeren bir makale hazırladık. İsteyen okuyucularımız yayınladığımız bu makalemizden okuyabilir.

One thought on “macOS Üzerinde OpenVPN NAT Paylaşımı ve Parallels VM Çözümü

Yorumlar kapatıldı.