TR/EN
Blog

VPN Nedir? OpenVPN Sunucusu Nasıl Kurulur? (Adım Adım)

Yayın tarihi: · 12 dk okuma

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ürNe yapar?Tipik kullanım
Uzaktan erişim (remote access)Tek bir kullanıcıyı bir ağa bağlarEvden ş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 servisleriHazır sunucular üzerinden trafiği yönlendirirBireysel 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ı:

ProtokolGüvenlikHızKurulumNot
OpenVPNÇok iyiİyiOrtaÇok olgun, esnek, neredeyse her platformda istemcisi var; TCP 443 ile kısıtlı ağlardan da geçebilir
WireGuardÇok iyiÇok iyiKolayModern, sade ve çok hızlı; yapılandırması kısa
IPsec / IKEv2Çok iyiÇok iyiZorKurumsal cihazlarda ve site-to-site bağlantılarda standart; mobilde bağlantı geçişleri iyi
L2TP / IPsecOrtaOrtaOrtaEski, yeni kurulumlar için önerilmez
PPTPZayıfHızlıKolayGüvensiz kabul edilir, kullanılmamalı

OpenVPN mi, WireGuard mı?

OpenVPNWireGuard
Olgunluk20 yılı aşkın geçmiş, çok yaygınDaha yeni ama Linux çekirdeğinde yerleşik
PerformansİyiGenelde daha hızlı ve daha az CPU kullanır
Kimlik doğrulamaSertifika, kullanıcı adı/şifre, LDAP vb. esnek seçeneklerAnahtar çiftleri
Kısıtlı ağlardan geçişTCP 443 üzerinden çalışabilirSadece UDP
YapılandırmaDaha 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 servisiKendi VPN sunucunuz
KurulumYok, uygulamayı indirip bağlanırsınızSunucu kurulumu gerekir (bu yazıdaki adımlar)
KontrolSağlayıcıdaTamamen sizde
Sabit IPGenelde paylaşımlı IPSize ait sabit IP; güvenlik duvarında beyaz listeye eklenebilir
Şirket ağına erişimUygun değilTam 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.

Güvenlik notu: .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

BelirtiOlası 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 yokIP yönlendirme veya NAT eksik5. adımı ve arayüz adını kontrol edin
Siteler açılmıyor ama IP ile erişim varDNS 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.

Sanal Sunucunuz 5 Dakikada Hazır

Adanmış kaynaklı NVMe sanal sunucu paketleri aylık $6'dan başlıyor.

Paketleri İncele →