Uzaktan çalışma yaygınlaştıkça en çok duyduğumuz kelimelerden biri VPN oldu. Peki VPN nedir, tam olarak ne işe yarıyor ve kendi VPN sunucunuzu kurmak ne kadar zor? Bu yazıda önce VPN'in mantığını ve protokolleri karşılaştırmalı tablolarla anlattık, ardından OpenVPN nasıl kurulur sorusunu bir Linux sanal sunucu üzerinde adım adım cevapladık.
VPN Nedir?
VPN, Virtual Private Network yani sanal özel ağ demek. Cihazınız ile bir VPN sunucusu arasında şifreli bir tünel oluşturur. İnternete giden trafiğiniz bu tünelden geçer; aradaki ağı (kafe Wi-Fi'ı, otel ağı vb.) dinleyen biri sadece anlamsız şifreli veri görür.
Kısaca VPN üç temel iş için kullanılıyor:
- Güvenli bağlantı: Güvenmediğiniz ağlarda trafiğinizi şifrelemek.
- Uzaktan erişim: Evden veya sahadan şirket ağındaki sunuculara, dosyalara, iç uygulamalara güvenli şekilde bağlanmak.
- Ağları birleştirmek: Farklı ofisleri veya veri merkezlerini birbirine güvenli şekilde bağlamak.
VPN Nasıl Çalışır?
Basitçe şöyle: VPN istemcisi (bilgisayarınızdaki ya da telefonunuzdaki uygulama) sunucuya bağlanır, iki taraf sertifika veya anahtarlarla birbirini doğrular ve ortak bir şifreleme anahtarı üzerinde anlaşır. Bundan sonra gönderdiğiniz her paket şifrelenip tünelden sunucuya gider, sunucu paketi çözer ve hedefe iletir. Dönüş yolu da aynı şekilde işler. Hedef site sizi VPN sunucusunun IP adresiyle görür.
VPN Türleri
| Tür | Ne yapar? | Tipik kullanım |
|---|---|---|
| Uzaktan erişim (remote access) | Tek bir kullanıcıyı bir ağa bağlar | Evden şirket ağına bağlanmak, güvenli internet |
| Siteden siteye (site-to-site) | İki ağı kalıcı olarak birbirine bağlar | Şube ile merkez ofisi, ofis ile veri merkezini bağlamak |
| Ticari VPN servisleri | Hazır sunucular üzerinden trafiği yönlendirir | Bireysel gizlilik, halka açık ağlarda güvenlik |
VPN Protokolleri Karşılaştırması
"VPN" tek bir teknoloji değil; farklı protokoller var ve her birinin güçlü-zayıf yanları farklı:
| Protokol | Güvenlik | Hız | Kurulum | Not |
|---|---|---|---|---|
| OpenVPN | Çok iyi | İyi | Orta | Çok olgun, esnek, neredeyse her platformda istemcisi var; TCP 443 ile kısıtlı ağlardan da geçebilir |
| WireGuard | Çok iyi | Çok iyi | Kolay | Modern, sade ve çok hızlı; yapılandırması kısa |
| IPsec / IKEv2 | Çok iyi | Çok iyi | Zor | Kurumsal cihazlarda ve site-to-site bağlantılarda standart; mobilde bağlantı geçişleri iyi |
| L2TP / IPsec | Orta | Orta | Orta | Eski, yeni kurulumlar için önerilmez |
| PPTP | Zayıf | Hızlı | Kolay | Güvensiz kabul edilir, kullanılmamalı |
OpenVPN mi, WireGuard mı?
| OpenVPN | WireGuard | |
|---|---|---|
| Olgunluk | 20 yılı aşkın geçmiş, çok yaygın | Daha yeni ama Linux çekirdeğinde yerleşik |
| Performans | İyi | Genelde daha hızlı ve daha az CPU kullanır |
| Kimlik doğrulama | Sertifika, kullanıcı adı/şifre, LDAP vb. esnek seçenekler | Anahtar çiftleri |
| Kısıtlı ağlardan geçiş | TCP 443 üzerinden çalışabilir | Sadece UDP |
| Yapılandırma | Daha uzun, daha çok seçenek | Çok kısa ve sade |
Esneklik, geniş istemci desteği ve sertifika tabanlı kullanıcı yönetimi istiyorsanız OpenVPN hala çok sağlam bir seçim. Bu yüzden rehberimizde OpenVPN'i anlattık.
Hazır VPN Servisi mi, Kendi VPN Sunucunuz mu?
| Hazır (ticari) VPN servisi | Kendi VPN sunucunuz | |
|---|---|---|
| Kurulum | Yok, uygulamayı indirip bağlanırsınız | Sunucu kurulumu gerekir (bu yazıdaki adımlar) |
| Kontrol | Sağlayıcıda | Tamamen sizde |
| Sabit IP | Genelde paylaşımlı IP | Size ait sabit IP; güvenlik duvarında beyaz listeye eklenebilir |
| Şirket ağına erişim | Uygun değil | Tam olarak bunun için ideal |
| Kimler için? | Bireysel kullanım | Şirketler, ekipler, geliştiriciler |
Özellikle "sunucularıma sadece kendi IP'mden erişilsin" istiyorsanız kendi VPN sunucunuz büyük kolaylık: sunucularınızın yönetim portlarını sadece VPN'in IP'sine açarsınız, gerisi kapalı kalır.
OpenVPN Nasıl Kurulur? (Ubuntu Sanal Sunucuda Adım Adım)
Aşağıdaki adımlar Ubuntu 24.04 çalışan bir Linux sanal sunucu için yazıldı. OpenVPN çok az kaynak tüketir; birkaç kullanıcı için en küçük paket bile fazlasıyla yeterli. Komutları root yetkisine sahip bir kullanıcıyla çalıştırın.
1. Paketleri kurun
sudo apt update
sudo apt install -y openvpn easy-rsa
2. Sertifika otoritesini (CA) oluşturun
OpenVPN, sunucu ve istemcilerin birbirini sertifikalarla doğrulamasına dayanıyor. Bunun için Easy-RSA ile küçük bir sertifika otoritesi kuruyoruz:
make-cadir ~/openvpn-ca
cd ~/openvpn-ca
./easyrsa init-pki
./easyrsa build-ca nopass
3. Sunucu sertifikasını ve anahtarlarını üretin
./easyrsa gen-req server nopass
./easyrsa sign-req server server # onay için "yes" yazın
openvpn --genkey secret ta.key
sudo cp pki/ca.crt pki/issued/server.crt pki/private/server.key ta.key /etc/openvpn/server/
ta.key, bağlantı kurulmadan önce bile trafiği ek bir katmanla koruyan paylaşımlı anahtar. Sunucuya yetkisiz bağlanma denemelerini en baştan eler.
4. Sunucu yapılandırmasını yazın
/etc/openvpn/server/server.conf dosyasını oluşturup şunu yazın:
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh none
tls-crypt ta.key
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 1.1.1.1"
push "dhcp-option DNS 9.9.9.9"
keepalive 10 120
data-ciphers AES-256-GCM:AES-128-GCM:CHACHA20-POLY1305
user nobody
group nogroup
persist-key
persist-tun
verb 3
Bu yapılandırma VPN istemcilerine 10.8.0.0/24 ağından IP verir ve tüm internet trafiğini tünelden geçirir. Sadece şirket ağına erişim istiyorsanız redirect-gateway satırını kaldırıp yerine push "route 192.168.10.0 255.255.255.0" gibi sadece ilgili ağı ekleyebilirsiniz.
5. IP yönlendirmeyi ve NAT'ı açın
Sunucunun VPN trafiğini internete yönlendirebilmesi gerekiyor. Önce ağ arayüzünüzün adını öğrenin (genelde eth0 veya ens3 gibi bir şey):
ip route | grep default
echo 'net.ipv4.ip_forward=1' | sudo tee /etc/sysctl.d/99-openvpn.conf
sudo sysctl --system
# eth0 yerine kendi arayüz adınızı yazın
sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
sudo apt install -y iptables-persistent # kuralı kalıcı yapar
Sunucuda UFW gibi bir güvenlik duvarı kullanıyorsanız 1194/udp portuna izin vermeyi unutmayın: sudo ufw allow 1194/udp.
6. OpenVPN'i başlatın
sudo systemctl enable --now openvpn-server@server
sudo systemctl status openvpn-server@server
Durum çıktısında "active (running)" görüyorsanız sunucu hazır. Bir sorun varsa journalctl -u openvpn-server@server ile loglara bakabilirsiniz.
7. İstemci sertifikası oluşturun
Her kullanıcı (ya da cihaz) için ayrı sertifika üretmek en doğrusu; biri ayrıldığında sadece onun sertifikasını iptal edersiniz:
cd ~/openvpn-ca
./easyrsa gen-req client1 nopass
./easyrsa sign-req client client1 # onay için "yes" yazın
8. İstemci dosyasını (.ovpn) hazırlayın
İstemci tarafında herşeyi tek bir dosyada toplamak en pratik yol. client1.ovpn adında bir dosya oluşturup aşağıdaki şablonu kullanın; SUNUCU_IP yerine sunucunuzun IP adresini, etiketlerin arasına da ilgili dosyaların içeriğini yapıştırın:
client
dev tun
proto udp
remote SUNUCU_IP 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
data-ciphers AES-256-GCM:AES-128-GCM:CHACHA20-POLY1305
verb 3
<ca>
...ca.crt içeriği...
</ca>
<cert>
...client1.crt içeriği...
</cert>
<key>
...client1.key içeriği...
</key>
<tls-crypt>
...ta.key içeriği...
</tls-crypt>
Gerekli dosyalar: pki/ca.crt, pki/issued/client1.crt, pki/private/client1.key ve ta.key.
9. Bağlanın
client1.ovpn dosyasını güvenli bir yoldan cihazınıza aktarın ve OpenVPN istemcisine (Windows, macOS, Linux, Android ve iOS için resmi uygulamalar mevcut) içe aktarın. Bağlandıktan sonra bir IP kontrol sitesine girdiğinizde sunucunuzun IP adresini görüyorsanız herşey çalışıyor demektir.
.ovpn dosyası özel anahtar içerdiği için şifre gibi saklanmalı; e-postayla açık şekilde göndermeyin. Bir kullanıcının erişimini kaldırmak için ./easyrsa revoke client1 ve ./easyrsa gen-crl ile sertifikayı iptal edip oluşan listeyi sunucu yapılandırmasına crl-verify satırıyla ekleyin.Sık Karşılaşılan Sorunlar
| Belirti | Olası sebep | Çözüm |
|---|---|---|
| İstemci bağlanamıyor, zaman aşımı | 1194/udp portu kapalı | Sunucu ve varsa sağlayıcı güvenlik duvarında portu açın |
| Bağlanıyor ama internet yok | IP yönlendirme veya NAT eksik | 5. adımı ve arayüz adını kontrol edin |
| Siteler açılmıyor ama IP ile erişim var | DNS ayarı | dhcp-option DNS satırlarını kontrol edin |
| "TLS handshake failed" hatası | Yanlış ta.key veya sertifika | .ovpn içindeki dosya içeriklerini yeniden kopyalayın |
VPN Sunucusu İçin Hangi Sanal Sunucu?
OpenVPN hafif bir yazılım; asıl belirleyici olan bağlantı hızı ve CPU'nun şifreleme performansı. Birkaç kullanıcıdan oluşan bir ekip için VECDC'nin en küçük sanal sunucu paketi (2 Core, 8 GB RAM, aylık $6) fazlasıyla yeterli; sabit IPv4 adresi pakete dahil ve otomatik kurulumla yaklaşık 5 dakikada hazır. Lokasyonu da sipariş sırasında kullanıcılarınıza yakın olacak şekilde seçebilirsiniz.
Şirket genelinde site-to-site VPN, yüksek erişilebilirlik ve güvenlik duvarı entegrasyonu gerekiyorsa pfSense danışmanlık ve Fortigate danışmanlık hizmetlerimizle kurumsal bir VPN altyapısı kurgulayabiliriz.
Sık Sorulan Sorular
VPN kullanmak yasal mı?
VPN, şirketlerin uzaktan erişim ve ağ güvenliği için yaygın olarak kullandığı standart bir teknolojidir. Ancak VPN üzerinden yapılan işlemler de yürürlükteki yasalara tabidir; VPN kullanmak yasa dışı bir işlemi yasal hale getirmez.
OpenVPN ücretsiz mi?
Evet. OpenVPN'in topluluk sürümü açık kaynak ve ücretsizdir; bu yazıdaki kurulum tamamen ücretsiz bileşenlerle yapılır. Yalnızca çalışacağı sunucu için ödeme yaparsınız.
OpenVPN hangi portu kullanır?
Varsayılan olarak UDP 1194 portunu kullanır. Kısıtlı ağlardan geçebilmek için TCP 443 gibi farklı bir port ve protokolle de çalıştırılabilir.
Kendi VPN sunucum için ne kadar kaynak gerekir?
Çok az. Birkaç kullanıcılı bir ekip için 1–2 çekirdek ve birkaç GB RAM fazlasıyla yeterlidir; asıl belirleyici olan sunucunun bağlantı hızı ve kullanıcı sayısıdır.
Kısacası
VPN, cihazınız ile bir sunucu arasında şifreli bir tünel kurarak trafiğinizi korur ve uzaktaki ağlara güvenli erişim sağlar. OpenVPN de olgun, esnek ve her platformda çalışan bir VPN çözümü. Bu yazıdaki adımlarla kendi sanal sunucunuzda yarım saat içinde çalışan bir OpenVPN sunucusu kurabilirsiniz. Takıldığınız birşey olursa bize yazın.