Skip to main content

CentOS 7'de OpenVPN Sunucusu Kurulumu ve Yapılandırması

Bu rehber, CentOS 7 üzerinde güvenli OpenVPN tüneli kurmayı adım adım öğretir.
Ağ trafiğiniz şifrelenir, güvenli olmayan Wi-Fi ağlarında bile güvenli bağlantı sağlarsınız.


🧠 İçerik Özeti

OpenVPN kurulumu için gerekli paketleri yükleyecek, Easy-RSA ile CA oluşturacak,
sertifikaları yönetecek ve sonunda istemci bağlantısı hazırlayacağız.


🔑 1. OpenVPN Kurulumu ve Easy-RSA Hazırlığı

Sistem paketlerini güncelle:

sudo yum update -y

Açıklama: En güncel paket ve güvenlik yamalarını yükler.

EPEL deposunu kur:


sudo yum install epel-release -y

Açıklama: OpenVPN EPEL deposundan gelir, bu adım zorunludur.

OpenVPN + wget kur:


sudo yum install -y openvpn wget

Açıklama: OpenVPN yazılımını ve Easy-RSA indirmek için wget'i kurar.

Easy-RSA indir:


wget -O /tmp/easyrsa https://github.com/OpenVPN/easy-rsa-old/archive/2.3.3.tar.gz

Açıklama: Sertifika üretimi için Easy-RSA arşivini indirir.

Arşivi aç:


tar xfz /tmp/easyrsa

Açıklama: İndirilen Easy-RSA paketini çıkarır.

Easy-RSA dizinini hazırlayın:


sudo mkdir /etc/openvpn/easy-rsa
sudo cp -rf easy-rsa-old-2.3.3/easy-rsa/2.0/* /etc/openvpn/easy-rsa
sudo chown $USER /etc/openvpn/easy-rsa/

Açıklama: Easy-RSA dosyalarını OpenVPN dizinine taşır ve sahipliği düzenler.


🔧 2. Sunucu Yapılandırması

Örnek yapılandırmayı kopyala:


sudo cp /usr/share/doc/openvpn-2.4.4/sample/sample-config-files/server.conf /etc/openvpn

Açıklama: OpenVPN'in varsayılan config dosyasını temel alır.

Dosyayı aç:


sudo nano /etc/openvpn/server.conf

Açıklama: VPN yapılandırmasını düzenleyeceğiniz dosya.

Düzenlenecek Ayarlar (Açıklamalı)

Tüm trafiği VPN içinden geçir:


push "redirect-gateway def1 bypass-dhcp"

Açıklama: Kullanıcının bütün trafiğini VPN tüneline yönlendirir.

DNS sunucularını ayarla:


push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"

Açıklama: ISS DNS yerine güvenilir DNS kullanılır.

Yetkisiz kullanıcı olarak çalıştır:


user nobody
group nobody

Açıklama: VPN çalışırken root yetkisi kullanılmaz → güvenliği artırır.

Alt ağ topolojisini etkinleştir:


topology subnet

Açıklama: Her istemciye ayrı IP atanmasını sağlar.

İstemci sertifika doğrulama:


remote-cert-eku "TLS Web Client Authentication"

Açıklama: Sunucuya gelen sertifikanın gerçekten istemciye ait olduğunu doğrular.

tls-crypt aktif et:


tls-crypt myvpn.tlsauth

Açıklama: TLS paketlerine ek şifreleme ekler. Dış saldırılara karşı çok daha güvenlidir.

tls-crypt anahtarını üret:


sudo openvpn --genkey --secret /etc/openvpn/myvpn.tlsauth

Açıklama: TLS trafik şifreleme anahtarını oluşturur.


🔐 3. Sertifika ve Anahtar Oluşturma

vars dosyasını düzenleyin:


sudo nano /etc/openvpn/easy-rsa/vars

Açıklama: Sertifika bilgilerini burada tanımlarsınız.

Örnek:


export KEY_COUNTRY="TR"
export KEY_PROVINCE="IST"
export KEY_CITY="Kadikoy"
export KEY_ORG="RabisuCloud"
export KEY_EMAIL="[email protected]"
export KEY_CN="openvpn.rabisu.cloud"
export KEY_NAME="server"
export KEY_OU="Teknik"

Açıklama: Bu bilgiler sertifikalara otomatik olarak yazılır.

CA oluştur:


cd /etc/openvpn/easy-rsa
source ./vars
./clean-all
./build-ca

Açıklama: VPN’in kök otoritesini oluşturur. En kritik adımdır.

Sunucu sertifikası:


./build-key-server server

Açıklama: Sunucu kimliğini doğrulayan sertifika üretir.

DH anahtar üretimi:


./build-dh

Açıklama: Güvenli anahtar değişimi için Diffie-Hellman dosyası üretir.

İstemci sertifikası:


./build-key client

Açıklama: VPN'e bağlanacak istemci için anahtar ve sertifika üretir.

Gerekli dosyaları taşı:


cd /etc/openvpn/easy-rsa/keys
sudo cp dh2048.pem ca.crt server.crt server.key /etc/openvpn

Açıklama: Sunucunun çalışması için gerekli tüm sertifikalar doğru dizine taşınır.


🌐 4. Firewalld NAT ve Yönlendirme

Aktif firewalld zone’u bul:


sudo firewall-cmd --get-active-zones

Açıklama: OpenVPN'i hangi zone’a ekleyeceğinizi belirlemek için gereklidir.

OpenVPN servisine izin ver:


sudo firewall-cmd --zone=trusted --add-service openvpn --permanent

Açıklama: OpenVPN trafiğini güvenlik duvarından geçirir.

NAT aktif et (tüm istemci trafiği için):


sudo firewall-cmd --add-masquerade --permanent

Açıklama: İstemci internet trafiği sunucunun IP’si üzerinden çıkar.

Sunucunun ağ arayüzünü bul:


SHARK=$(ip route get 8.8.8.8 | awk 'NR==1 {print $(NF-2)}')

Açıklama: NAT işleminin hangi ağ arayüzünden çıkacağını belirler.

Yönlendirme kuralı ekle:


sudo firewall-cmd --permanent --direct --passthrough ipv4 \
-t nat -A POSTROUTING -s 10.8.0.0/24 -o $SHARK -j MASQUERADE

Açıklama: VPN alt ağının internete çıkmasını sağlar.

Firewalld reload:


sudo firewall-cmd --reload

Açıklama: Yapılan değişiklikleri aktif eder.

IP yönlendirme aç:


sudo nano /etc/sysctl.conf

Ekleyin:


net.ipv4.ip_forward = 1

Uygula:


sudo systemctl restart network.service

Açıklama: Sunucu VPN trafiğini yönlendirebilir hale gelir.


🚀 5. OpenVPN Servisini Başlatma

Servisi açılışta aktif et:


sudo systemctl -f enable [email protected]

Servisi başlat:


sudo systemctl start [email protected]

Durumu kontrol et:


sudo systemctl status [email protected]

Açıklama: active (running) görüyorsanız VPN sunucusu aktif demektir.


💻 6. İstemci Yapılandırması

İstemciye gönderilecek dosyalar:

ca.crt

client.crt

client.key

myvpn.tlsauth

Açıklama: Bu 4 dosya olmadan istemci bağlanamaz.

tr-client.ovpn dosyası:


client
tls-client
ca ca.crt
cert client.crt
key client.key
tls-crypt myvpn.tlsauth
remote-cert-eku "TLS Web Client Authentication"
proto udp
remote sunucu_ip 1194
dev tun
topology subnet
pull
user nobody
group nobody

Açıklama: İstemcinin VPN’e nasıl bağlanacağını tanımlar.


❓ SSS – Sıkça Sorulan Sorular

1. OpenVPN mi WireGuard mı daha iyi?

OpenVPN daha esnektir; WireGuard daha hızlıdır.

2. ca.key neden saklanmalı?

CA’nın özel anahtarıdır; çalınırsa tüm VPN çöker.

3. Port 1194 değiştirilebilir mi?

Evet. server.conf içinde farklı bir port belirleyebilirsiniz.

4. Birden fazla istemci bağlayabilir miyim?

Evet, her istemci için yeni sertifika önerilir.

5. DNS neden özel olarak ekleniyor?

VPN tüm trafiği yönlendirdiği için ISS DNS'leri geçersiz olur.


🎉 Sonuç

OpenVPN sunucunuz başarıyla kuruldu. Artık güvenli tünel üzerinden tüm internet trafiğinizi şifreleyebilirsiniz.