Ubuntu 16.04 Üzerinde OpenVPN Sunucusu Kurulumu
Giriş
Günümüz dijital dünyasında internet güvenliği ve gizliliği her zamankinden daha kritik bir öneme sahiptir. Verilerimizin korunması, çevrimiçi etkinliklerimizin gizli kalması ve coğrafi kısıtlamaları aşarak içeriğe erişim gibi ihtiyaçlar, Sanal Özel Ağ (VPN) teknolojilerini vazgeçilmez kılmaktadır. OpenVPN, açık kaynak kodlu ve oldukça güvenli bir VPN çözümüdür. Geniş bir platform desteği sunması, esnek yapılandırma seçenekleri ve güçlü şifreleme algoritmaları sayesinde hem bireysel kullanıcılar hem de işletmeler için popüler bir tercihtir.
Bu kapsamlı teknik makale, Ubuntu 16.04 işletim sistemi yüklü bir sunucu üzerinde adım adım OpenVPN sunucusunun nasıl kurulacağını, yapılandırılacağını ve güvenli bir şekilde nasıl çalıştırılacağını detaylı bir şekilde açıklayacaktır. Ubuntu 16.04, uzun süreli destek (LTS) sürümü olmasına rağmen, bu makalenin yazıldığı tarihte resmi desteği sona ermiştir. Bu durum, güvenlik güncellemeleri almadığı anlamına gelir ve üretim ortamlarında kullanılması önerilmez. Ancak, bu rehber, OpenVPN’in temel kurulum prensiplerini ve eski sistemler üzerindeki yapılandırma adımlarını anlamak isteyenler için değerli bir kaynak olacaktır. Modern sistemlerde (Ubuntu 20.04 veya 22.04 gibi) kurulum adımları benzer olsa da, bazı paket ve komut farklılıkları olabilir. Bu makale, özellikle Ubuntu 16.04 odaklıdır.
OpenVPN sunucusu kurarak, kendi güvenli tünelinizi oluşturabilir, internet trafiğinizi şifreleyebilir, herkese açık Wi-Fi ağlarında güvende kalabilir ve ağınıza uzaktan güvenli bir şekilde erişebilirsiniz. Bu rehber, başlangıç seviyesinden ileri seviyeye kadar tüm adımları kapsayacak ve OpenVPN’in sunduğu potansiyeli tam olarak kullanmanıza yardımcı olacaktır.
Ön Gereksinimler
OpenVPN sunucusu kurulumuna başlamadan önce aşağıdaki ön gereksinimlerin karşılandığından emin olmanız önemlidir:
* Ubuntu 16.04 Sunucusu: Temiz bir Ubuntu 16.04 kurulumu önerilir. Bu, potansiyel çakışmaları ve sorunları en aza indirecektir.
* Sudo Yetkileri: Kurulum ve yapılandırma işlemleri için sudo yetkilerine sahip bir kullanıcı hesabına ihtiyacınız olacaktır.
* Temel Linux Komut Satırı Bilgisi: Temel Linux komutları (dizin değiştirme, dosya düzenleme, paket yükleme vb.) hakkında bilgi sahibi olmak faydalıdır.
* Sabit (Statik) IP Adresi: OpenVPN sunucunuzun sabit bir genel IP adresine sahip olması gereklidir. Dinamik IP adresleri de kullanılabilir ancak DNS hizmetleri (örneğin, DynDNS) ile entegrasyon gerektirir.
* Güvenlik Duvarı (Firewall) Bilgisi: UFW (Uncomplicated Firewall) veya iptables gibi bir güvenlik duvarı yapılandırması hakkında temel bilgiye sahip olmak, OpenVPN trafiğine izin vermek için gereklidir.
* SSH Erişimi: Sunucunuza SSH üzerinden erişebilmeniz gerekmektedir.
Adım 1: Sistemi Güncelleme
Herhangi bir yazılım kurulumuna başlamadan önce, sisteminizin güncel olduğundan emin olmak en iyi uygulamadır. Bu, potansiyel bağımlılık sorunlarını önler ve en son güvenlik yamalarını uygulamanızı sağlar.
Sunucunuza SSH ile bağlanın ve aşağıdaki komutları çalıştırın:
sudo apt update
sudo apt upgrade -y
sudo apt update komutu, paket listelerini güncellerken, sudo apt upgrade -y komutu ise mevcut paketleri onay gerektirmeden yükseltir.
Adım 2: OpenVPN ve Easy-RSA Kurulumu
OpenVPN sunucusunu kurmak için gerekli olan ana paket openvpn paketidir. Ayrıca, OpenVPN’in güvenli bir şekilde çalışması için gerekli olan sertifika yetkilisi (CA), sunucu sertifikası, istemci sertifikaları ve anahtarları oluşturmak için Easy-RSA adı verilen bir komut dosyası koleksiyonuna ihtiyacımız var. Ubuntu 16.04’te Easy-RSA genellikle OpenVPN paketiyle birlikte gelir veya ayrı olarak yüklenebilir.
Aşağıdaki komutla OpenVPN ve Easy-RSA’yı yükleyin:
sudo apt install openvpn easy-rsa -y
Bu komut, OpenVPN sunucusunu ve sertifika yönetimi için Easy-RSA araçlarını sisteminize kuracaktır.
Adım 3: PKI (Public Key Infrastructure) Altyapısını Oluşturma
OpenVPN, güvenli iletişimi sağlamak için bir PKI kullanır. Bu altyapı, sertifika yetkilisi (CA), sunucu sertifikaları ve anahtarları ile istemci sertifikalarını içerir. Easy-RSA, bu sertifikaları ve anahtarları kolayca oluşturmak için kullanılan bir araç setidir. Ubuntu 16.04’te Easy-RSA’nın 2.x sürümü yaygındır.
Öncelikle, Easy-RSA dosyalarını güvenli bir yere kopyalayarak kendi PKI yönetim dizinimizi oluşturacağız. Ev dizininizde openvpn-ca adında bir dizin oluşturalım ve Easy-RSA dosyalarını buraya kopyalayalım:
mkdir ~/openvpn-ca
cp -r /usr/share/easy-rsa/* ~/openvpn-ca/
cd ~/openvpn-ca
Şimdi, Easy-RSA’nın yapılandırma dosyası olan vars dosyasını düzenleyeceğiz. Bu dosya, sertifikalarınız için varsayılan değerleri içerir.
nano vars
Aşağıdaki satırları bulun ve kendi bilgilerinize göre düzenleyin. Özellikle KEY_COUNTRY, KEY_PROVINCE, KEY_CITY, KEY_ORG, KEY_EMAIL ve KEY_OU değerlerini doldurun. KEY_NAME genellikle sertifika yetkilisinin adıdır ve benzersiz olmalıdır.
export KEY_COUNTRY="TR"
export KEY_PROVINCE="Ankara"
export KEY_CITY="Ankara"
export KEY_ORG="OpenVPNOrg"
export KEY_EMAIL="admin@example.com"
export KEY_OU="IT"
export KEY_NAME="server" # Bu değer CA'nın CN'si için kullanılır, ancak genellikle build-ca komutu CN'yi doğrudan set eder.
Değişiklikleri kaydettikten sonra (Ctrl+O, Enter, Ctrl+X), vars dosyasını kaynak olarak kullanarak ortam değişkenlerini yükleyin:
source vars
Ardından, PKI dizinini temizleyerek önceki anahtarları ve sertifikaları silin. Bu, her zaman yeni bir başlangıç yapmanızı sağlar.
./clean-all
Şimdi, Sertifika Yetkilisi (CA) anahtarını ve sertifikasını oluşturun. Bu, tüm OpenVPN bağlantıları için güven kökü olacaktır.
./build-ca
Bu komut sizden CA’nın Ortak Adı (Common Name) için onay isteyecektir. Varsayılan değeri (genellikle server) kabul etmek için Enter tuşuna basın. Bir parola isteyebilir, bu parolayı güvenli bir yerde saklayın.
Adım 4: Sunucu Sertifikası ve Anahtarı Oluşturma
CA sertifikasını oluşturduktan sonra, OpenVPN sunucunuz için bir sertifika ve özel anahtar oluşturmanız gerekir. Bu sertifika, istemcilerin sunucunun kimliğini doğrulamasına olanak tanır.
./build-key-server server
Bu komut sizden bazı bilgiler isteyecektir. Common Name için varsayılan server değerini kabul edin ve diğer soruları (ülke, şehir vb.) Enter tuşuna basarak geçebilirsiniz, çünkü bunlar vars dosyasında zaten tanımlanmıştır. Bir “challenge password” ve “optional company name” isteyecektir; bunları boş bırakmak için Enter tuşuna basabilirsiniz. Son olarak, sertifikayı imzalamak ve onaylamak için y tuşuna basın.
Şimdi oluşturulan sertifika ve anahtar dosyalarını OpenVPN yapılandırma dizinine kopyalayın:
sudo cp keys/ca.crt /etc/openvpn/
sudo cp keys/server.crt /etc/openvpn/
sudo cp keys/server.key /etc/openvpn/
Adım 5: Diffie-Hellman Parametrelerini Oluşturma
Diffie-Hellman (DH) parametreleri, OpenVPN’in istemcilerle güvenli anahtar değişimi yapmasını sağlar. Bu işlem biraz zaman alabilir (birkaç dakikadan on beş dakikaya kadar, sunucunuzun işlem gücüne bağlı olarak).
./build-dh
Bu komut keys/dh2048.pem dosyasını oluşturacaktır. Bu dosyayı OpenVPN yapılandırma dizinine kopyalayın:
sudo cp keys/dh2048.pem /etc/openvpn/
Adım 6: HMAC Tarafından İmzalanmış Anahtar Oluşturma (tls-auth)
tls-auth anahtarı, OpenVPN bağlantısına ek bir güvenlik katmanı ekler. Bu anahtar, TLS el sıkışmasından önce OpenVPN kontrol paketlerini doğrulamak için kullanılır ve DoS saldırılarını ve UDP port taramalarını önlemeye yardımcı olur.
openvpn --genkey --secret /etc/openvpn/ta.key
Bu komut, ta.key dosyasını doğrudan /etc/openvpn/ dizinine oluşturacaktır.
Adım 7: OpenVPN Sunucu Yapılandırma Dosyası Oluşturma
Tüm sertifikalar ve anahtarlar hazır olduğunda, OpenVPN sunucusunu yapılandırmamız gerekir. Örnek bir yapılandırma dosyası /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz konumunda bulunur. Bu dosyayı kopyalayıp düzenleyerek kendi yapılandırmamızı oluşturacağız.
Önce örnek dosyayı açalım ve kopyalayalım:
gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz > ~/openvpn-ca/server.conf
sudo mv ~/openvpn-ca/server.conf /etc/openvpn/
Şimdi /etc/openvpn/server.conf dosyasını düzenleyin:
sudo nano /etc/openvpn/server.conf
Aşağıdaki satırları bulun ve açıklamalara göre düzenleyin veya ekleyin. Yorum satırlarını (# ile başlayanlar) kaldırın ve gerekli değişiklikleri yapın:
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh2048.pem # Daha önce oluşturduğumuz dh2048.pem dosyasını kullanıyoruz.
server 10.8.0.0 255.255.255.0 # VPN istemcilerine atanacak IP aralığı
ifconfig-pool-persist ipp.txt # İstemci IP atamalarını kaydeder
push "redirect-gateway def1 bypass-dhcp" # Tüm trafiği VPN üzerinden yönlendir
push "dhcp-option DNS 8.8.8.8" # İstemcilere Google DNS'i atar
push "dhcp-option DNS 8.8.4.4" # İkinci bir Google DNS
client-to-client # İstemcilerin birbirleriyle iletişim kurmasına izin verir (isteğe bağlı)
keepalive 10 120 # Bağlantının canlı kalmasını sağlar
tls-auth ta.key 0 # Bu satırı ekleyin, 0 sunucu tarafını belirtir
cipher AES-256-CBC # Şifreleme algoritması (Ubuntu 16.04 için yaygın)
auth SHA256 # Kimlik doğrulama algoritması
user nobody
group nogroup # Ubuntu 16.04 için genellikle nogroup kullanılır
persist-key
persist-tun
status openvpn-status.log # Bağlantı durumunu kaydeder
verb 3 # Loglama seviyesi
explicit-exit-notify 1 # İstemcinin bağlantıyı düzgün bir şekilde kapatmasına yardımcı olur
Dosyayı kaydedin ve kapatın (Ctrl+O, Enter, Ctrl+X).
Adım 8: IP Yönlendirmeyi Etkinleştirme
OpenVPN sunucunuzun internete bağlı istemcilerden gelen trafiği yönlendirebilmesi için IP yönlendirmeyi etkinleştirmeniz gerekir.
/etc/sysctl.conf dosyasını düzenleyin:
sudo nano /etc/sysctl.conf
Dosyada aşağıdaki satırı bulun ve başındaki # işaretini kaldırarak yorumdan çıkarın:
net.ipv4.ip_forward=1
Değişiklikleri kaydedin ve kapatın. Ardından, yeni ayarı hemen uygulamak için aşağıdaki komutu çalıştırın:
sudo sysctl -p
Adım 9: Güvenlik Duvarını Yapılandırma (UFW)
Güvenlik duvarı (UFW), sunucunuzu yetkisiz erişimden korumak için kritik öneme sahiptir. OpenVPN trafiğine izin vermek ve ağ adresi çevirisi (NAT) kurallarını ayarlamak için UFW’yi yapılandırmamız gerekiyor.
Öncelikle UFW’nin kurulu olduğundan emin olun, değilse kurun:
sudo apt install ufw -y
SSH bağlantınızın kesilmemesi için SSH portuna (varsayılan 22) izin verin:
sudo ufw allow ssh
OpenVPN portuna (varsayılan 1194 UDP) izin verin:
sudo ufw allow 1194/udp
Şimdi, UFW’nin varsayılan iletme politikasını ACCEPT olarak ayarlamamız gerekiyor. Bu, VPN tüneli üzerinden gelen trafiğin internete yönlendirilmesine izin verir.
sudo nano /etc/default/ufw
Aşağıdaki satırı bulun ve değerini ACCEPT olarak değiştirin:
DEFAULT_FORWARD_POLICY="ACCEPT"
Değişiklikleri kaydedin ve kapatın.
Son olarak, NAT kurallarını /etc/ufw/before.rules dosyasına eklememiz gerekiyor. Bu kurallar, VPN istemcilerinden gelen trafiği sunucunuzun genel IP adresi üzerinden internete yönlendirecektir.
sudo nano /etc/ufw/before.rules
Dosyanın en başına, ilk satırdan hemen sonra aşağıdaki satırları ekleyin:
# START OPENVPN RULES
Allow TUN interface connections to OpenVPN server
-A ufw-before-input -i tun+ -j ACCEPT
-A ufw-before-output -o tun+ -j ACCEPT
Allow TAP interface connections to OpenVPN server
-A ufw-before-input -i tap+ -j ACCEPT
-A ufw-before-output -o tap+ -j ACCEPT
Allow OpenVPN to access the internet
-A ufw-before-forward -i tun+ -j ACCEPT
-A ufw-before-forward -o tun+ -j ACCEPT
Allow access to OpenVPN server
-A ufw-before-input -p udp --dport 1194 -j ACCEPT
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
COMMIT
END OPENVPN RULES
Önemli: -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE satırındaki eth0 değerini sunucunuzun genel ağ arayüzü ile değiştirmeniz gerekebilir. Bu genellikle eth0, ens3, enp0s3 veya venet0 gibi bir isimdir. Doğru arayüz adını bulmak için ip a komutunu kullanabilirsiniz. Genellikle inet ile başlayan ve genel IP adresinizi gösteren arayüzdür.
Değişiklikleri kaydedin ve kapatın. Şimdi UFW’yi etkinleştirin ve değişiklikleri uygulayın:
sudo ufw disable
sudo ufw enable
Onay için y tuşuna basın. Güvenlik duvarı durumunu kontrol edin:
sudo ufw status
OpenVPN portunun ve SSH portunun izin verildiğini görmelisiniz.
Adım 10: OpenVPN Sunucusunu Başlatma ve Etkinleştirme
Tüm yapılandırma adımları 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 düzgün çalışıp çalışmadığını doğrulayın:
sudo systemctl status openvpn@server
Durum active (running) olarak görünüyorsa, OpenVPN sunucunuz başarıyla çalışıyor demektir. Herhangi bir hata durumunda, logları kontrol etmek için sudo journalctl -u openvpn@server veya sudo tail -f /var/log/syslog komutlarını kullanabilirsiniz.
İstemci Yapılandırması
OpenVPN sunucusu kurulduktan sonra, istemcilerin bu sunucuya bağlanabilmesi için sertifikalar ve yapılandırma dosyaları oluşturmamız gerekir. Her istemci için ayrı bir sertifika oluşturmak en iyi güvenlik uygulamasıdır.
Adım 1: İstemci Sertifikası ve Anahtarı Oluşturma
Öncelikle Easy-RSA dizinine geri dönün:
cd ~/openvpn-ca
source vars
Şimdi, client1 adında bir istemci için sertifika ve anahtar oluşturun. Her yeni istemci için farklı bir isim kullanmalısınız (örn. client2, laptop, phone).
./build-key client1
Yine, Common Name için varsayılan client1 değerini kabul edin ve diğer soruları Enter tuşuna basarak geçin. Sertifikayı imzalamak ve onaylamak için y tuşuna basın.
Adım 2: İstemci Yapılandırma Dosyası Oluşturma
İstemciye dağıtılacak tek bir .ovpn dosyası oluşturmak en pratik yöntemdir. Bu dosya, tüm gerekli sertifikaları ve yapılandırma ayarlarını içerecektir.
Öncelikle istemci yapılandırma dosyalarını depolamak için bir dizin oluşturalım:
mkdir -p ~/client-configs/files
Şimdi temel bir istemci yapılandırma dosyası oluşturalım:
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İ VEYA ALAN ADI İLE DEĞİŞTİRİN
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-CBC
auth SHA256
key-direction 1 # İstemci tarafında tls-auth anahtar yönü 1 olmalıdır
verb 3
comp-lzo # İsteğe bağlı: veri sıkıştırmayı etkinleştirir
float # İsteğe bağlı: istemcinin IP adresi değişirse bağlantıyı yeniden kurmaya çalışır
YOUR_SERVER_IP yerine OpenVPN sunucunuzun genel IP adresini veya alan adını yazmayı unutmayın. Dosyayı kaydedin ve kapatın.
Adım 3: İstemci Yapılandırma Dosyalarını Bir Araya Getirme
Şimdi, CA sertifikasını, istemci sertifikasını, istemci anahtarını ve tls-auth anahtarını base.conf dosyasıyla birleştirerek tam bir .ovpn dosyası oluşturan bir komut dosyası yazacağız.
nano ~/client-configs/make_config.sh
Aşağıdaki içeriği dosyaya yapıştırın:
#!/bin/bash
İlk argüman: İstemci Adı (örn. client1)
KEY_DIR=~/openvpn-ca/keys
OUTPUT_DIR=~/client-configs/files
BASE_CONFIG=~/client-configs/base.conf
cat ${BASE_CONFIG} \
<(echo -e '') \
${KEY_DIR}/ca.crt \
<(echo -e ' \n') \
${KEY_DIR}/${1}.crt \
<(echo -e ' \n') \
${KEY_DIR}/${1}.key \
<(echo -e ' \n') \
/etc/openvpn/ta.key \
<(echo -e ' ') \
> ${OUTPUT_DIR}/${1}.ovpn
Dosyayı kaydedin ve kapatın. Ardından, bu komut dosyasını çalıştırılabilir hale getirin:
chmod +x ~/client-configs/make_config.sh
Şimdi, client1 için .ovpn dosyasını oluşturmak için komut dosyasını çalıştırın:
~/client-configs/make_config.sh client1
Bu komut, ~/client-configs/files/client1.ovpn dosyasını oluşturacaktır.
Adım 4: İstemci Yapılandırma Dosyasını İndirme
Oluşturduğunuz .ovpn dosyasını OpenVPN istemcinizi kuracağınız yerel bilgisayarınıza veya mobil cihazınıza indirmeniz gerekmektedir. Bunu yapmak için scp veya sftp gibi güvenli dosya transfer protokollerini kullanabilirsiniz.
Örneğin, yerel makinenizden scp kullanarak indirme:
scp your_username@your_server_ip:~/client-configs/files/client1.ovpn /path/to/local/directory/
your_username, your_server_ip ve /path/to/local/directory/ değerlerini kendi bilgilerinizle değiştirin.
Test Etme
İstemci yapılandırma dosyasını indirdikten sonra, OpenVPN istemcisini (Windows, macOS, Linux, Android, iOS için mevcuttur) kurun ve .ovpn dosyasını içe aktarın. Bağlantıyı başlatın.
Bağlandıktan sonra, IP adresinizi kontrol edin. Yeni IP adresinizin OpenVPN sunucunuzun IP adresine yakın (10.8.0.0/24 ağından bir IP) ve genel IP adresinizin sunucunuzun genel IP adresi olması gerekir. İnternet erişiminizin sorunsuz çalıştığından emin olun.
İstemci Ekleme/İptal Etme
Yeni İstemci Ekleme
Yeni bir istemci eklemek için, sadece Adım 1’deki istemci sertifikası oluşturma ve Adım 3’teki .ovpn dosyasını oluşturma adımlarını yeni bir istemci adıyla tekrarlamanız yeterlidir:
cd ~/openvpn-ca
source vars
./build-key newclientname # 'newclientname' yerine istediğiniz istemci adını kullanın
~/client-configs/make_config.sh newclientname
Ardından, oluşturulan newclientname.ovpn dosyasını yeni istemcinize aktarın.
İstemci İptal Etme (Revoke)
Bir istemcinin VPN erişimini iptal etmek için, istemci sertifikasını iptal etmeniz ve sunucuya bir Sertifika İptal Listesi (CRL) sağlamanız gerekir.
cd ~/openvpn-ca
source vars
./revoke-full client1 # İptal etmek istediğiniz istemcinin adını kullanın
Bu komut, client1 sertifikasını iptal edecek ve yeni bir CRL oluşturacaktır. Şimdi bu CRL dosyasını OpenVPN yapılandırma dizinine kopyalayın:
sudo cp keys/crl.pem /etc/openvpn/
Ardından, OpenVPN sunucusuna CRL dosyasını kullanmasını söylemek için /etc/openvpn/server.conf dosyasını düzenleyin:
sudo nano /etc/openvpn/server.conf
Dosyaya herhangi bir yere aşağıdaki satırı 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ına sahip istemciler OpenVPN sunucunuza bağlanamayacaktır.
Sorun Giderme
OpenVPN kurulumu sırasında veya sonrasında sorunlarla karşılaşabilirsiniz. İşte bazı yaygın sorunlar ve çözüm önerileri:
* Bağlantı Kurulamıyor:
* Güvenlik Duvarı: Sunucunuzdaki güvenlik duvarının (UFW) 1194/UDP portuna ve NAT kurallarına doğru şekilde izin verdiğinden emin olun. sudo ufw status ile kontrol edin.
* IP Yönlendirme: IP yönlendirmenin etkin olduğundan emin olun (net.ipv4.ip_forward=1 ve sudo sysctl -p).
* Sunucu Logları: OpenVPN sunucu loglarını kontrol edin: sudo journalctl -u openvpn@server veya sudo tail -f /var/log/syslog. Hata mesajları size yol gösterecektir.
* İstemci Yapılandırması: .ovpn dosyasındaki sunucu IP adresinin veya alan adının doğru olduğundan emin olun.
* Sertifikalar/Anahtarlar: Sertifika ve anahtar dosyalarının (ca.crt, server.crt, server.key, dh2048.pem, ta.key) /etc/openvpn/ dizininde doğru isimlerle bulunduğundan ve erişilebilir olduğundan emin olun.
* Bağlanıyor ama İnternet Erişimi Yok:
* NAT Kuralları: /etc/ufw/before.rules dosyasındaki NAT kuralının doğru arayüz (eth0 yerine ens3 gibi) ve doğru VPN ağı (10.8.0.0/24) ile yapılandırıldığından emin olun.
* redirect-gateway: server.conf dosyasında push "redirect-gateway def1 bypass-dhcp" satırının yorum satırı olmadığından emin olun.
* DNS Ayarları: server.conf dosyasındaki push "dhcp-option DNS ..." satırlarının doğru DNS sunucularını gösterdiğinden emin olun.
* Yavaş Bağlantı Hızı:
* Şifreleme Algoritması: Daha güçlü şifrelemeler (örn. AES-256-CBC) daha fazla işlem gücü gerektirebilir. Sunucunuzun donanımına göre cipher ayarını düşünebilirsiniz.
* comp-lzo: İstemci ve sunucu yapılandırmalarında comp-lzo ayarının tutarlı olduğundan emin olun.
* Sunucu Yükü: Sunucunuzun CPU veya ağ bant genişliği kullanımını kontrol edin.
Güvenlik Hususları
OpenVPN sunucunuzu kurarken ve yönetirken dikkate almanız gereken bazı önemli güvenlik hususları vardır:
* Ubuntu 16.04 Desteği: Bu makale Ubuntu 16.04 için yazılmış olsa da, bu sürümün resmi desteği sona ermiştir. Bu, güvenlik güncellemeleri almadığı anlamına gelir ve bilinen güvenlik açıklarına karşı savunmasız kalabilir. Üretim ortamlarında Ubuntu’nun desteklenen bir LTS sürümünü (örn. Ubuntu 20.04 veya 22.04) kullanmanız şiddetle tavsiye edilir. Bu rehber sadece eğitimsel veya eski sistemleri ele almak amaçlıdır.
* Güncel Tutma: Sunucunuzdaki tüm yazılımları, özellikle OpenVPN’i ve işletim sistemini düzenli olarak güncel tutun (ancak 16.04 için artık resmi güncelleme almayacaktır).
* Güçlü Parolalar: CA anahtarınızı ve diğer önemli anahtarlarınızı oluştururken güçlü parolalar kullanın.
* Sertifika Yönetimi: Kullanılmayan veya güvenliği ihlal edilmiş istemci sertifikalarını derhal iptal edin. CRL’nizi düzenli olarak güncelleyin.
* SSH Güvenliği: Sunucunuzun SSH erişimini güvence altına alın. Parola yerine anahtar tabanlı kimlik doğrulama kullanın, varsayılan SSH portunu değiştirin ve root ile doğrudan oturum açmayı devre dışı bırakın.
* Minimum Yetki Prensibi: OpenVPN servisini nobody ve nogroup gibi düşük yetkili bir kullanıcı ve grup altında çalıştırın.
* Log İzleme: OpenVPN sunucunuzun loglarını düzenli olarak izleyin. Anormal etkinlikler veya bağlantı denemeleri hakkında bilgi sağlayabilirler.
* Fiziksel Güvenlik: Sunucunuzun fiziksel güvenliğini sağlayın.
Sonuç
Bu kapsamlı rehberde, Ubuntu 16.04 işletim sistemi üzerinde adım adım kendi OpenVPN sunucunuzu nasıl kuracağınızı, yapılandıracağınızı ve yöneteceğinizi öğrendiniz. Kendi VPN sunucunuza sahip olmak, çevrimiçi gizliliğinizi ve güvenliğinizi artırmanın, internet trafiğinizi şifrelemenin ve coğrafi kısıtlamaları aşmanın güçlü bir yoludur.
Sertifika yetkilisi oluşturmaktan, sunucu ve istemci sertifikalarını yönetmeye, güvenlik duvarı kurallarını ayarlamaya ve istemci yapılandırma dosyalarını oluşturmaya kadar her adımı detaylı bir şekilde ele aldık. Ayrıca, OpenVPN’in güvenli ve verimli bir şekilde çalışmasını sağlamak için önemli güvenlik hususlarına ve sorun giderme ipuçlarına da değindik.
Unutmayın ki Ubuntu 16.04’ün destek süresi dolmuştur ve güvenlik açısından güncel bir işletim sistemi kullanmak her zaman en iyi uygulamadır. Ancak, bu rehber OpenVPN’in temel prensiplerini anlamak ve eski sistemlerdeki kurulum süreçlerini öğrenmek için değerli bir kaynak sunmaktadır. Kendi OpenVPN sunucunuzla, dijital dünyada daha güvenli ve özgür bir deneyimin tadını çıkarabilirsiniz.