Skip to main content

Kullanım Kılavuzu

OpenVPN istemcisi ve sunucusu

OpenVPN, VPN bağlantısı için en popüler protokollerden biridir. Sanal bir özel ağ oluşturmak veya yerel ağları birbirine bağlamak için kullanılabilir. OpenVPN açık kaynaklıdır ve GNU GPL lisansı ile ücretsiz olarak dağıtılır. Diğer VPN protokollerinden daha yüksek bağlantı hızları sağlar. Ayrıca, OpenVPN en güvenli protokollerden biri olarak adlandırılabilir. İletilen tüm veriler, yüksek güvenlik ve anonimlik sağlayan OpenSSL şifreleme kitaplığı ve SSLv3 / TLSv1 protokolleri ile güvenli bir şekilde korunur.

Keenetic Router, OpenVPN bağlantısı için TCP ve UDP modu, TLS kimlik doğrulaması ve VPN bağlantı güvenliğini artırmak için sertifika ve şifreleme anahtarlarının kullanımını destekler.

Önemli

OpenVPN sunucusunu barındıracak Keenetic yönlendirici, global bir IP adresiyle Internet'e bağlı olmalı ve KeenDNS etki alanı adını kullanırken, Doğrudan erişim modunda yapılandırılmalıdır. Bu koşullardan herhangi biri karşılanmazsa, İnternet'ten böyle bir sunucuya bağlanmak mümkün olmayacaktır.

OpenVPN bağlantısını yapılandırmak için OpenVPN istemci ve sunucu sistem bileşeninin kurulması gerekir. Bu bileşenle Keenetic'nizde hem istemci hem de OpenVPN sunucusu kullanabilirsiniz. Sistem bileşenini Genel Sistem Ayarları sayfasındaki KeeneticOS Güncelleme ve Bileşen Seçenekleri bölümünde Bileşen seçenekleri'ne tıklayarak kurabilirsiniz.

openvpn-server1-en.png

OpenVPN modu (istemci veya sunucu) temel olarak yapılandırma dosyası tarafından tanımlanır.

Önemli

Keenetic'de kullanım için OpenVPN yapılandırma gereksinimleri:

  • Yapılandırma tek bir dosyada olmalıdır.

  • Sertifikalar, anahtarlar, vb. Bu dosyaya dahil edilmelidir.

  • Yapılandırmada yalnızca belgede listelenen seçenekleri kullanmalısınız:  OpenVPN 2.4 ManPage

  • Yukarıda açıklanan seçeneklerin bazıları desteklenmeyebilir. Örneğin, OpenVPN uygulamamız IPv6 ile ilgili seçenekleri desteklemez.

  • Seçeneklerin sırası ve etkinleştirilmiş sertifikalar ve anahtarlar önemli değildir.

  • OpenSSL anahtarları, router arayüzünde girmek için bir seçenek bulunmadığından şifresiz olarak ayarlanmalıdır.

  • OpenVPN yapılandırma dosyası başlangıç-yapılandırma yapılandırma dosyasına kaydedilmez. OpenVPN istemci arayüzü ayarlarının yedeğini almak için ayrı olarak kaydetmeniz gerekir.

[en] The number of client connections is limited by the allocated service memory partition size of 24 Kbytes for storing VPN configurations. This is especially important for OpenVPN connections because the total size of their configurations must not exceed 24 Kbytes.

'Siteden siteye' türündeki OpenVPN'i bağlama örneğini ele alalım.

openvpn-server2-en.png

Keenetic#2 istemcisini (Ev segmenti 192.168.2.0/24, tünel adresi: 10.1.0.2Keenetic#1'deki (Ev segmenti 192.168.1.0/24, tünel adresi: 10.1.0.1) sunucuya bağlayacağız

  • İlk olarak, paylaşılan bir gizli anahtar kullanarak en basit yapılandırmaya bakalım.

    1. Keenetic#1 için minimum OpenVPN sunucusunun yapılandırması:

      dev tun
      ifconfig 10.1.0.1 10.1.0.2
      cipher AES-128-CBC
      <secret>
        <--insert the secret key here
      </secret>
      verb 3
      route 192.168.2.0 255.255.255.0
    2. Keenetic#2 için minimum OpenVPN istemcisi yapılandırması:

      dev tun
      remote KEENETIC-1.mykeenetic.net <-- server's domain name or IP address
      ifconfig 10.1.0.2 10.1.0.1
      cipher AES-128-CBC
      <secret>
        <--insert the secret key here
      </secret>
      verb 3
      route 192.168.1.0 255.255.255.0
      or
      redirect-gateway def1
      or
      route 0.0.0.0 0.0.0.0 <-- if it's neccessary to route all the traffic in the tunnel
    3. Paylaşılan bir gizli anahtar oluşturun. Bunu yapmak için buradan OpenVPN'i indirin ve yükleyin: https://openvpn.net/index.php/download/community-downloads.html

      Bu örnekte Windows için 2.4.6-I602 sürümünü kullanacağız.

      Yazılımı yükledikten sonra bilgisayarı yeniden başlatın.

      Varsayılan olarak, program C:\Program klasörüne yüklenecektir.

      Windows komut satırını yönetici olarak çalıştırın. C:\Program Files\OpenVPN\bin adresine gidin ve şu komutu çalıştırın:

      openvpn.exe --genkey --secret static.key
      openvpn-server3-en.png
    4. Oluşturulan static.key dosyasını herhangi bir metin düzenleyicisinde (örn. Not Defteri) paylaşılan gizli anahtarla açın, içeriğini panoya (Ctrl-ACtrl-C) kopyalayın ve (Ctrl-V) istemci ve sunucu yapılandırma dosyaları.

      Keenetic # 1 için static-server.ovpn yapılandırma dosyalarına ve paylaşılan gizli anahtarlı Keenetic # 2 için static-client.ovpn yapılandırma dosyalarına örnekler bu makalenin sonuna eklenmiştir. Bu dosyalarda, gerekirse daha sonra kullanılabilecek başka yorumlanmış (';' ile başlayan) ayarlar da vardır. Static-client.ovpn içindeki KEENETIC-1.mykeenetic.tr etki alanı adını Keenetic # 1 etki alanı adınızla veya genel IP adresinizle değiştirerek doğrulama için bu yapılandırma dosyalarını kullanabilirsiniz. her iki dosyada da oluşturulur.

    5. Keenetic#1'in web arayüzünde Diğer Bağlantılar sayfasına gidin ve VPN Bağlantıları bölümünde Bağlantı Oluştur'a tıklayın. VPN Bağlantı Ayarları penceresinde, Tür (protokol) alanında OpenVPN'i seçin.

      Ardından, Bağlantı Adı alanına bağlantının adını girin ve static-server.ovpn yapılandırma dosyasının içeriğini OpenVPN Yapılandırması alanına yapıştırın. Ayarları kaydedin.

      openvpn-server4-en.png

      Önemli

      KeeneticOS 3.4.1 sürümünden itibaren sunucu, yalnızca Bağlantı YoluHerhangi Bir İnternet Bağlantısı belirtildiğinde çalışır.

    6. Aynı şekilde, ikinci Keenetic'in web arabirimine bir static-client.ovpn yapılandırmasıyla bir OpenVPN bağlantısı ekleyin:

      openvpn-server5-en.png
    7. Ayrıca, Keenetic # 1 (sunucu) tarafında, yönlendiricinin komut satırı arabirimi (CLI) üzerinden aşağıdaki komutların yürütülmesi gerekir:

      interface OpenVPN0 no ip global
      interface OpenVPN0 security-level private

      Özel güvenlik düzeyine sahip Home ve OpenVPN0 arabirimleri arasındaki trafiğe izin vermek için şu komutu çalıştırın:

      no isolate-private

      İstemciyi Internet'e de bağlamak için bu sunucuyu kullanmayı planlıyorsanız, şu komutu çalıştırın:

      ip nat 10.1.0.2 255.255.255.255

      ve ayarları şu komutla kaydedin:

      system configuration save
      openvpn-server6-en.png
    8. Son olarak, OpenVPN bağlantısı için bir port açmak gerekir. Varsayılan port UDP/1194'tür. Bunu yapmak için, Güvenlik Duvarı sayfasında İSS arayüzü veya İnternet'e erişmek için kullanılan arayüz için bir kural oluşturun (İSS'ye ek olarak PPPoE, L2TP veya PPTP arayüzleri de olabilir).

      openvpn-server7-en.png

      Güvenlik Duvarı Kuralı penceresinde, Eylem alanında İzin Ver'i, Protokol alanında UDP'yi ve Hedef Port Numarası alanında Eşittir 1194'ü seçin.

      Bağlantıyı oluşturduktan sonra, switch'i Etkin konuma getirin.

      openvpn-server-05-en.png

      OpenVPN tünelinin yapılandırması bu şekilde tamamlanır. Diğer Bağlantılar sayfasında bağlantı durumu ve istatistikler görüntülenir.

      Kontrol etmek için tünelin her iki ucuna da ping atmayı deneyin:

      ping 10.1.0.1
      ping 10.1.0.2

      ve sonra uzak alt ağlar:

      ping 192.168.1.1
      ping 192.168.2.1

Not

  1. OpenVPN arayüzünün yapılandırması startup-config dosyasına kaydedilmez. Yedekleme amacıyla, OpenVPN ayarlarını ayrı bir dosyada yedeklemenizi öneririz.

  2. OpenVPN istemci bağlantısının İnternet'e erişmek için kullanılması gerekiyorsa bu bağlantıya en yüksek önceliği atayın. Öncelikler hakkındaki bilgiyi Bağlantı öncelikleri makalesinde bulabilirsiniz.

  3. Bazı durumlarda, bir VPN tüneli bağlanırken kimlik doğrulama için OpenVPN yapılandırmasında kullanıcı adı ve parola belirtmek gerekir. Bunu yapmak için yapılandırma dosyasına, kullanıcı adı ve parola değerlerini belirten özel bir auth-user-pass bölümü eklenmelidir. Örneğin:

    <auth-user-pass>
    vpnclient     # login
    r3d23xs87     # password
    </auth-user-pass>
  4. Bir OpenVPN sunucusuna bağlanmak için Windows üzerinde anahtar ve sertifika oluşturma örneği İki yönlü TLS kimlik doğrulamasını kullanan OpenVPN yapılandırması makalesinde gösterilmektedir.

[en] Typical errors and solutions:

  1. [en] auth-user-pass without inline credentials data is not supported

    [en] The configuration file contains a line for online login/password entry, which Keenetic does not support. Error in the Keenetic log file:

    OpenVPN0 auth-user-pass without inline credentials data is not supported
    OpenVPN0 Exiting due to fatal error

    [en] Delete or comment out all lines of this kind:

    [en] auth-user-pass

  2. [en] Block-outside-dns option error

    [en] The block-outside-dns option is configured on the OpenVPN server, which is correctly handled only in Windows. Error in the Keenetic log file:

    OpenVPN0 Unrecognized option or missing or extra parameter(s) in configuration: (line X): block-outside-dns (2.4.4)
    OpenVPN0 Exiting due to fatal error

    [en] Add a line to the OpenVPN client configuration file:

    [en] pull-filter ignore "block-outside-dns"

  3. [en] Error when connecting to PrivateTunnel servers

    [en] An error is displayed when trying to connect:

    OpenVPN0 Unrecognized option or missing or extra parameter(s) in configuration: (line 3): client-ip (2.4.4)

    [en] Add a line to the OpenVPN client configuration file:

    [en] ignore-unknown-option client-ip block-ipv6

  4. [en] An error occurs when using the askpass /storage/key.txt option:

    Error: private key password verification failed

    [en] This is a limitation of the current OpenVPN implementation in Keenetic. You can only use a key without a password or with a fixed password: 'password'.

  5. [en] After updating the router to KeeneticOS 3.9.1, the VPN tunnel to the OpenVPN servers for certain VPN suppliers may no longer be established. You can see the following messages in the system log:

    W [Dec 15 16:52:58] OpenVPN6: DEPRECATED OPTION: --cipher set to 'AES-128-CBC' but missing in --data-ciphers (AES-256-GCM:AES-128-GCM:CHACHA20-POLY1305). 
    OpenVPN ignores --cipher for cipher negotiations.
    Error: private key password verification failed

    [en] The problem is the outdated encryption format BF-CBC, which is not supported starting from the OpenVPN 2.5.0 client version ( KeeneticOS 3.9 uses the OpenVPN 2.6.0 client version).

    Not

    [en] The BF-CBC chipher is no longer supported in the default configuration. The OpenVPN 2.5.0 version supports AES-256-GCM and AES-128-GCM ciphers by default. You can change this behaviour using the data-ciphers option, for example, by specifying in the settings data-ciphers AES-256-GCM:AES-128-GCM:BF-CBC. To support very old OpenVPN nodes that do not support cipher negotiation (mode "--cipher"), you can specify data-ciphers-fallback BF-CBC.

    [en] When upgrading to a new version of OpenVPN, the setting "cipher BF-CBC" in older configuration files will be converted with appending BF-CBC to the data-ciphers set. In addition, the data-ciphers-fallback mode is turned on.

    [en] To successfully install the tunnel, you will need to change the directive:

    [en] cipher AES-128-CBC to data-ciphers AES-128-CBC or data-ciphers AES-256-GCM:AES-128-GCM:CHACHA20-POLY1305

    [en] If it doesn't work, then change the directive:

    [en] cipher AES-128-CBC to data-ciphers-fallback AES-128-CBC

    [en] For maximum cipher negotiation compatibility with the remote server, specify the following directives:

    [en] data-ciphers AES-256-GCM:AES-128-GCM:CHACHA20-POLY1305

    [en] data-ciphers-fallback AES-128-CBC

    [en] or

    [en] data-ciphers AES-256-GCM:AES-128-GCM:CHACHA20-POLY1305

    [en] data-ciphers-fallback AES-256-CBC

    Önemli

    [en] Encryption depends on the remote OpenVPN server. Before changing the directive cipher, please look at the system log.

  6. [en] If the following key size error is recorded in the log:

    [E] Dec 16 19:01:38 OpenVPN0: Unrecognized option or missing or extra parameter(s) in configuration: (line 22): keysize (2.6_git)
    [E] Dec 16 19:01:38 OpenVPN0: Exiting due to fatal error
    [E] Dec 16 19:01:38 ndm: Service: "OpenVPN0": unexpectedly stopped.Error: private key password verification failed

    [en] Then in the tunnel configuration, you need to remove the keysize 256 option directive, which is outdated for the updated client OpenVPN 2.6.0, and check the tunnel connection again.

    [en] You can find detailed information for the "keysize" option by this link.

Aşağıdaki bilgileri okumanızı öneririz: