Roket Hızında, Reklamsız, Sansürsüz, Gizlilik Sunan, Aile Boyu İnternet İçin OpenVPN Sunucu Kurulumu

Bu öğreticide Debian, Ubuntu, Fedora, CentOS, Amazon Linux ve Arch Linux için OpenVPN yükleyicisi kullanarak nasıl çok kolay bir şekilde roket hızında, reklamsız, sansürsüz, gizlilik sunan, aile boyu (yani çok kullanıcılı, çapraz platform desteği sunan) internete kavuşabileceğimizi öğreneceğiz. Bu yükleyici, birkaç saniye içinde kendi güvenli VPN sunucunuzu kurmanıza olanak tanıyacaktır.

Bu öğreticideki işlem sunucunuza bağlı olarak sınırsız kullanıcıyı destekler. Yani bir sunucu için telefonlarınızı, tabletlerinizi, bilgisayarlarınızı, ailenizdeki bireyleri ve onların cihazlarını ekleyebilirsiniz. Sınır burada yalnızca sunucunuzdur. Şu an benim önerdiğim sunucular bile minimum 50 kullanıcıyı aynı anda internete çıkartabilir durumdadır.

Önerilen bulut sunucu sağlayıcıları:

Komut dosyası şu işletim sistemlerini ve mimarileri destekler:

i386 amd64 armhf arm64
Amazon Linux 2 :grey_question: :white_check_mark: :grey_question: :grey_question:
Arch Linux :grey_question: :white_check_mark: :grey_question: :white_check_mark:
CentOS 7 :grey_question: :white_check_mark: :x: :white_check_mark:
CentOS 8 :x: :white_check_mark: :grey_question: :grey_question:
Debian 8 :white_check_mark: :white_check_mark: :x: :x:
Debian >= 9 :x: :white_check_mark: :white_check_mark: :white_check_mark:
Fedora >= 27 :grey_question: :white_check_mark: :grey_question: :grey_question:
Ubuntu 16.04 :white_check_mark: :white_check_mark: :x: :x:
Ubuntu >= 18.04 :x: :white_check_mark: :white_check_mark: :white_check_mark:

Ek bilgi olarak:

  • Bu betiği Debian 8+ ve Ubuntu 16.04+ üzerinde çalıştırmalısınız. Yukarıdaki tabloda bulunmayan sürümler resmi olarak desteklenmemektedir.
  • Komut dosyası için “systemd” gerekir.
  • Betik düzenli olarak sadece “amd64” üzerinde test edilir.

:information_source: LÜTFEN yardım istemek için bana e-posta veya özel mesaj göndermeyin! Yardım alabileceğiniz tek yer bu makalenin altıdır. Bunu rahatsız olduğum için değil, diğer insanlara da yardımcı olabilmeniz yani gelecekte diğer kullanıcılar da sizinle aynı sorunla karşılaştığında çözümü buradan bulabilmeleri için zorunlu kılıyorum. Destek almak istiyorsanız :arrow_down:

Ön koşullar;

  • Temiz Ubuntu, Debian, Fedora, CentOS, Amazon Linux ve Arch Linux kurulu bir sunucu
  • Minimum 512 MB RAM / 1 CPU / 1 GB ve üzeri SSD depolama alanı
  • root ya da sudo yetkilerine sahip bir kullanıcı ile SSH erişimi

Betik yapılandırmaları ve özelleştirmeleri;

  • Kullanıma hazır bir OpenVPN sunucusu kurar ve yapılandırır
  • iptables kuralları ve yönlendirme sorunsuz bir şekilde betik tarafından yönetilir
  • Gerekirse betik, yapılandırma ve iptables kuralları da dahil olmak üzere OpenVPN’i komple kaldırabilir
  • Özelleştirilebilir şifreleme ayarları, geliştirilmiş varsayılan ayarlar
  • OpenVPN 2.4 sürümünün tam özellikleri, temel şifreleme geliştirmeleri
  • Kullanıcı/İstemci için çeşitli DNS sağlayıcıları
  • Unbound ile kendinden barındırılan DNS kullanma seçeneği (zaten var olan Unbound kurulumlarını da destekler)
  • TCP ve UDP arasında seçim imkanı
  • IPv6 NAT desteği
  • VORACLE’ı önlemek için sıkıştırma varsayılan olarak devre dışıdır. Yinede LZ4 (v1/v2) ve LZ0 algoritmaları kullanılabilir durumdadır.
  • Ayrıcalıksız kurulum modu: nobody / nogroup
  • Windows 10’da DNS sızıntılarını engeller
  • Rastgele sunucu sertifika adı oluşturur
  • Kullanıcı/İstemci .ovpn dosyalarını parola ile koruma seçeneği (özel anahtar şifrelemesi)

Kendi OpenVPN Sunucunuzu Kurun

curl -O https://raw.githubusercontent.com/muhyal/openvpn-yukleyici/master/openvpn-yukleyici.sh
chmod +x openvpn-yukleyici.sh
./openvpn-yukleyici.sh

OpenVPN kurulduğunda, betiği tekrar çalıştırabilir ve aşağıdakileri yapabilirsiniz:

  • Kullanıcı/İstemci ekle
  • Kullanıcı/İstemci kaldır
  • Sunucudan OpenVPN’i kaldır

:information_source: Kullanıcı/İstemci eklediğiniz zaman kullanıcı ana dizininizde .ovpn dosyalarınız oluşturulacaktır. Bunlar istemci yapılandırma dosyalarıdır. Bunları sunucunuzdan indirin ve favori OpenVPN istemcinizi kullanarak bağlanın.

Önerilen OpenVPN istemcileri:

Kurulum dosyasını indirip 2 adımda kendi OpenVPN sunucunuza kavuşmak için

Otonom kurulumdur! Desteklenir ama önerilmez!

AUTO_INSTALL=y ./openvpn-install.sh

ya da,

export AUTO_INSTALL=y
./openvpn-install.sh

:warning: Parola korumalı kullanıcılar/istemciler, Easy-RSA tarafından kullanıcı girişi beklendiği için otonom kurulum yöntemi tarafından desteklenmez.

:information_source: Sunucu NAT’ın arkasındaysa, uç noktasını ENDPOINT değişkeni ile belirleyebilirsiniz. Bitiş noktası arkasında olduğu genel IP adresiyse, ENDPOINT = $ (curl -4 ifconfig.co) kullanabilirsiniz (komut dosyası varsayılan olarak budur). Bitiş noktası bir IPv4 adresi veya bir alan olabilir.

Güvenlik ve gizlilik

OpenVPN’in varsayılan ayarları şifreleme konusunda oldukça zayıf. OpenVPN 2.4 şifreleme konusu ile ilgili harika bir güncelleme aynı zamanda. ECDSA, ECDH, AES GCM, NCP ve tls-crypt için destek eklendi. Aşağıda belirtilen bir seçenek hakkında daha fazla bilgi edinmek istiyorsanız, OpenVPN kılavuzuna gidin. OpenVPN’in şifreleme ile ilgili neredeyse her şeyi Easy-RSA tarafından yönetilir. Varsayılan parametreler vars.example dosyasındadır.

Sıkıştırma

Varsayılan olarak bu betik, OpenVPN sıkıştırmayı etkinleştirmez. betik LZ0 ve LZ4 (v1/v2) algoritmaları için destek sağlar. LZ4 (v1/v2) daha verimlidir.

Ancak, VORACLE saldırısı bunu kullandığından sıkıştırma kullanılması önerilmez.

TLS sürümü

OpenVPN, varsayılan olarak yaklaşık 20 yıldır kullanılan TLS 1.0’ı kullanır.

Bu betikte tls-version-min 1.2 ile şu anda OpenVPN için mevcut olan en iyi protokol olan TLS 1.2’i uygulanmıştır.

:information_source: TLS 1.2, OpenVPN 2.3.3 itibaren desteklenmektedir.

Sertifika

OpenVPN varsayılan olarak 2048 bit anahtarlı bir RSA sertifikası kullanır.

OpenVPN 2.4, ECDSA için destek ekledi. Eliptik şifreleme daha hızlı ve daha güvenlidir.

Bu betik şunları sağlar:

  • ECDSA: prime256v1 / secp384r1 / secp521r1
  • RSA: 2048/3072/4096 bit

Kontrol kanalı

OpenVPN 2.4 varsayılan olarak mevcut en iyi şifremeyle iletişim sağlar (Örn, ECDHE + AES-256-GCM)

Komut dosyası, sertifikaya bağlı olarak aşağıdaki seçenekleri önerir:

ECDSA:

  • TLS ECDHE-ECDSA-İLE-AES-128-GCM-SHA256
  • TLS ECDHE-ECDSA-ILE-AES-256-gsm-SHA384

RSA:

  • TLS ECDHE-RSA-İLE-AES-128-GCM-SHA256
  • TLS ECDHE-RSA-ILE-AES-256-gsm-SHA384

:information_source: Varsayılan olarak TLS-ECDHE - AES-128-GCM-SHA256.

Diffie-Hellman anahtar değişimi

OpenVPN varsayılan olarak 2048 bit DH anahtarı kullanır.

OpenVPN 2.4 sürümünde, ECDH anahtarları için destek eklenmiştir. Eliptik şifreleme daha hızlı ve daha güvenlidir.

Ayrıca, klasik bir DH anahtarı oluşturmak çok ama çok uzun sürebilir. ECDH anahtarlarının üretilmesi daha kısa sürmektedir.

Betik aşağıdaki seçenekleri sunar:

  • ECDH: prime256v1 / secp384r1 / secp521r1
  • DH: 2048/3072/4096 bit

:information_source: Varsayılan değer prime256v1’dir.

HMAC özet algoritması

OpenVPN vikisinden --auth hakkında:

İleti özeti algoritması alg kullanarak HMAC ile veri kanalı paketlerinin ve (etkinleştirilmişse) tls-auth kontrol kanalı paketlerinin kimliğini doğrular. (Varsayılan SHA1’dir). HMAC, dijital imza üretmek için veri dizesi, güvenli karma algoritma ve anahtar kullanan yaygın olarak kullanılan bir mesaj kimlik doğrulama algoritmasıdır (MAC).

Bir AEAD şifreleme modu (Örn, GCM) seçilirse, veri kanalı için belirtilen --auth algoritması yok sayılır ve bunun yerine AEAD şifresinin kimlik doğrulama yöntemi kullanılır. alg hala tls-auth için kullanılan özeti belirtir.

Bu betik aşağıdaki seçenekleri sunar:

  • SHA256
  • SHA384
  • SHA512

:information_source: Varsayılan olarak SHA256’dır.

Sıkça Sorulan Sorular

S: Betiği güncellemişsiniz, ben nasıl güncelleyebilirim?
C: Yapamazsınız. Komut dosyasındaki güncellemeleri ve yeni özellikleri sunucunuzda yönetmek çok fazla çalışma gerektirir. Tek çözümünüz OpenVPN’i kaldırmak ve güncellenmiş komut dosyasıyla yeniden yüklemektir.

Elbette, yalnızca OpenVPN paketini standart paket yöneticinizle güncelleyebilirsiniz.

S: DNS sızıntılarını nasıl kontrol ederim?
C: Tarayıcınızla dnsleaktest.com veya ipleak.com adresine gidin. Yalnızca sizin sunucunuzun genele açık IP adresi görünmelidir.

S: DNS sızıntılarını nasıl engelleyebilirim?
C: Windows 10’da DNS sızıntıları varsayılan olarak dns-outside-dns engelle seçeneğiyle engellenir.

Linux dağıtımınıza bağlı olarak alttaki ilgili satırları .ovpn dosyanıza eklemeniz gerekir.

Debian 9, 10 ve Ubuntu 16.04, 18.04

script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf

Centos 6, 7

script-security 2
up /usr/share/doc/openvpn-2.4.8/contrib/pull-resolv-conf/client.up
down /usr/share/doc/openvpn-2.4.8/contrib/pull-resolv-conf/client.down

Centos 8, Fedora 30, 31

script-security 2
up /usr/share/doc/openvpn/contrib/pull-resolv-conf/client.up
down /usr/share/doc/openvpn/contrib/pull-resolv-conf/client.down

Arch Linux

script-security 2
up /usr/share/openvpn/contrib/pull-resolv-conf/client.up
down /usr/share/openvpn/contrib/pull-resolv-conf/client.down

S: Komut dosyası tarafından hangi syctl ve iptables değişiklikleri yapılır?
C: iptables kuralları /etc/iptables/openvpn-kurallar-ekle.sh ve /etc/iptables/openvpn-kurallar-kaldir.sh dosyalarına kaydedilir. Bunlar /etc/systemd/system/iptables-openvpn.service hizmeti tarafından yönetilir.

sysctl seçenekleri ise /etc/sysctl.d/20-openvpn.conf adresindedir.

:information_source: Öğretici için kullanılmak üzere rezerve edilmiştir

Merhaba,

Egitim icin cok tesekkurler, verimli bir makale olmus. Elinize saglik.

1 sorum var;

OpenVPN destekli bir modem’e direk herhangi bir kullanici adi ile ekleme yaptigimiz’da, modem’e ornegin 10 cihaz baglaniyor diyelim bir sorun olur mu?

Tesekkurler.

Selam, hayır herhangi bir sorun olmayacaktır.

1 Beğeni