- Linux'a OpenVPN'i istemci olarak kurup, belirli rotaları VPN üzerinden mi yoksa normal rota üzerinden mi yönlendirmek istiyorsunuz?
- Ön koşullar
- OpenVPN kurulumu
- Temel kurulum (manuel çalıştırma)
- Varsayılan rota kontrolü: varsayılan sunucu davranışı
- Yöntem 1 — VPN üzerinden yalnızca bazı IP adreslerini gönderme (Bölünmüş tünel)
- Yöntem 2 — Tüm trafik VPN üzerinden geçer, ancak belirli birkaç IP adresi normal rota üzerinden yönlendirilir (Bypass).
- Yöntem 3 — Politika Tabanlı Yönlendirme
- systemd ile bağlantı kuruluyor (otomatik başlatma)
- DNS ve ad çözümleme sorunları
- Tam client.ovpn örneği (örnek)
- Güvenlik ve operasyonel ipuçları
- Sık karşılaşılan hataları düzeltin
- Farklı kullanıcı tipleri için uygulamaların ve ipuçlarının karşılaştırılması
- Özet ve Sonuç
Linux'a OpenVPN'i istemci olarak kurup, belirli rotaları VPN üzerinden mi yoksa normal rota üzerinden mi yönlendirmek istiyorsunuz?
Bu pratik ve teknik adım adım kılavuzda, popüler Linux dağıtımlarında OpenVPN'i istemci olarak nasıl yapılandıracağınızı göstereceğiz. Amaç, örnek dosyalar, rotaları yönetmek için yukarı/aşağı komut dosyaları, bölünmüş tünelleme ve IP atlama yöntemleri ve kullanıcı adı/şifre kimlik doğrulaması için ipuçları sağlamaktır.
Ön koşullar
Başlamadan önce, aşağıdakilere sahip olduğunuzdan emin olun:
- Linux sistemi (Ubuntu/Debian/CentOS/Fedora/Alma)
- Kapalı OpenVPN Kuruldu
- Sunucu yapılandırma dosyası veya dosya .ovpn VPN sağlayıcısından
- Birleşik kimlik doğrulama durumunda kullanıcı adı/şifre (kullanıcı adı/şifre + sertifika)
OpenVPN kurulumu
Yaygın dağıtımlar için kurulum komutları:
sudo apt update && sudo apt install openvpn
sudo dnf install openvpn
Temel kurulum (manuel çalıştırma)
Eğer dosya istemci.ovpn Eğer elinizde varsa, hemen çalıştırmak için şu komutu kullanın:
sudo openvpn --config client.ovpnEğer sunucu kullanıcı adı/şifre kullanıyorsa ve her seferinde bunları girmek istemiyorsanız, bir kimlik bilgisi dosyası oluşturun:
sudo tee /etc/openvpn/credentials <<'EOF'
myuser
mypassword
EOF
sudo chmod 600 /etc/openvpn/credentialsDosyada .ovpn Aşağıdaki satır mutlaka bulunmalı veya eklenmelidir:
auth-user-pass /etc/openvpn/credentialsGüvenlik ipucu: İtibaren kimlik doğrulama-önbelleksiz OpenVPN'in parolayı bellekte önbelleğe almasını önlemek için kullanılır:
auth-nocachechmod 600 Güvenliği artırmak için sertifika tabanlı kimlik doğrulama (istemci sertifikası) ve tls-crypt/tls-auth kullanın ve bunları koruyun.
Varsayılan rota kontrolü: varsayılan sunucu davranışı
Rotaların varsayılan davranışı genellikle sunucu tarafından belirlenir:
- Eğer sunucu
yönlendirme ağ geçidi tanım1Eğer düğmeye basarsanız, tüm trafiğiniz VPN üzerinden (tam tünel) geçecektir. - Sunucunun varsayılan rotayı kabul etmesini engellemek için şunu kullanabilirsiniz:
rota-çekme yokÖncelikle gerekli rotaları kullanın, ardından manuel olarak ekleyin.
Yöntem 1 — VPN üzerinden yalnızca bazı IP adreslerini gönderme (Bölünmüş tünel)
Yalnızca belirli adreslerin VPN üzerinden gönderilmesini istiyorsanız, şunu kullanın: rota-çekme yok Dosyada istemci.ovpn İstenilen rotaları kullanın ve ekleyin.
client
dev tun
proto udp
remote vpn.example.com 1194
resolv-retry infinite
nobind
persist-key
persist-tun
route-nopull
route 203.0.113.45 255.255.255.255
route 198.51.100.0 255.255.255.0Açıklama: İle rota-çekme yok Sunucudan hiçbir rota kabul edilmiyor ve mevcut satırlarla baş başa kalıyorsunuz. rota Belirli hedeflere VPN üzerinden yönlendirme yapıyorsunuz.
Yöntem 2 — Tüm trafik VPN üzerinden geçer, ancak belirli birkaç IP adresi normal rota üzerinden yönlendirilir (Bypass).
Sunucu yönlendirme ağ geçidi tanım1 Eğer bazı belirli adreslerin varsayılan (İnternet) yönlendirme üzerinden geçmesini istiyorsanız, varsayılan ağ geçidini kaydetmeniz ve atlama yönlendirmelerini yeniden yazmanız gerekir.
A) Bağlantıyı kurmadan önce orijinal ağ geçidini kaydedin.
Bağlantı kurmadan önce varsayılan ağ geçidini ve aygıtı almak için örnek komutlar:
GW=$(ip route show default | awk '/default/ {print $3}')
DEV=$(ip route show default | awk '/default/ {print $5}')Yükseldikten sonra ayar0GW üzerinden atlamak istediğiniz IP adreslerini yeniden ekleyin:
sudo ip route add 203.0.113.0/24 via $GW dev $DEV
sudo ip route add 8.8.8.8/32 via $GW dev $DEVb) Yukarı/aşağı komut dosyasıyla otomatikleştirin
İçinde istemci.ovpn Komut dosyalarını çalıştırmak için aşağıdaki satırları ekleyin:
script-security 2
up /etc/openvpn/client-up.sh
down /etc/openvpn/client-down.shÖrnek /etc/openvp/client-up.sh:
#!/bin/bash
echo "$(ip route show default | awk '/default/ {print $3, $5}')" > /var/run/openvpn.origgw
GW=$(awk '{print $1}' /var/run/openvpn.origgw)
DEV=$(awk '{print $2}' /var/run/openvpn.origgw)
ip route add 8.8.8.8/32 via $GW dev $DEV
ip route add 203.0.113.45/32 via $GW dev $DEV
exit 0Örnek /etc/openvp/client-down.sh:
#!/bin/bash
GW=$(awk '{print $1}' /var/run/openvpn.origgw)
DEV=$(awk '{print $2}' /var/run/openvpn.origgw)
ip route del 8.8.8.8/32 via $GW dev $DEV || true
ip route del 203.0.113.45/32 via $GW dev $DEV || true
rm -f /var/run/openvpn.origgw
exit 0Komut dosyalarını çalıştırmayı unutmayın:
sudo chmod +x /etc/openvpn/client-up.sh /etc/openvpn/client-down.sh
Yöntem 3 — Politika Tabanlı Yönlendirme
Politika tabanlı yönlendirme kullanarak, kaynağa özgü trafiği VPN üzerinden yönlendirebilirsiniz.
echo "200 vpnroute" | sudo tee -a /etc/iproute2/rt_tables
sudo ip rule add from 10.0.0.5/32 lookup vpnroute
sudo ip route add default dev tun0 table vpnrouteBilgi bulmak için ayar0 Ve sanal ağ geçidi:
ip -4 addr show dev tun0
ip route show dev tun0
systemd ile bağlantı kuruluyor (otomatik başlatma)
Belirtilen yoldaki yapılandırma dosyaları için /etc/openvpp/istemci/ Systemd birimini çalıştırabilirsiniz:
sudo systemctl start openvpn-client@client
sudo systemctl enable openvpn-client@client
sudo journalctl -u openvpn-client@client -f
DNS ve ad çözümleme sorunları
Eğer DNS sunucu tarafından yönlendiriliyorsa, bazı dağıtımlar bir betik gerektirir. güncelleme-çözme-konfi veya koordinasyon ile systemd-çözüldü Var.
script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-confSistemlerde systemd-çözüldü Ek yapılandırma gerektirebilirler.
Tam client.ovpn örneği (örnek)
client
dev tun
proto udp
remote vpn.example.com 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-CBC
auth SHA256
auth-user-pass /etc/openvpn/credentials
auth-nocache
route-nopull
route 203.0.113.45 255.255.255.255
route 198.51.100.0 255.255.255.0
script-security 2
up /etc/openvpn/client-up.sh
down /etc/openvpn/client-down.sh
Güvenlik ve operasyonel ipuçları
- Kimlik bilgileri dosyasını aşağıdaki komutla oluşturun:
chmod 600Korumak. - Müşteri sertifikasından ve
tls-kimlik doğrulama/tls-cryptBasit DoS saldırılarını önlemek için kullanılır. - İtibaren kimlik doğrulama-önbelleksiz Parolanın bellekte önbelleğe alınmasını önlemek için kullanılır.
- OpenVPN'i güncel tutun ve modern şifreleme/karma algoritmalarını kullanın.
AES-256-GCMVeyaÇACHA20Kullanmak. - Günlükleri izleyin ve günlükleri döndürmek için systemd'yi logrotate ile birlikte kullanın.
En düşük gecikme süresi gerektiren ortamlar (ticaret/oyun) için, ping ve istikrarı korumak amacıyla yalnızca ihtiyaç duyduğunuz hizmetleri yönlendirmek üzere yakın konumlar veya bölünmüş tünelleme kullanın.
Sık karşılaşılan hataları düzeltin
- Bağlantı kurulamadı: Güvenlik duvarındaki (ufw/iptables/security group) port ve protokolü kontrol edin.
- DNS çalışmıyor:
güncelleme-çözme-konfiVeya manuel ayarlama/etc/resolv.confKullanmak. - Rotalar eklenmedi: Emin olun.
komut dosyası güvenliği 2Etkinleştirildi ve komut dosyaları çalıştırılabilir durumda. - İnternet bağlantısı kesildikten sonra: Sunucu muhtemelen varsayılan rotayı öne sürdü; bypass veya route-nopull yöntemlerini kullanın.
Farklı kullanıcı tipleri için uygulamaların ve ipuçlarının karşılaştırılması
- Tüccarlar: Ping ve istikrara ihtiyaç duyulur; yakın konumlar kullanın ve mümkünse yalnızca işlem sunucusuna bağlanmak için bölünmüş tünelleme yöntemini kullanın.
- Oyuncular: Oyun trafiği genellikle en kısa rotayı izlemelidir; tam tünelleme ping süresini artırabilir, bu nedenle yalnızca oyun sunucusuna yönlendirme yapın veya yakındaki bir sunucu kullanın.
- Site Yöneticileri/DevOps: OpenVPN istemcisinin systemd işletim sistemine sahip sunucularda çalıştırılması ve belirli hizmetler için politika tabanlı yönlendirme kullanılması önerilir.
- Yapay Zeka/Render: Büyük veri transferleri için tam tünel ve yüksek bant genişliğine sahip sunucular daha uygundur.
Özet ve Sonuç
Linux'ta OpenVPN istemcisini çalıştırmak için genellikle şu dosyaya ihtiyacınız vardır: .ovpn Ek olarak kimlik doğrulama-kullanıcı-şifresi Ve gerekirse rota-çekme yok Bu, bölünmüş tünel için yeterlidir. Tam tünel sırasında bazı IP'leri atlamak için önceki ağ geçidini kaydedin ve uygun rotaları ekleyin. Daha karmaşık davranışlar için, politika tabanlı yönlendirme kullanın.









