Takip et

Debian 9 Üzerinde OpenVPN Sunucusu Kurulumu: Kapsamlı Bir Rehber

Debian 9 Üzerinde OpenVPN Sunucusu Kurulumu: Kapsamlı Bir Rehber OpenVPN, güvenli ve şifrelenmiş bir bağlantı oluşturarak internet trafiğini

Debian 9 Üzerinde OpenVPN Sunucusu Kurulumu: Kapsamlı Bir Rehber

OpenVPN, güvenli ve şifrelenmiş bir bağlantı oluşturarak internet trafiğinizi korumanıza olanak tanıyan popüler bir açık kaynaklı Sanal Özel Ağ (VPN) çözümüdür. İnternet servis sağlayıcınızın (İSS) veya halka açık Wi-Fi ağlarının potansiyel gözetiminden korunmak, coğrafi kısıtlamalı içeriklere erişmek veya uzak bir ağa güvenli bir şekilde bağlanmak için OpenVPN kullanabilirsiniz. Bu kapsamlı rehberde, Debian 9 işletim sistemi kurulu bir sunucu üzerinde adım adım OpenVPN sunucusu kurulumunu ve yapılandırmasını ele alacağız.

Giriş: OpenVPN ve Önemi

Günümüz dijital çağında çevrimiçi güvenlik ve gizlilik her zamankinden daha kritik hale gelmiştir. İnternet trafiğimiz, İSS’ler, devlet kurumları ve kötü niyetli aktörler tarafından izlenebilir, kaydedilebilir ve analiz edilebilir. İşte bu noktada VPN’ler devreye girer. VPN, internet bağlantınızı şifreleyerek ve trafiğinizi uzak bir sunucu üzerinden yönlendirerek çevrimiçi kimliğinizi ve verilerinizi korur.

OpenVPN, esnekliği, güçlü şifreleme yetenekleri ve açık kaynak kodlu yapısıyla öne çıkan bir VPN protokolüdür. Bu özellikleri sayesinde hem bireysel kullanıcılar hem de kurumsal ortamlar için tercih edilen bir çözümdür. Debian 9 ise kararlılığı, güvenilirliği ve geniş paket depoları sayesinde sunucu sistemleri için ideal bir platformdur. Bu rehberde, bu iki güçlü aracı bir araya getirerek kendi güvenli VPN sunucunuzu nasıl kuracağınızı detaylı bir şekilde açıklayacağız.

Ön Gereksinimler

Kuruluma başlamadan önce aşağıdaki ön gereksinimleri karşıladığınızdan emin olun:

* Debian 9 Sunucu: İnternet erişimi olan, Debian 9 (Stretch) işletim sistemi kurulu bir sanal özel sunucu (VPS) veya fiziksel sunucuya ihtiyacınız var. Sunucunuzun en az 512 MB RAM’e sahip olması önerilir.
* Root Erişimi veya Sudo Yetkileri: Sunucuda komutları çalıştırmak için root kullanıcısı olarak oturum açmış olmanız veya sudo yetkilerine sahip bir kullanıcı hesabınızın bulunması gerekmektedir.
* Statik Genel IP Adresi: OpenVPN sunucunuzun sabit bir genel IP adresine sahip olması şarttır, böylece istemciler sunucuya her zaman aynı adres üzerinden bağlanabilir.
* Temel Linux Komut Bilgisi: Temel Linux komut satırı bilgisine (dizinlerde gezinme, dosya düzenleme vb.) sahip olmanız kurulum sürecini kolaylaştıracaktır.
* Güvenlik Duvarı Bilgisi: Sunucunuzda kurulu bir güvenlik duvarı (örn. UFW veya iptables) varsa, OpenVPN’in kullanacağı portların açılması gerekecektir.

Adım 1: Sunucuyu Güncelleme ve Gerekli Paketleri Kurma

Herhangi bir kuruluma başlamadan önce, sisteminizin güncel olduğundan ve gerekli paketlerin yüklü olduğundan emin olmak iyi bir uygulamadır.

SSH üzerinden sunucunuza bağlanın ve aşağıdaki komutları çalıştırarak paket listesini güncelleyin ve yüklü paketleri yükseltin:

sudo apt update
sudo apt upgrade -y

Ardından, OpenVPN sunucusunu ve sertifika oluşturmak için kullanacağımız Easy-RSA yardımcı programını yükleyin:

sudo apt install openvpn easy-rsa -y

Bu komutlar, OpenVPN sunucu yazılımını ve SSL/TLS sertifikaları ile anahtarları oluşturmak için gerekli olan Easy-RSA paketini sisteminize kuracaktır.

Adım 2: Sertifika Yetkilisi (CA) ve Sunucu Sertifikalarını Oluşturma

OpenVPN, istemci ve sunucu arasındaki iletişimi şifrelemek ve kimlik doğrulaması yapmak için SSL/TLS sertifikalarını kullanır. Bu sertifikaları oluşturmak için Easy-RSA aracını kullanacağız.

Easy-RSA Kullanımı

İlk olarak, Easy-RSA komut dosyalarını OpenVPN yapılandırma dizinine kopyalamamız gerekiyor. Bu, orijinal dosyaları değiştirmeden kendi sertifika yetkilinizi (CA) oluşturmanızı sağlar.

sudo cp -r /usr/share/easy-rsa/ /etc/openvpn/easy-rsa

Şimdi Easy-RSA dizinine geçin:

cd /etc/openvpn/easy-rsa

Easy-RSA’nın PKI (Public Key Infrastructure) dizinini başlatın. Bu işlem, sertifika yetkilisi için gerekli dizin yapısını ve dosyaları oluşturacaktır.

sudo ./easyrsa init-pki

Şimdi kendi Sertifika Yetkilinizi (CA) oluşturacağız. CA, diğer tüm sertifikaları imzalayacak olan ana sertifikadır.

sudo ./easyrsa build-ca nopass

nopass seçeneği, CA anahtarınız için bir parola belirlemenizi istemez. Güvenlik açısından bir parola belirlemek daha iyidir ancak sunucunun otomatik olarak yeniden başlatılması durumunda müdahale gerektirmemesi için nopass kullanılabilir. Eğer parola belirlemek isterseniz nopass seçeneğini kaldırın. Komut sizden CA için ortak bir ad (Common Name) girmenizi isteyecektir (örn. MyOpenVPNCA).

Ardından, OpenVPN sunucusu için bir anahtar ve sertifika isteği oluşturun:

sudo ./easyrsa gen-req server nopass

Burada da nopass seçeneğini kullanarak anahtar için parola belirlemeyi atlayabilirsiniz. Ortak ad olarak server girmeniz önerilir.

Şimdi sunucu sertifika isteğini CA’nızla imzalayın. Bu işlem, CA’nın sunucu sertifikasının güvenilir olduğunu onaylamasını sağlar.

sudo ./easyrsa sign-req server server

Sizden yes yazarak işlemi onaylamanız istenecektir.

Diffie-Hellman parametrelerini oluşturun. Bu parametreler, istemci ve sunucu arasında güvenli bir anahtar değişimi için kullanılır. Bu adım biraz zaman alabilir (CPU gücüne bağlı olarak birkaç dakika ila yarım saat veya daha fazla).

sudo ./easyrsa gen-dh

Son olarak, TLS kimlik doğrulaması için bir HMAC imzası (ta.key) oluşturun. Bu anahtar, sunucuya gönderilen her kontrol paketi için bir karma oluşturarak DDoS saldırılarını ve port taramasını önlemeye yardımcı olur. Ayrıca, şifreleme ve kimlik doğrulama için ek bir güvenlik katmanı sağlar.

sudo openvpn --genkey --secret ta.key

Bu adımlarla, OpenVPN sunucunuz için gerekli tüm sertifika ve anahtarları oluşturmuş oldunuz.

Adım 3: OpenVPN Sunucu Yapılandırması

Sertifikalar hazır olduğuna göre, OpenVPN sunucusunu yapılandırmaya geçebiliriz.

Yapılandırma Dosyasını Oluşturma

OpenVPN sunucu yapılandırma dosyası /etc/openvpn/server.conf dizininde bulunur. Bu dosyayı oluşturmak ve düzenlemek için bir metin düzenleyici kullanın (örneğin nano):

sudo nano /etc/openvpn/server.conf

Aşağıdaki yapılandırma parametrelerini dosyaya yapıştırın. Bu yapılandırma, çoğu kullanım senaryosu için iyi bir başlangıç noktasıdır.

port 1194
proto udp
dev tun

ca ca.crt
cert server.crt
key server.key
dh dh.pem
tls-auth ta.key 0 # Bu satır sunucu tarafı için 0 olmalı

topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt

push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"

keepalive 10 120

cipher AES-256-CBC
auth SHA256

user nobody
group nogroup

persist-key
persist-tun

status /var/log/openvpn/openvpn-status.log
log-append /var/log/openvpn/openvpn.log
verb 3
explicit-exit-notify 1

Bu parametrelerin her birini kısaca açıklayalım:

* port 1194: OpenVPN’in dinleyeceği port numarasıdır. Varsayılan olarak 1194’tür.
* proto udp: İletişim protokolüdür. UDP (User Datagram Protocol) genellikle TCP’ye göre daha hızlıdır ve VPN için tercih edilir.
* dev tun: Sanal ağ arayüzü tipidir. Katman 3 IP tünellemesi için tun kullanılır.
* ca ca.crt: Sertifika yetkilisi (CA) sertifika dosyasının yoludur.
* cert server.crt: Sunucu sertifika dosyasının yoludur.
* key server.key: Sunucu özel anahtar dosyasının yoludur.
* dh dh.pem: Diffie-Hellman parametre dosyasının yoludur.
* tls-auth ta.key 0: TLS kimlik doğrulama anahtarının yoludur. 0 sunucu tarafı olduğunu belirtir.
* topology subnet: İstemcilere IP adresleri atamak için alt ağ topolojisi kullanır. Bu, modern OpenVPN sürümleri için önerilir ve istemci yapılandırmasını basitleştirir.
* server 10.8.0.0 255.255.255.0: VPN istemcilerinin bağlanacağı sanal ağın IP aralığı ve alt ağ maskesidir. Bu, gerçek ağınızla çakışmamalıdır.
* ifconfig-pool-persist ipp.txt: Bağlanan istemcilerin IP adreslerini kaydeder, böylece aynı istemci her bağlandığında aynı IP adresini alır.
* push "redirect-gateway def1 bypass-dhcp": İstemcilere tüm internet trafiğini VPN tüneli üzerinden yönlendirmelerini söyler.
* push "dhcp-option DNS 8.8.8.8": İstemcilere Google’ın DNS sunucularını kullanmalarını söyler. Kendi DNS sunucularınızı veya farklı bir DNS hizmetini (örn. Cloudflare 1.1.1.1) kullanabilirsiniz.
* keepalive 10 120: Bağlantının canlı tutulması için gönderilen kontrol paketlerinin sıklığını ve bağlantının kopuk sayılmadan önce beklenecek süreyi belirler.
* cipher AES-256-CBC: Veri şifrelemesi için kullanılacak algoritmadır. AES-256-CBC güçlü bir şifreleme sağlar. AES-256-GCM de daha modern ve performanslı bir seçenektir, ancak istemci desteği de gerektirir.
* auth SHA256: Veri kimlik doğrulaması için kullanılacak algoritmadır. SHA256 güçlü bir karma algoritmasıdır.
* user nobody, group nogroup: Güvenlik amacıyla OpenVPN’in ayrıcalıksız bir kullanıcı ve grup altında çalışmasını sağlar.
* persist-key, persist-tun: Yeniden bağlantı durumunda anahtarların ve tun cihazının yeniden yüklenmesini önler, bu da bağlantı kesintilerini azaltır.
* status /var/log/openvpn/openvpn-status.log: Bağlantı durum bilgilerinin kaydedileceği dosya.
* log-append /var/log/openvpn/openvpn.log: Logların kaydedileceği dosya.
* verb 3: Log detay seviyesini ayarlar. 3 orta seviye detaydır, sorun giderme için artırılabilir (4 veya 5).
* explicit-exit-notify 1: İstemcinin sunucuya bağlantıyı sonlandırdığını bildirmesini sağlar.

Dosyayı kaydedin ve kapatın (nano’da Ctrl+O, Enter, Ctrl+X).

Gerekli Dosyaları Kopyalama

Şimdi Easy-RSA ile oluşturduğumuz sertifika ve anahtar dosyalarını OpenVPN yapılandırma dizinine kopyalamamız gerekiyor:

sudo cp /etc/openvpn/easy-rsa/pki/ca.crt /etc/openvpn/
sudo cp /etc/openvpn/easy-rsa/pki/issued/server.crt /etc/openvpn/
sudo cp /etc/openvpn/easy-rsa/pki/private/server.key /etc/openvpn/
sudo cp /etc/openvpn/easy-rsa/pki/dh.pem /etc/openvpn/
sudo cp /etc/openvpn/easy-rsa/ta.key /etc/openvpn/

Bu dosyaların doğru dizinde olması, OpenVPN sunucusunun başlaması için kritik öneme sahiptir.

Adım 4: Ağ Yönlendirmeyi Etkinleştirme

OpenVPN sunucusunun istemcilerden gelen trafiği internete yönlendirebilmesi için IP yönlendirme (IP forwarding) özelliğinin etkinleştirilmesi gerekmektedir.

/etc/sysctl.conf dosyasını açın:

sudo nano /etc/sysctl.conf

Dosya içinde net.ipv4.ip_forward=1 satırını bulun ve başındaki # işaretini kaldırarak yorum satırı olmaktan çıkarın. Eğer yoksa, dosyanın sonuna ekleyebilirsiniz.

net.ipv4.ip_forward=1

Dosyayı kaydedin ve kapatın. Değişiklikleri hemen uygulamak için aşağıdaki komutu çalıştırın:

sudo sysctl -p

Bu komut, çekirdek parametrelerini yeniden yükler ve IP yönlendirmeyi etkinleştirir.

Adım 5: Güvenlik Duvarını Yapılandırma

Güvenlik duvarı, sunucunuzu yetkisiz erişimden korumak için önemlidir. OpenVPN’in çalışabilmesi için belirli portların açılması ve VPN trafiğinin yönlendirilmesi için NAT (Network Address Translation) kurallarının eklenmesi gerekmektedir. Debian sistemlerde yaygın olarak UFW (Uncomplicated Firewall) veya iptables kullanılır.

UFW Kullanımı

Eğer sunucunuzda UFW yüklü ve etkinse, aşağıdaki adımları izleyin:

SSH bağlantınızın kesilmemesi için öncelikle SSH portunu (varsayılan 22) açın:

sudo ufw allow OpenSSH

Ardından, OpenVPN’in kullandığı portu (varsayılan 1194/udp) açın:

sudo ufw allow 1194/udp

UFW’nin varsayılan yönlendirme politikasını değiştirmemiz gerekiyor. /etc/default/ufw dosyasını açın:

sudo nano /etc/default/ufw

DEFAULT_FORWARD_POLICY="DROP" satırını bulun ve DEFAULT_FORWARD_POLICY="ACCEPT" olarak değiştirin.

Şimdi NAT kurallarını eklememiz gerekiyor. /etc/ufw/before.rules dosyasını açın:

sudo nano /etc/ufw/before.rules

Dosyanın en başına (yani *filter satırından önce) aşağıdaki NAT kurallarını ekleyin:

# NAT table rules
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
COMMIT

End NAT table rules

ÖNEMLİ: -o eth0 kısmındaki eth0 değerini sunucunuzun internete çıkan ana ağ arayüzü ile değiştirmeniz gerekebilir. Bu arayüzü ip a komutunu çalıştırarak bulabilirsiniz (genellikle eth0 veya ens3, enp0s3 gibi bir isimdir). 10.8.0.0/24 ise OpenVPN ağınızın IP aralığıdır, server.conf dosyasında belirlediğinizle aynı olmalıdır.

Dosyayı kaydedin ve kapatın. Değişikliklerin etkili olması için UFW’yi devre dışı bırakıp tekrar etkinleştirin:

sudo ufw disable
sudo ufw enable

Size Command may disrupt existing ssh connections. Proceed with operation (y|n)? diye sorarsa y yazıp onaylayın.

IPTables Kullanımı

Eğer UFW kullanmıyorsanız veya iptables’ı tercih ediyorsanız, aşağıdaki kuralları uygulamanız gerekir. Bu kurallar kalıcı değildir, sunucu yeniden başlatıldığında kaybolurlar. Kalıcı hale getirmek için iptables-persistent gibi bir paket kullanmanız önerilir.

# Gelen OpenVPN trafiğine izin ver
sudo iptables -A INPUT -i tun+ -j ACCEPT
sudo iptables -A FORWARD -i tun+ -j ACCEPT
sudo iptables -A FORWARD -o tun+ -j ACCEPT

VPN trafiğinin ana ağ arayüzü üzerinden çıkmasına izin ver

eth0 yerine kendi ana ağ arayüzünüzü kullanın

sudo iptables -A FORWARD -i tun+ -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT sudo iptables -A FORWARD -i eth0 -o tun+ -m state --state RELATED,ESTABLISHED -j ACCEPT

NAT kuralı (VPN trafiğini internete yönlendirmek için)

eth0 yerine kendi ana ağ arayüzünüzü kullanın

sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

OpenVPN portunu aç

sudo iptables -A INPUT -p udp --dport 1194 -j ACCEPT

Kuralları kalıcı hale getirmek için:

sudo apt install iptables-persistent -y
sudo netfilter-persistent save

Bu komutlar, mevcut iptables kurallarını kaydedecek ve sunucu yeniden başlatıldığında otomatik olarak yüklenmelerini sağlayacaktır.

Adım 6: OpenVPN Hizmetini Başlatma ve Etkinleştirme

Tüm yapılandırmalar tamamlandıktan sonra OpenVPN hizmetini başlatabilir ve sistem başlangıcında otomatik olarak başlaması için etkinleştirebiliriz.

sudo systemctl start openvpn@server
sudo systemctl enable openvpn@server

Hizmetin durumunu kontrol etmek ve herhangi bir hata olup olmadığını görmek için:

sudo systemctl status openvpn@server

Eğer her şey yolundaysa, çıktıda Active: active (running) ifadesini görmelisiniz. Herhangi bir hata durumunda, log dosyalarını kontrol edin (/var/log/openvpn/openvpn.log veya journalctl -u openvpn@server.service).

Adım 7: İstemci Yapılandırması ve Sertifikaları Oluşturma

OpenVPN sunucunuz artık çalışıyor. Şimdi istemcilerin bağlanabilmesi için istemci sertifikaları oluşturmamız ve bir istemci yapılandırma dosyası hazırlamamız gerekiyor.

İstemci Sertifikası Oluşturma

Her istemci için ayrı bir sertifika ve anahtar çifti oluşturmak en iyi güvenlik uygulamasıdır. Bu, belirli bir istemcinin erişimini iptal etmeniz gerektiğinde diğer istemcilerin etkilenmemesini sağlar.

Easy-RSA dizinine geri dönün:

cd /etc/openvpn/easy-rsa

Yeni bir istemci için anahtar ve sertifika isteği oluşturun (örneğin client1 adında):

sudo ./easyrsa gen-req client1 nopass

İstemci isteğini CA’nızla imzalayın:

sudo ./easyrsa sign-req client client1

yes yazarak onaylayın.

İstemci Yapılandırma Dosyası Oluşturma

İstemcilerinize dağıtacağınız tek bir .ovpn dosyası oluşturmak için, tüm gerekli sertifika ve anahtarları içeren bir betik kullanacağız.

İlk olarak, istemci yapılandırma dosyalarını depolamak için bir dizin oluşturun:

mkdir -p ~/client-configs/files

Şimdi temel bir istemci yapılandırma dosyası oluşturalım. Bu dosya, tüm istemciler için ortak ayarları içerecektir.

nano ~/client-configs/base.conf

Aşağıdaki içeriği dosyaya yapıştırın:

client
dev tun
proto udp
remote YOUR_SERVER_IP 1194 # BURAYI SUNUCUNUZUN GENEL IP ADRESİ İLE DEĞİŞTİRİN
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
tls-auth ta.key 1 # Bu satır istemci tarafı için 1 olmalı
cipher AES-256-CBC
auth SHA256
verb 3

ÖNEMLİ: remote YOUR_SERVER_IP 1194 satırındaki YOUR_SERVER_IP kısmını sunucunuzun gerçek genel IP adresiyle değiştirmeniz gerekmektedir. Eğer bir alan adı kullanıyorsanız (örn. vpn.example.com), IP adresi yerine alan adınızı yazabilirsiniz.

Dosyayı kaydedin ve kapatın.

İstemci Yapılandırma Dosyasını Birleştirme

Şimdi, sertifikaları ve anahtarları temel yapılandırma dosyasına ekleyerek tek bir .ovpn dosyası oluşturacak bir betik hazırlayalım.

nano ~/client-configs/make_config.sh

Aşağıdaki betik içeriğini dosyaya yapıştırın:

#!/bin/bash

Bu betik, bir OpenVPN istemcisi için tek bir .ovpn yapılandırma dosyası oluşturur.

KEY_DIR=/etc/openvpn/easy-rsa/pki OUTPUT_DIR=~/client-configs/files BASE_CONFIG=~/client-configs/base.conf if [ -z "$1" ]; then echo "Kullanım: $0 " exit 1 fi CLIENT=$1

İstemcinin sertifikaları ve anahtarları için gerekli dosyaların varlığını kontrol et

if [ ! -f "${KEY_DIR}/issued/${CLIENT}.crt" ]; then echo "Hata: İstemci sertifikası '${KEY_DIR}/issued/${CLIENT}.crt' bulunamadı." echo "Lütfen 'sudo ./easyrsa gen-req ${CLIENT} nopass' ve 'sudo ./easyrsa sign-req client ${CLIENT}' komutlarını çalıştırarak sertifikayı oluşturun." exit 1 fi if [ ! -f "${KEY_DIR}/private/${CLIENT}.key" ]; then echo "Hata: İstemci anahtarı '${KEY_DIR}/private/${CLIENT}.key' bulunamadı." echo "Lütfen 'sudo ./easyrsa gen-req ${CLIENT} nopass' komutunu çalıştırarak anahtarı oluşturun." exit 1 fi

ca.crt ve ta.key dosyalarının varlığını kontrol et

if [ ! -f "${KEY_DIR}/ca.crt" ]; then echo "Hata: CA sertifikası '${KEY_DIR}/ca.crt' bulunamadı." exit 1 fi if [ ! -f "/etc/openvpn/ta.key" ]; then echo "Hata: TLS auth anahtarı '/etc/openvpn/ta.key' bulunamadı." exit 1 fi

Tüm parçaları birleştirerek .ovpn dosyasını oluştur

cat ${BASE_CONFIG} \ ') \ ${KEY_DIR}/ca.crt \ \n') \ ${KEY_DIR}/issued/${CLIENT}.crt \ \n') \ ${KEY_DIR}/private/${CLIENT}.key \ \n') \ /etc/openvpn/ta.key \ ') \ > ${OUTPUT_DIR}/${CLIENT}.ovpn echo "İstemci yapılandırma dosyası oluşturuldu: ${OUTPUT_DIR}/${CLIENT}.ovpn" echo "Bu dosyayı istemcinize güvenli bir şekilde aktarın."

Dosyayı kaydedin ve kapatın. Ardından betiği çalıştırılabilir yapın:

chmod +x ~/client-configs/make_config.sh

Şimdi bu betiği kullanarak client1 için .ovpn dosyasını oluşturun:

~/client-configs/make_config.sh client1

Bu komut, ~/client-configs/files/client1.ovpn yolunda tüm gerekli sertifika ve anahtarları içeren tek bir yapılandırma dosyası oluşturacaktır.

İstemci Dosyalarını İndirme

Oluşturduğunuz .ovpn dosyasını yerel bilgisayarınıza indirmeniz gerekmektedir. Bunu yapmak için scp (Secure Copy Protocol) veya sftp gibi güvenli bir dosya aktarım aracı kullanabilirsiniz.

Örneğin, yerel makinenizin terminalinden (sunucudan değil):

scp user@your_server_ip:~/client-configs/files/client1.ovpn .

user yerine sunucudaki kullanıcı adınızı, your_server_ip yerine sunucunuzun IP adresini yazın. Nokta (.) ise dosyayı mevcut dizine indirecektir.

Adım 8: OpenVPN İstemcisini Yapılandırma

.ovpn dosyasını yerel makinenize indirdikten sonra, OpenVPN istemcinizi yapılandırmanız gerekir.

* Windows: OpenVPN GUI uygulamasını indirip kurun. .ovpn dosyasını C:\Program Files\OpenVPN\config dizinine kopyalayın. Uygulamayı çalıştırın, sistem tepsisindeki simgesine sağ tıklayın ve “Connect” seçeneğini seçin.
* macOS: Tunnelblick veya OpenVPN Connect uygulamasını kullanabilirsiniz. .ovpn dosyasını uygulamaya sürükleyip bırakarak kolayca içe aktarabilirsiniz.
* Linux: NetworkManager entegrasyonu (OpenVPN eklentisi ile) veya OpenVPN komut satırı istemcisini kullanabilirsiniz. NetworkManager’da VPN bağlantısı ekle seçeneğini kullanarak .ovpn dosyasını içe aktarabilirsiniz. Komut satırı için sudo openvpn --config client1.ovpn komutunu kullanabilirsiniz.
* Mobil Cihazlar (Android/iOS): Resmi OpenVPN Connect uygulamasını uygulama mağazanızdan indirin. .ovpn dosyasını cihazınıza aktarın (e-posta, bulut depolama vb.) ve uygulama içinden içe aktarma seçeneğini kullanın.

Bağlantı kurulduktan sonra, IP adresinizi kontrol ederek VPN üzerinden bağlandığınızdan emin olabilirsiniz (örn. Google’da “what is my ip” araması yaparak). Sunucunuzun IP adresini görmelisiniz.

Gelişmiş Konfigürasyon ve Güvenlik İpuçları

OpenVPN kurulumunuzu daha da güvenli ve yönetilebilir hale getirmek için bazı gelişmiş konfigürasyonları ve ipuçlarını düşünebilirsiniz:

Sertifika İptali (CRL)

Bir istemci anahtarı çalınırsa veya bir kullanıcının VPN erişimini iptal etmeniz gerekirse, o istemcinin sertifikasını iptal edebilirsiniz.

1. Easy-RSA dizinine gidin: cd /etc/openvpn/easy-rsa
2. İstemci sertifikasını iptal edin (örneğin client1): sudo ./easyrsa revoke client1 (yes ile onaylayın)
3. Sertifika İptal Listesi (CRL) oluşturun: sudo ./easyrsa gen-crl
4. Oluşturulan crl.pem dosyasını OpenVPN yapılandırma dizinine kopyalayın: sudo cp /etc/openvpn/easy-rsa/pki/crl.pem /etc/openvpn/
5. server.conf dosyasını düzenleyin: sudo nano /etc/openvpn/server.conf
6. Dosyaya aşağıdaki satırı ekleyin: crl-verify crl.pem
7. OpenVPN hizmetini yeniden başlatın: sudo systemctl restart openvpn@server

Bu işlemden sonra, iptal edilen sertifikaya sahip istemci VPN’e bağlanamayacaktır.

Loglama ve İzleme

server.conf dosyasındaki verb parametresi loglama seviyesini belirler. Sorun giderme için verb 4 veya 5 kullanmak faydalı olabilir, ancak normal kullanımda verb 3 yeterlidir. Log dosyalarını düzenli olarak kontrol etmek (/var/log/openvpn/openvpn.log), olası sorunları erken tespit etmenizi sağlar.

Performans Optimizasyonu

Yüksek bant genişliğine sahip bağlantılar için server.conf dosyasına aşağıdaki satırları ekleyerek performansı artırabilirsiniz:

sndbuf 393216
rcvbuf 393216
fast-io

Bu ayarlar, arabellek boyutlarını artırır ve G/Ç işlemlerini hızlandırır.

Çoklu İstemciler ve Yönetim

Her yeni istemci için Adım 7’deki gen-req ve sign-req adımlarını tekrarlayarak ve make_config.sh betiğini farklı bir istemci adıyla çalıştırarak kolayca yeni .ovpn dosyaları oluşturabilirsiniz. Örneğin:

sudo ./easyrsa gen-req client2 nopass
sudo ./easyrsa sign-req client client2
~/client-configs/make_config.sh client2

DNS Sızıntısı Koruması

Yukarıdaki yapılandırmada Google DNS sunucularını kullandık (push "dhcp-option DNS 8.8.8.8"). İstemcilerinizin DNS sorgularının VPN tünelinden geçmesini sağlamak için bu önemlidir. Kendi DNS sunucularınızı veya başka gizlilik odaklı DNS sunucularını (örn. Cloudflare 1.1.1.1, Quad9 9.9.9.9) kullanmayı düşünebilirsiniz.

TCP vs UDP

Varsayılan olarak UDP protokolünü kullandık (proto udp). UDP genellikle daha hızlıdır ancak bazı kısıtlayıcı ağlarda (örn. otel Wi-Fi’leri) engellenebilir. Eğer bağlantı sorunları yaşıyorsanız, proto tcp olarak değiştirebilir ve OpenVPN’in 443 gibi farklı bir portta çalışmasını sağlayarak daha fazla ağda bypass etmeyi deneyebilirsiniz. Ancak TCP üzerinden TCP tünellemesi performansı düşürebilir.

Güvenlik Duvarı Kuralları

Sunucunuzdaki güvenlik duvarı kurallarının sadece OpenVPN için gerekli olan portu (varsayılan 1194/udp) ve SSH portunu açtığından emin olun. Gereksiz portları açık bırakmak güvenlik riskleri oluşturur.

Sorun Giderme

Kurulum sırasında veya sonrasında sorunlarla karşılaşırsanız, aşağıdaki adımları izleyebilirsiniz:

* OpenVPN Loglarını Kontrol Edin: Sunucu tarafındaki en önemli sorun giderme aracı log dosyalarıdır.

sudo journalctl -u openvpn@server.service

veya

sudo tail -f /var/log/openvpn/openvpn.log

Bu loglarda “ERROR” veya “WARNING” mesajlarını arayın.
* Güvenlik Duvarı Kurallarını Kontrol Edin: OpenVPN portunun (1194/udp) açık olduğundan ve NAT kurallarının doğru yapılandırıldığından emin olun.

sudo ufw status verbose
    sudo iptables -t nat -L -v -n

* IP Yönlendirmeyi Kontrol Edin: IP yönlendirmenin etkin olduğundan emin olun.

cat /proc/sys/net/ipv4/ip_forward

Bu komut 1 döndürmelidir.
* Sertifika ve Anahtar Dosyalarını Kontrol Edin: Tüm sertifika ve anahtar dosyalarının (ca.crt, server.crt, server.key, dh.pem, ta.key) /etc/openvpn/ dizininde olduğundan ve doğru izinlere sahip olduğundan emin olun.
* İstemci Yapılandırmasını Kontrol Edin: İstemci .ovpn dosyasındaki sunucu IP adresinin veya alan adının doğru olduğundan, tüm sertifika ve anahtarların doğru şekilde gömüldüğünden emin olun.
* Ağ Arayüzünü Kontrol Edin: Sunucuda ip a komutunu çalıştırarak tun0 gibi bir OpenVPN arayüzünün oluşup oluşmadığını kontrol edin.
* Ping Testi: İstemci bağlandıktan sonra, VPN ağı üzerindeki sunucu IP’sine (örn. 10.8.0.1) ping atarak bağlantıyı test edin.

Sonuç

Bu rehberde, Debian 9 işletim sistemi üzerinde kendi OpenVPN sunucunuzu kurmak için gerekli tüm adımları detaylı bir şekilde ele aldık. Kendi VPN sunucunuzu kurarak internet trafiğiniz üzerinde tam kontrole sahip olabilir, çevrimiçi gizliliğinizi artırabilir ve güvenli bir şekilde internete erişebilirsiniz. Kurulum süreci ilk başta karmaşık görünebilir, ancak adım adım ilerleyerek ve her bir bileşenin amacını anlayarak başarılı bir şekilde kendi güvenli VPN çözümünüzü oluşturabilirsiniz. Unutmayın, güvenli bir VPN deneyimi için sunucunuzu ve OpenVPN yazılımını düzenli olarak güncel tutmak önemlidir.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Gönder

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.
Exit mobile version