Debian 11 Üzerinde OpenVPN Sunucusu Kurulumu: Kapsamlı Bir Rehber
İnternet çağında gizlilik ve güvenlik, bireyler ve işletmeler için hayati önem taşımaktadır. Her gün karşılaştığımız siber tehditler, veri ihlalleri ve gözetim faaliyetleri, güvenli bir çevrimiçi bağlantıya olan ihtiyacı artırmaktadır. İşte bu noktada Sanal Özel Ağlar (VPN’ler) devreye girer. Bir VPN, internet bağlantınızı şifreleyerek ve IP adresinizi maskeleyerek çevrimiçi aktivitelerinizi güvence altına alır ve gizliliğinizi korur. Piyasada birçok VPN çözümü bulunsa da, açık kaynak kodlu ve son derece esnek yapısıyla OpenVPN, kendi VPN sunucunuzu kurmak isteyenler için popüler ve güçlü bir seçenektir.
Bu makale, Debian 11 (kod adı Bullseye) işletim sistemi üzerinde kendi OpenVPN sunucunuzu adım adım nasıl kuracağınızı detaylı bir şekilde açıklayacaktır. Kendi OpenVPN sunucunuzu kurmak, hem maliyet açısından avantaj sağlayabilir hem de bağlantınız üzerinde tam kontrol sahibi olmanızı mümkün kılar. İster coğrafi kısıtlamaları aşmak, ister halka açık Wi-Fi ağlarında güvenliğinizi sağlamak, isterse de ev ağınıza uzaktan güvenli bir şekilde erişmek isteyin, bu rehber size yol gösterecektir.
OpenVPN Nedir ve Neden Kullanmalısınız?
OpenVPN, Secure Socket Layer (SSL) veya Transport Layer Security (TLS) protokollerini kullanarak güvenli noktadan noktaya veya siteden siteye bağlantılar kurmak için kullanılan açık kaynaklı bir yazılımdır. Çapraz platform desteği sayesinde Windows, macOS, Linux, Android ve iOS gibi birçok işletim sisteminde kullanılabilir.
Kendi OpenVPN sunucunuzu kurmanın başlıca nedenleri şunlardır:
* Gelişmiş Güvenlik: İnternet trafiğinizi güçlü şifreleme algoritmalarıyla (AES-256 gibi) korur, böylece verilerinizin üçüncü şahıslar tarafından izlenmesini veya ele geçirilmesini engeller.
* Gizlilik: Gerçek IP adresinizi gizleyerek çevrimiçi kimliğinizi korur ve internet servis sağlayıcınızın (İSS) veya diğer gözetim organlarının çevrimiçi aktivitelerinizi takip etmesini zorlaştırır.
* Coğrafi Kısıtlamaları Aşma: Sunucunuzun bulunduğu ülkenin IP adresini kullanarak, belirli bölgelere özgü içeriklere veya hizmetlere erişmenizi sağlar.
* Uzaktan Güvenli Erişim: Şirket ağınıza veya ev ağınıza uzaktan güvenli bir şekilde bağlanarak, yerel ağ kaynaklarına erişim imkanı sunar.
* Halka Açık Wi-Fi Güvenliği: Halka açık Wi-Fi ağları genellikle güvensizdir ve verilerinizin kolayca çalınmasına neden olabilir. OpenVPN, bu ağlarda bile bağlantınızı şifreleyerek güvende kalmanızı sağlar.
* Tam Kontrol: Üçüncü taraf bir VPN hizmeti yerine kendi sunucunuzu kurduğunuzda, verilerinizin nasıl işlendiği ve saklandığı konusunda tam kontrole sahip olursunuz.
Ön Gereksinimler
Kuruluma başlamadan önce aşağıdaki ön gereksinimleri karşıladığınızdan emin olun:
* Debian 11 Sunucusu: İnternet erişimi olan, temiz bir Debian 11 işletim sistemi kurulu sanal özel sunucu (VPS) veya fiziksel bir sunucu. Bu sunucunun sabit bir genel IP adresine sahip olması gerekmektedir.
* Root Erişimi veya Sudo Yetkileri: Kurulum için root kullanıcısı olarak oturum açmış olmanız veya sudo yetkilerine sahip bir kullanıcı hesabınızın olması gerekir.
* Temel Linux Komut Bilgisi: Komut satırı arayüzünü (CLI) kullanarak temel Linux komutlarını çalıştırma bilgisi.
* Güvenlik Duvarı Bilgisi: Sunucunuzda kurulu olabilecek güvenlik duvarını (UFW veya iptables) yapılandırma bilgisi.
Adım 1: Sistemi Güncelleme ve Gerekli Paketleri Kurma
Herhangi bir kuruluma başlamadan önce sistem paket listesini güncellemek ve kurulu paketleri yükseltmek iyi bir uygulamadır. Ayrıca OpenVPN sunucusu için gerekli olan openvpn ve sertifika yetkilisi (CA) oluşturmak için easy-rsa paketlerini kuracağız.
Bir terminal açın ve aşağıdaki komutları çalıştırın:
sudo apt update
sudo apt upgrade -y
sudo apt install openvpn easy-rsa -y
* sudo apt update: Paket listesini günceller.
* sudo apt upgrade -y: Kurulu paketleri yükseltir. -y bayrağı, tüm sorulara otomatik olarak “evet” yanıtı verilmesini sağlar.
* sudo apt install openvpn easy-rsa -y: OpenVPN sunucusunu ve sertifika oluşturma araçlarını kurar.
Adım 2: Kolay CA (Certificate Authority) Oluşturma
OpenVPN, istemci ve sunucu arasındaki iletişimin güvenliğini sağlamak için X.509 sertifikalarını kullanır. Bu sertifikalar, bir Sertifika Yetkilisi (CA) tarafından imzalanır. easy-rsa aracı, bu CA’yı ve OpenVPN için gerekli olan diğer tüm sertifikaları ve anahtarları oluşturmayı kolaylaştırır.
İlk olarak, easy-rsa betiklerini OpenVPN yapılandırma dizinine kopyalayın ve çalışma dizinini değiştirin:
sudo cp -r /usr/share/easy-rsa/ /etc/openvpn/
sudo chown -R root:root /etc/openvpn/easy-rsa
sudo chmod -R 700 /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa
Şimdi PKI (Public Key Infrastructure) ortamını başlatacağız:
./easyrsa init-pki
Bu komut, sertifikaları ve anahtarları depolamak için gerekli dizin yapısını oluşturur.
Ardından, CA’yı oluşturacağız. CA’nın oluşturulması sırasında sizden bir “Common Name” (Ortak Ad) girmeniz istenecektir. Bu genellikle şirket adınız veya sunucunuzun adı olabilir. Örneğin, “MyOpenVPN CA” gibi.
./easyrsa build-ca nopass
* nopass bayrağı, CA anahtarı için bir parola belirlemenizi atlar. Daha fazla güvenlik için bir parola belirleyebilirsiniz, ancak her yeniden başlatmada parolayı girmeniz gerekir.
Şimdi sunucu için bir sertifika isteği ve özel anahtar oluşturacağız. “server” adını kullanacağız. Yine bir parola belirlemek istemiyorsanız nopass kullanın.
./easyrsa gen-req server nopass
Ardından, sunucu sertifika isteğini CA ile imzalayacağız. Bu, sunucunun kimliğini CA tarafından doğrulanmış hale getirir. Onaylamak için yes yazmanız istenecektir.
./easyrsa sign-req server server
Son olarak, Diffie-Hellman (DH) parametrelerini oluşturacağız. Bu parametreler, istemciler ve sunucu arasında güvenli bir anahtar değişimi için kullanılır. Bu işlem biraz zaman alabilir (birkaç dakika sürebilir).
./easyrsa gen-dh
OpenVPN’in TLS kimlik doğrulaması için bir ta.key dosyası da oluşturmamız gerekiyor. Bu anahtar, sunucu ve istemci arasındaki TLS bağlantısını daha da güçlendirir ve DoS saldırılarına karşı koruma sağlar.
openvpn --genkey --secret ta.key
Bu adımda, OpenVPN sunucusu için gerekli tüm sertifika ve anahtar dosyalarını oluşturmuş olduk.
Adım 3: OpenVPN Sunucu Yapılandırması
Oluşturduğumuz sertifikaları ve anahtarları OpenVPN’in kullanacağı dizine kopyalamamız gerekiyor.
sudo cp pki/ca.crt pki/issued/server.crt pki/private/server.key pki/dh.pem /etc/openvpn/
sudo cp ta.key /etc/openvpn/
Şimdi OpenVPN sunucusu için bir yapılandırma dosyası oluşturacağız: /etc/openvpn/server.conf. Bu dosya, sunucunun nasıl çalışacağını tanımlar.
sudo nano /etc/openvpn/server.conf
Aşağıdaki içeriği server.conf dosyasına yapıştırın. Bu, çoğu kullanım durumu için iyi bir başlangıç yapılandırmasıdır. Açıklamalar, her satırın ne işe yaradığını anlamanıza yardımcı olacaktır.
# Sunucunun dinleyeceği port ve protokol
port 1194
proto udp
VPN tünel cihazı türü
dev tun
Sertifika ve anahtar dosyalarının yolları
ca ca.crt
cert server.crt
key server.key
dh dh.pem
TLS kimlik doğrulama anahtarı
tls-auth ta.key 0 # '0' sunucu tarafı için
VPN istemcilerine atanacak IP adresi aralığı
server 10.8.0.0 255.255.255.0
İstemci IP adreslerini kalıcı hale getir
ifconfig-pool-persist ipp.txt
İstemcilere varsayılan ağ geçidi olarak VPN'i kullanmalarını bildir
push "redirect-gateway def1 bypass-dhcp"
İstemcilere DNS sunucusu atama (Google DNS örnek olarak)
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
İsteğe bağlı: Cloudflare DNS
push "dhcp-option DNS 1.1.1.1"
push "dhcp-option DNS 1.0.0.1"
Bağlantıyı canlı tutmak için keepalive ayarları (10 saniyede bir ping, 120 saniye sonra bağlantı kesilir)
keepalive 10 120
Şifreleme algoritmaları
cipher AES-256-GCM # Modern ve güvenli şifreleme
auth SHA256 # Kimlik doğrulama algoritması
Veri sıkıştırma (lz4-v2 önerilir, eski istemciler için lzo kullanılabilir)
compress lz4-v2
push "compress lz4-v2"
İstemcilerin kendi aralarında iletişim kurmasına izin ver
client-to-client
Yeniden başlatmalarda anahtarları ve tüneli koru
persist-key
persist-tun
Sunucu durumunu log dosyasına yaz
status /var/log/openvpn-status.log
Log detay seviyesi (3 önerilir, daha detaylı log için 4 veya 5)
verb 3
İstemci bağlantısının kesildiğini sunucuya bildir
explicit-exit-notify 1
Log dosyası
log /var/log/openvpn.log
log-append /var/log/openvpn.log
OpenVPN'in ayrıcalıksız bir kullanıcı ve grup ile çalışmasını sağlar
user nobody
group nogroup
Dosyayı kaydedin ve kapatın (CTRL+O, Enter, CTRL+X).
Önemli Notlar:
* proto udp: Genellikle daha hızlı olduğu için UDP tercih edilir. Ancak bazı ağlar UDP trafiğini engelleyebilir, bu durumda proto tcp kullanabilirsiniz.
* server 10.8.0.0 255.255.255.0: Bu, VPN istemcilerine atanacak IP adres aralığıdır. Çoğu durumda bu varsayılan değer yeterlidir.
* push "redirect-gateway def1 bypass-dhcp": Bu, tüm istemci trafiğinin VPN tüneli üzerinden geçmesini sağlar.
* push "dhcp-option DNS ...": İstemcilerin kullanacağı DNS sunucularını belirtir. Google DNS (8.8.8.8, 8.8.4.4) veya Cloudflare DNS (1.1.1.1, 1.0.0.1) gibi güvenilir ve hızlı DNS sunucuları kullanabilirsiniz.
* cipher AES-256-GCM ve auth SHA256: Bunlar modern ve güçlü şifreleme ve kimlik doğrulama algoritmalarıdır. İstemci yapılandırmanızda da aynılarını kullanmanız gerekecektir.
* compress lz4-v2: Bu, LZ4 sıkıştırmanın ikinci sürümüdür ve genellikle lzo‘dan daha iyi performans sunar. İstemcinizin de LZ4v2’yi desteklediğinden emin olun. Desteklemiyorsa veya sorun yaşıyorsanız compress lzo kullanabilir veya sıkıştırmayı tamamen kapatmak için bu satırları silebilirsiniz.
Adım 4: IP Yönlendirmeyi Etkinleştirme
OpenVPN sunucusu, istemcilerden gelen trafiği internete yönlendirmek (NAT) için IP yönlendirme (IP forwarding) özelliğine ihtiyaç duyar. Bu özelliği etkinleştirmek için /etc/sysctl.conf dosyasını düzenlememiz gerekir.
sudo nano /etc/sysctl.conf
Dosyanın içinde net.ipv4.ip_forward satırını bulun ve yorum satırı # işaretini kaldırarak değerini 1 olarak ayarlayın:
net.ipv4.ip_forward = 1
Dosyayı kaydedin ve kapatın. Değişikliklerin hemen uygulanması için aşağıdaki komutu çalıştırın:
sudo sysctl -p
Adım 5: Güvenlik Duvarını Yapılandırma (UFW veya iptables)
OpenVPN sunucusunun düzgün çalışabilmesi için güvenlik duvarı kurallarını yapılandırmanız gerekir. Bu, OpenVPN trafiğine izin vermeli ve istemcilerin internete erişebilmesi için ağ adresi çevirisi (NAT) yapmalıdır. Debian sistemlerinde genellikle UFW (Uncomplicated Firewall) veya iptables kullanılır. UFW, iptables’ın daha kullanıcı dostu bir arayüzüdür.
UFW Kullanarak Güvenlik Duvarı Yapılandırması (Önerilen)
UFW kurulu değilse kurun:
sudo apt install ufw -y
Ardından, SSH ve OpenVPN trafiğine izin verin:
sudo ufw allow ssh
sudo ufw allow 1194/udp # OpenVPN için belirlediğiniz port ve protokol
Varsayılan iletme politikasını ACCEPT olarak ayarlayı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ı eklemek için /etc/ufw/before.rules dosyasını düzenlememiz gerekiyor. Bu dosya, UFW’nin varsayılan kurallarından önce uygulanan kuralları içerir.
sudo nano /etc/ufw/before.rules
Dosyanın en başına, # Don't delete these required lines, otherwise ufw will stop working satırından önce aşağıdaki satırları ekleyin:
# START OPENVPN RULES
NAT table rules
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
COMMIT
END OPENVPN RULES
Önemli: -o eth0 kısmındaki eth0 yerine sunucunuzun genel ağ arayüzünün adını yazmalısınız. Bu genellikle eth0, ens3, enp0s3, vnet0 veya venet0 olabilir. Doğru arayüz adını bulmak için ip a komutunu kullanabilirsiniz. Genellikle genel IP adresinizin atandığı arayüzdür.
Dosyayı kaydedin ve kapatın. Şimdi UFW’yi etkinleştirin ve durumunu kontrol edin:
sudo ufw enable
sudo ufw status verbose
UFW’yi etkinleştirdiğinizde SSH bağlantınızın kesilmesi ihtimaline karşı dikkatli olun. Eğer bağlantı kesilirse, sunucunuzun konsoluna erişiminiz olduğundan emin olun.
iptables Kullanarak Güvenlik Duvarı Yapılandırması (UFW kullanılmıyorsa)
Eğer UFW kullanmıyorsanız, iptables kurallarını doğrudan ayarlamanız gerekir.
# OpenVPN portuna gelen UDP trafiğine izin ver
sudo iptables -A INPUT -i eth0 -p udp --dport 1194 -j ACCEPT
VPN tüneli üzerinden yönlendirilen trafiğe izin ver
sudo iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT
NAT (Masquerade) kuralı
sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
Yine: -i eth0 ve -o eth0 kısımlarını sunucunuzun genel ağ arayüzü ile değiştirmelisiniz.
Bu iptables kuralları, sunucu yeniden başlatıldığında kaybolacaktır. Kalıcı hale getirmek için netfilter-persistent paketini kullanabilirsiniz:
sudo apt install netfilter-persistent -y
sudo netfilter-persistent save
Adım 6: OpenVPN Sunucusunu Başlatma ve Etkinleştirme
Tüm yapılandırmalar tamamlandıktan sonra OpenVPN sunucusunu 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
Sunucunun durumunu kontrol ederek herhangi bir hata olup olmadığını görebilirsiniz:
sudo systemctl status openvpn@server
Durum “active (running)” olarak görünüyorsa, OpenVPN sunucunuz başarıyla çalışıyor demektir. Herhangi bir hata varsa, log dosyalarını kontrol edin:
sudo journalctl -u openvpn@server -f
veya
sudo tail -f /var/log/openvpn.log
Adım 7: İstemci Yapılandırması Oluşturma
İstemcilerin OpenVPN sunucusuna bağlanabilmesi için kendi sertifikalarına, anahtarlarına ve bir yapılandırma dosyasına (.ovpn uzantılı) ihtiyaçları vardır. Her istemci için ayrı bir sertifika/anahtar çifti oluşturmak, güvenlik açısından en iyi uygulamadır.
İlk olarak, istemci yapılandırma dosyalarını depolamak için bir dizin oluşturalım:
mkdir -p ~/client-configs/files
chmod 700 ~/client-configs
Şimdi easy-rsa dizinine geri dönelim:
cd /etc/openvpn/easy-rsa
Bir istemci için sertifika isteği ve özel anahtar oluşturalım. Örnek olarak client1 adını kullanacağız:
./easyrsa gen-req client1 nopass
Ardından, istemci sertifikasını CA ile imzalayın. Onaylamak için yes yazın.
./easyrsa sign-req client client1
Şimdi gerekli tüm dosyaları oluşturduğumuz istemci yapılandırma dizinine kopyalayalım:
sudo cp pki/ca.crt ~/client-configs/files/
sudo cp pki/issued/client1.crt ~/client-configs/files/
sudo cp pki/private/client1.key ~/client-configs/files/
sudo cp /etc/openvpn/ta.key ~/client-configs/files/
Şimdi istemci için temel bir .ovpn yapılandırma dosyası oluşturalım. Bu dosyayı ~/client-configs/base.conf olarak kaydedeceğiz:
nano ~/client-configs/base.conf
Aşağıdaki içeriği dosyaya yapıştırın:
client
dev tun
proto udp # Sunucunuzda kullandığınız protokolle eşleşmeli
remote YOUR_SERVER_IP 1194 # Sunucunuzun genel IP adresi ve portu
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
auth SHA256 # Sunucunuzda kullandığınız kimlik doğrulama algoritması
cipher AES-256-GCM # Sunucunuzda kullandığınız şifreleme algoritması
verb 3
compress lz4-v2 # Sunucunuzda kullandığınız sıkıştırma algoritması
Önemli: YOUR_SERVER_IP yerine OpenVPN sunucunuzun genel IP adresini veya alan adını yazmalısınız.
Dosyayı kaydedin ve kapatın.
Son olarak, bu temel yapılandırma dosyasını ve oluşturduğumuz sertifika/anahtar dosyalarını tek bir .ovpn dosyası halinde birleştireceğiz. Bu tek dosya, istemcinin bağlantı kurması için yeterli olacaktır.
cd ~/client-configs/files
sudo bash -c 'cat base.conf \
<(echo -e "") \
ca.crt \
<(echo -e " \n") \
client1.crt \
<(echo -e " \n") \
client1.key \
<(echo -e " \n") \
ta.key \
<(echo -e " ") \
> client1.ovpn'
Bu komut, base.conf dosyasının içeriğini, ardından ca.crt, client1.crt, client1.key ve ta.key dosyalarının içeriğini uygun OpenVPN etiketleriyle birleştirerek client1.ovpn adlı tek bir dosya oluşturur.
Şimdi client1.ovpn dosyası ~/client-configs/files/ dizininde hazır.
Adım 8: İstemci Yapılandırma Dosyasını İndirme ve Bağlanma
Oluşturduğunuz client1.ovpn dosyasını yerel bilgisayarınıza veya mobil cihazınıza indirmeniz gerekmektedir. Bunu yapmak için scp (Secure Copy Protocol) veya sftp gibi güvenli bir dosya transfer aracı kullanabilirsiniz.
Örnek olarak SCP kullanımı (yerel makinenizden):
scp user@your_server_ip:~/client-configs/files/client1.ovpn /path/to/local/directory/
* user: Sunucunuzdaki kullanıcı adınız.
* your_server_ip: OpenVPN sunucunuzun genel IP adresi.
* /path/to/local/directory/: .ovpn dosyasını kaydetmek istediğiniz yerel dizin.
Dosyayı indirdikten sonra, OpenVPN istemcisini kurmanız ve .ovpn dosyasını içe aktarmanız gerekir:
* Windows: OpenVPN GUI istemcisini indirin ve kurun. .ovpn dosyasını C:\Program Files\OpenVPN\config dizinine kopyalayın ve istemciyi başlatın.
* macOS: Tunnelblick veya OpenVPN Connect uygulamasını kullanın. .ovpn dosyasını içe aktarın.
* Linux: openvpn paketini kurun ve komut satırından sudo openvpn --config client1.ovpn komutunu kullanarak bağlanın veya NetworkManager entegrasyonunu kullanın.
* Android/iOS: OpenVPN Connect uygulamasını uygulama mağazasından indirin ve .ovpn dosyasını uygulama aracılığıyla içe aktarın (genellikle e-posta, bulut depolama veya doğrudan dosya paylaşımı ile).
Bağlandıktan sonra, IP adresinizi kontrol etmek için bir web sitesini (örneğin, “what is my ip” diye arama yaparak) ziyaret edebilir ve OpenVPN sunucunuzun IP adresini gördüğünüzden emin olabilirsiniz. Bu, bağlantınızın başarılı olduğunu gösterir.
Ek İstemciler Ekleme
Yeni bir istemci eklemek isterseniz, Adım 7’deki istemci sertifikası oluşturma ve .ovpn dosyasını birleştirme adımlarını tekrarlamanız yeterlidir. Her yeni istemci için benzersiz bir ad (örneğin, client2, client3) kullandığınızdan emin olun.
Örneğin, client2 için:
cd /etc/openvpn/easy-rsa
./easyrsa gen-req client2 nopass
./easyrsa sign-req client client2
sudo cp pki/issued/client2.crt ~/client-configs/files/
sudo cp pki/private/client2.key ~/client-configs/files/
cd ~/client-configs/files
sudo bash -c 'cat base.conf \
<(echo -e "") \
ca.crt \
<(echo -e " \n") \
client2.crt \
<(echo -e " \n") \
client2.key \
<(echo -e " \n") \
ta.key \
<(echo -e " ") \
> client2.ovpn'
Ardından client2.ovpn dosyasını indirin ve kullanın.
İstemci Sertifikasını İptal Etme (Revoke)
Bir istemcinin VPN erişimini iptal etmek isterseniz (örneğin, bir cihaz kayboldu veya bir kullanıcının erişimi sonlandırıldı), sertifikasını iptal edebilirsiniz.
cd /etc/openvpn/easy-rsa
./easyrsa revoke client1
Onaylamak için yes yazın. Ardından, sertifika iptal listesini (CRL) yeniden oluşturmanız gerekir:
./easyrsa gen-crl
Yeni crl.pem dosyasını OpenVPN yapılandırma dizinine kopyalayın:
sudo cp pki/crl.pem /etc/openvpn/
Ve server.conf dosyasına aşağıdaki satırı ekleyerek sunucunun CRL’yi kullanmasını sağlayın:
sudo nano /etc/openvpn/server.conf
Dosyanın herhangi bir yerine (genellikle tls-auth satırının altına) ekleyin:
crl-verify crl.pem
Dosyayı kaydedin ve kapatın. Son olarak, OpenVPN sunucusunu yeniden başlatın ki yeni CRL’yi yüklesin:
sudo systemctl restart openvpn@server
Artık client1 sertifikasıyla bağlantı kurmaya çalışan herhangi bir istemciye erişim reddedilecektir.
Sorun Giderme ve İpuçları
OpenVPN kurulumu sırasında veya sonrasında karşılaşabileceğiniz bazı yaygın sorunlar ve çözümleri:
* Bağlantı Kurulamıyor:
* Güvenlik Duvarı: Sunucunuzdaki güvenlik duvarının (UFW/iptables) OpenVPN portunu (varsayılan 1194/udp) engellemediğinden emin olun. NAT kurallarının doğru yapılandırıldığını kontrol edin.
* IP Yönlendirme: net.ipv4.ip_forward = 1 ayarının etkin olduğundan ve sudo sysctl -p ile uygulandığından emin olun.
* Loglar: OpenVPN sunucu loglarını kontrol edin (journalctl -u openvpn@server -f veya tail -f /var/log/openvpn.log). Hata mesajları sorunun kaynağını gösterebilir.
* İstemci Yapılandırması: client.ovpn dosyasındaki remote YOUR_SERVER_IP kısmının doğru sunucu IP adresini içerdiğinden ve proto, cipher, auth, compress ayarlarının sunucu yapılandırmasıyla eşleştiğinden emin olun.
* Protokol: Bazen UDP trafiği ağda engellenebilir. Sunucu ve istemci yapılandırmalarında proto udp yerine proto tcp denemeyi düşünebilirsiniz.
* Sertifika ve Anahtarlar: Sertifika ve anahtar dosyalarının doğru yerlerde olduğundan ve izinlerinin doğru ayarlandığından emin olun.
* Bağlanıyor ama İnternet Erişimi Yok:
* NAT Kuralı: Güvenlik duvarınızdaki NAT (MASQUERADE) kuralının doğru arayüz ve IP aralığı ile yapılandırıldığından emin olun (-o eth0 kısmını kontrol edin).
* DNS: İstemciye doğru DNS sunucularının (push "dhcp-option DNS ...") iletildiğinden emin olun. Bağlantı kurduktan sonra istemcinizde DNS çözümlemesi yapıp yapmadığını kontrol edin.
* redirect-gateway: push "redirect-gateway def1 bypass-dhcp" satırının server.conf dosyasında olduğundan emin olun.
* Performans Sorunları:
* Şifreleme: cipher ve auth algoritmalarını çok yüksek ayarlamak (örneğin, AES-256-GCM yerine daha eski, daha az güvenli ama daha az kaynak tüketen bir algoritma kullanmak) performansı artırabilir, ancak güvenlikten ödün verir. Genellikle modern CPU’lar AES-256-GCM’yi donanımsal olarak hızlandırabilir.
* Sıkıştırma: compress lz4-v2 veya compress lzo kullanmak bant genişliğini düşürebilir ancak CPU yükünü artırabilir. Eğer CPU kısıtlıysa veya zaten hızlı bir bağlantınız varsa sıkıştırmayı kapatmayı deneyebilirsiniz.
* Güvenlik İpuçları:
* Güncel Tutun: OpenVPN yazılımını ve işletim sisteminizi düzenli olarak güncelleyin.
* Güçlü Şifreler: Sertifika ve anahtarlarınızı oluştururken nopass kullanmak yerine parola kullanmayı düşünebilirsiniz (ancak bu, sunucu yeniden başlatıldığında manuel müdahale gerektirecektir).
* Her İstemciye Ayrı Sertifika: Her istemci için ayrı bir sertifika/anahtar çifti oluşturmak, bir istemci anahtarının ele geçirilmesi durumunda diğerlerinin etkilenmemesini sağlar.
* duplicate-cn Kullanmayın: server.conf içinde duplicate-cn seçeneğini kullanmaktan kaçının. Bu, aynı sertifikayı birden fazla istemcinin kullanmasına izin verir ve güvenlik riskleri taşır.
Sonuç
Debian 11 üzerinde kendi OpenVPN sunucunuzu kurmak, başlangıçta karmaşık görünebilir, ancak bu adım adım rehberle süreci başarıyla tamamlamış olmalısınız. Artık kendi güvenli VPN bağlantınıza sahipsiniz ve internet trafiğinizi şifreleyerek gizliliğinizi ve güvenliğinizi artırabilirsiniz.
Kendi VPN sunucunuz, üçüncü taraf VPN sağlayıcılarına olan bağımlılığınızı ortadan kaldırır ve verileriniz üzerinde tam kontrol sahibi olmanızı sağlar. Bu, özellikle hassas verilerle çalışan veya çevrimiçi gizliliğine önem veren kullanıcılar için büyük bir avantajdır. Unutmayın, siber güvenlik sürekli bir süreçtir; sunucunuzu ve OpenVPN yazılımınızı düzenli olarak güncel tutmak, güvenliğinizi korumanın anahtarıdır. Güvenli internet deneyimleriniz olsun!