OpenVPN Server ve Client kurulumu 2026 rehberi Ubuntu üzerinde adım adım güvenli VPN kurma
Ubuntu üzerinde OpenVPN Server kurulumu, sertifika üretimi, firewall NAT ayarları ve Windows Android iOS için OpenVPN client yapılandırması bu rehberde. Adım adım komutlar ve sorun giderme.
Bu rehberde Ubuntu sunucu üzerinde OpenVPN Server kurup, ardından Windows Android iOS gibi cihazlarda OpenVPN Client ile bağlanmayı anlatıyorum. Anlatım “elle kurulum” mantığında; neyi neden yaptığınızı da bileceksiniz.
1) Gereksinimler
- Bir VPS veya ev sunucusu hostingkirala.tr
- Ubuntu 22.04 veya 24.04 (rehber buna göre)
- Sunucuya root veya sudo erişimi
- Sunucunun public IP’si veya alan adı (DNS)
2) Sunucuda OpenVPN ve Easy-RSA kurulumu
Paketleri güncelleyin ve OpenVPN’i kurun:
sudo apt update
sudo apt install -y openvpn easy-rsa
Easy-RSA için çalışma klasörü oluşturun:make-cadir ~/easy-rsa
cd ~/easy-rsa
3) Sertifika ve anahtarların hazırlanması (PKI)
3.1) PKI başlatın ve CA oluşturun
cd ~/easy-rsa
./easyrsa init-pki
./easyrsa build-ca
3.2) Sunucu sertifikası ve anahtarı
./easyrsa gen-req server nopass
./easyrsa sign-req server server
3.3) Diffie-Hellman ve TLS anahtarı
./easyrsa gen-dh
openvpn --genkey --secret ta.key
3.4) Client sertifikası (örnek: client1)
./easyrsa gen-req client1 nopass
./easyrsa sign-req client client1
4) OpenVPN Server yapılandırması
OpenVPN örnek konfigürasyonunu kopyalayalım:
sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn/server.conf
Şimdi düzenleyin:
sudo nano /etc/openvpn/server.conf
Aşağıdaki ayarları kontrol edin veya ekleyin (temel ve güvenli bir başlangıç):
port 1194
proto udp
dev tun
user nobody
group nogroup
persist-key
persist-tun
ca /etc/openvpn/pki/ca.crt
cert /etc/openvpn/pki/issued/server.crt
key /etc/openvpn/pki/private/server.key
dh /etc/openvpn/pki/dh.pem
tls-auth /etc/openvpn/pki/ta.key 0
key-direction 0
topology subnet
server 10.8.0.0 255.255.255.0
# DNS itme (istemciye DNS ver)
push "dhcp-option DNS 1.1.1.1"
push "dhcp-option DNS 8.8.8.8"
# Tüm trafiği VPN üzerinden geçirmek isterseniz:
push "redirect-gateway def1 bypass-dhcp"
# Güvenlik
cipher AES-256-GCM
auth SHA256
keepalive 10 120
verb 3
t: Bazı dağıtımlarda OpenVPN 2.5+ ile data-ciphers kullanımı gerekebilir. Sorun yaşarsanız son bölümdeki “hata giderme” kısmına bakın.
4.1) Sertifikaları doğru yerlere kopyalayın
OpenVPN’in okuyacağı klasörü oluşturalım:
sudo mkdir -p /etc/openvpn/pki/{private,issued}
Gerekli dosyaları kopyalayın:
sudo cp ~/easy-rsa/pki/ca.crt /etc/openvpn/pki/
sudo cp ~/easy-rsa/pki/dh.pem /etc/openvpn/pki/
sudo cp ~/easy-rsa/ta.key /etc/openvpn/pki/
sudo cp ~/easy-rsa/pki/issued/server.crt /etc/openvpn/pki/issued/
sudo cp ~/easy-rsa/pki/private/server.key /etc/openvpn/pki/private/
5) IP Forwarding ve Firewall NAT ayarları
UFW kullanıyorsanız:
sudo ufw allow 1194/udp
sudo ufw allow OpenSSH
NAT için UFW’nin before.rules dosyasını düzenleyin:
sudo nano /etc/ufw/before.rules
Dosyanın en üstüne (veya uygun yere) şu bloğu ekleyin. eth0 yerine kendi WAN arayüz adınızı yazın (ör. ens3):
# OPENVPN NAT
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
COMMIT
UFW yönlendirmeyi kabul etsin:
sudo nano /etc/default/ufw
Şunu bulun ve değiştirin:
DEFAULT_FORWARD_POLICY="ACCEPT"
UFW’yi aktif edin:
sudo ufw enable
sudo ufw status
6) OpenVPN servisini başlatma
sudo systemctl enable openvpn@server
sudo systemctl start openvpn@server
sudo systemctl status openvpn@server --no-pager
Loglarda hata varsa:
sudo journalctl -u openvpn@server -e --no-pager
7) Client yapılandırması (ovpn dosyası oluşturma)
Client için şu dosyalar gerekir:
ca.crtclient1.crtclient1.keyta.key- bir de
client.ovpnkonfigürasyonu
7.1) client1 için dosyaları hazırlayın
mkdir -p ~/client-configs/client1
cp ~/easy-rsa/pki/ca.crt ~/client-configs/client1/
cp ~/easy-rsa/pki/issued/client1.crt ~/client-configs/client1/
cp ~/easy-rsa/pki/private/client1.key ~/client-configs/client1/
cp ~/easy-rsa/ta.key ~/client-configs/client1/
7.2) client.ovpn oluşturun
nano ~/client-configs/client1/client1.ovpn
İçeriği:
client
dev tun
proto udp
remote SUNUCU_IP_VEYA_DOMAIN 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-GCM
auth SHA256
verb 3
key-direction 1
Dosyaların içeriğini gömülü hale getirmek için her bir sertifika dosyasının içini kopyalayıp ilgili blokların arasına yapıştırın:
cat ~/client-configs/client1/ca.crt
cat ~/client-configs/client1/client1.crt
cat ~/client-configs/client1/client1.key
cat ~/client-configs/client1/ta.key
Sonrasında client1.ovpn tek başına yeterli olur.
8) Windows Android iOS istemci kurulumu
Windows
- OpenVPN Connect uygulamasını kurun (resmi OpenVPN istemcisi).
client1.ovpndosyasını bilgisayara alın.- Uygulamada “Import Profile” ile içe aktarın ve bağlanın.
Android
- Google Play’den OpenVPN Connect kurun.
client1.ovpndosyasını telefona atın (mail, drive, kablo).- Uygulamada içe aktarın.
iOS
- App Store’dan OpenVPN Connect kurun.
client1.ovpndosyasını AirDrop veya Dosyalar üzerinden açıp içe aktarın.
Bağlandıktan sonra IP’nizin değiştiğini kontrol etmek için:
- “what is my ip” araması
- veya terminalde:
curl ifconfig.me
9) En sık sorunlar ve hızlı çözümler
Bağlantı kuruluyor ama internet yok
- IP forwarding açık mı:
sysctl net.ipv4.ip_forward
- UFW NAT kuralında arayüz adı doğru mu (
eth0yerineens3olabilir) - UFW forward policy
ACCEPTmi
TLS handshake failed
- Port açık mı:
sudo ss -ulpn | grep 1194
- VPS güvenlik duvarı / cloud firewall 1194 UDP izin veriyor mu
remotesatırında IP/domain doğru mu
cipher / data-ciphers hatası (OpenVPN sürüm farkı)
Client tarafında aşağıdakini eklemek gerekebilir:
data-ciphers AES-256-GCM:AES-128-GCM
data-ciphers-fallback AES-256-GCM
10) Güvenlik için küçük ama etkili öneriler
- Her kullanıcı için ayrı client sertifikası oluşturun (
client2,client3gibi) - Bir cihaz kaybolursa ilgili client sertifikasını iptal edin (CRL)
- SSH’ı sadece anahtar ile açın, root login’i kapatın
- VPN portunu 1194 yerine farklı bir UDP porta taşıyabilirsiniz
- Sunucuyu düzenli güncelleyin:
sudo apt update && sudo apt upgrade -y
Hepsi bu kadar vpn hazır kullanabilirsiniz.
Tepkiniz Nedir?
Beğen
0
Beğenmedim
0
Sevgi
0
Komik
0
Öfkeli
0
Üzgün
0
Vay
0