Skip to main content

Kullanım Kılavuzu (İngilizce)

İki yönlü TLS kimlik doğrulamasını kullanan OpenVPN yapılandırması

Yukarıda belirtilen kimlik doğrulama yönteminin dezavantajı, paylaşılan bir gizli anahtar yardımıyla, katılan VPN ana bilgisayarlarından birinin çalınması, bu anahtarın tüm katılımcılardan değiştirilmesine gerek olmasıdır. Bu, yeni anahtarın güvenli olmayan bir İnternet kanalı üzerinden nasıl güvenli bir şekilde aktarılacağı sorusunu gündeme getirir. Bu nedenle, birkaç istemcinin sunucuya bağlanması gerekiyorsa, TLS kimlik doğrulaması seçilmelidir.

Bu durumda, her bir tarafın hiçbir yere aktarılmayan kendi özel anahtarı vardır. Yalnızca CA tarafından imzalanan istemcinin ortak anahtar sertifikası iletilir. Bu tür sertifikalar belirli bir süre için uzman kuruluşlar tarafından para karşılığında verilir. Ancak, VPN'yi şirketinizde düzenlemek için, güvenlik için özel bir gereklilik yoksa, kendi sertifika merkezinizi kullanabilirsiniz.

Şimdi iki istemciyi bağlamak için Windows'da anahtarlar ve sertifikalar oluşturmaya bir örnek verelim: Keenetic-2 ve Keenetic-3Keenetic-1 sunucusuna.

Gerekli tüm anahtarların ve sertifikaların oluşturulması için, Windows'taki OpenVPN 2.4.6-I602 paket sürümünde bulunan ve içinde bulunan openssl yardımcı programını kullanan bir dizi EasyRSA komut dosyasına ihtiyacımız var.

EasyRSA'yı kurmak için OpenVPN'i kurarken 'EasyRSA 2 Sertifika Yönetimi Komut Dosyaları' bileşenini işaretleyin:

openvpn-server10-en.png

[en] In OpenVPN 2.5.x versions, to install the EasyRSA scripts, press the 'Customize' button on the first installer screen and scroll to the bottom of the component list.

openvpn-server11-en.png
openvpn-server12-en.png

Windows komut satırını yönetici olarak açın.

  1. C:\Program Files\OpenVPN\easy-rsa adresine gidin ve çalıştırın:

    init-config.bat
    openvpn-server13-en.png

    Sonuç olarak, anahtarlarınızı ve sertifikalarınızı oluşturmak için ortamı yapılandıran bir vars.bat dosyası alırız.

    Bu dosyayı Windows Not Defteri'nde açın ve varsayılan olarak 'anahtarları' için saklayacak bir klasör belirtin:

    set KEY_DIR=keys

    sertifika sahibi alanlarınızın varsayılan değerlerinin yanı sıra, örneğin:

    set KEY_COUNTRY=GB
    set KEY_PROVINCE=YourProvince
    set KEY_CITY=YourCity
    set KEY_ORG=YourOrganisation
    set KEY_EMAIL=mail@example.com
    set KEY_CN=CommonName
    set KEY_NAME=KeyName
    set KEY_OU=OrganisationUnit

    Değiştirilen dosyayı kaydedin.

  2. Windows komut satırında (bir kez) yürüterek yeni index.txt ve seri yardımcı dosyaları oluşturun:

    vars
    clean-all
    openvpn-server14-en.png
  3. [en] Create a private key and certificate for your certificate authority by doing the following:

    vars
    build-ca
    openvpn-server15-en.png

    Sertifika yetkilinizin oluşturulan ca.key ve ca.cert dosyaları C:\Program Files\OpenVPN\easy-rsa\keys klasöründe görünecektir.

  4. Trafiğinizin şifresini çözmek için bir Diffy-Helman dosyası oluşturun. TLS sunucusu tarafından kullanılacaktır. Bazı durumlarda prosedür biraz zaman alabilir (örneğin, anahtar boyutu 4096 bit olduğunda, onlarca dakika sürer), ancak yalnızca bir kez yapılması gerekir:

    vars
    build-dh
    openvpn-server16-en.png

    C:\Program Files\OpenVPN\easyrsa\keys klasöründe dh2048.pem (veya 4096 bit anahtar boyutu kullanılırken dh4096.pem) dosyası görünür.

  5. Aşağıdakileri gerçekleştirerek OpenVPN TLS sunucusu (Keenetic-1) için özel bir anahtar ve sertifika oluşturun:

    vars
    build-key-server Keenetic-1

    Komut dosyası Ortak Ad (CN) istediğinde sunucu adını girin, örneğimiz Keenetic-1'e. Sonunda sertifikayı imzaladığınızı iki kez onaylayın (y).

    openvpn-server17-en.png
  6. İlk OpenVPN TLS istemcisi (Keenetic-2) için özel anahtarıPEM isteğini ve sertifikasını yürüterek oluşturun:

    vars
    build-key Keenetic-2

    Komut dosyası Ortak Ad (CN) istediğinde, ilk istemcinin adını girin — Keenetic-2. Sertifikayı imzaladığınızı iki kez (y) onaylayın.

    openvpn-server18-en.png
  7. İkinci istemci (Keenetic-3) için önceki adımı tekrarlayın:

    vars
    build-key Keenetic-3

    Komut dosyası Ortak Ad (CN) istediğinde, ikinci istemcinin adını girin — Keenetic-3. Sertifikayı imzaladığınızı iki kez (y) onaylayın.

    [en] Similarly, you can create keys, queries, and certificates for any number of clients.

  8. DoS saldırılarına ve sele karşı ek koruma sağlamak için bir HMAC anahtarı oluşturun:

    vars
    openvpn.exe --genkey --secret keys\ta.key
    openvpn-server19-en.png

    Bu noktada, gerekli tüm dosyalar oluşturulur:

    openvpn-server20-en.png

    OpenVPN sunucusunda ve istemci yapılandırmalarında kullanmak için aşağıdaki dosyalar gereklidir:

    • ca.crt — dh2048.pem sertifika sertifikası

    • dh2048.pem (veya dh4096.pem) — Diffy-Helman dosyası

    • Keenetic-1.crt — OpenVPN sunucu sertifikası (Keenetic-1)

    • Keenetic-1.key — OpenVPN sunucusu özel anahtarı (Keenetic- 1)

    • Keenetic-2.crt — 1. OpenVPN istemcisinin sertifikası (Keenetic-2)

    • Keenetic-2.key — 1. OpenVPN istemcisinin özel anahtarı (Keenetic-2)

    • Keenetic-3.crt — 2. OpenVPN istemcisinin sertifikası (Keenetic-3)

    • Keenetic-3.key — 2. OpenVPN istemcisinin özel anahtarı (Keenetic-3)

    • ta.key — DoS saldırılarına ve sele karşı ek koruma için HMAC anahtarı

    Yapılması gereken tek şey, içeriklerini sunucu ve istemci yapılandırma metin dosyalarına eklemektir.

  9. Bir OpenVPN sunucu yapılandırma dosyası oluşturmak için C:\Program Files\OpenVPN\sample-config\ içinde bulunan örnek server.ovpn'yi kullanın. Anahtarları ve sertifikaları aşağıdaki gibi eklemeniz gerekir:

    1. Hattı değiştirin:

      ca ca.crt

      bölüm ile:

      <ca>
      -----BEGIN CERTIFICATE-----
        <--Insert the body of the certificate of the certification centre from the file ca.crt here
      -----END CERTIFICATE-----
      </ca>
    2. Değiştirin:

      cert server.crt

      bölüm ile:

      <cert>
      -----BEGIN CERTIFICATE-----
        <--Insert the body of the OpenVPN server certificate from the Keenetic-1.crt file here
      -----END CERTIFICATE-----
      </cert>
    3. Hattı değiştirin:

      key server.key

      bölüm ile:

      <key>
      -----BEGIN PRIVATE KEY-----
        <--Insert the body of the OpenVPN server private key from the Keenetic-1.key file here
      -----END PRIVATE KEY-----
      </key>
    4. Hattı değiştirin:

      dh dh2048.pem

      bölüm ile:

      <dh>
      -----BEGIN DH PARAMETERS-----
        <--Insert the contents of the file Diffie-Helman dh4096.pem here 
      -----END DH PARAMETERS-----
      </dh>
    5. Hattı aç:

      topology subnet
    6. [en] Replace the line:

      [en] server 10.8.0.0 255.255.255.0

      [en] with the line:

      [en] server 10.1.0.0 255.255.255.0
    7. Çizgiyi yorumlayın:

      ;ifconfig-pool-persist ipp.txt
    8. Hattı değiştirin:

      tls-auth ta.key 0

      bölüm ile:

      <tls-auth>
      -----BEGIN OpenVPN Static key V1-----
         <--Сюда вставьте содержимое файла ta.key
      -----END OpenVPN Static key V1-----
      </tls-auth>

      ve satırı ekleyin:

      key-direction 0
    9. Çizgiyi yorumlayın:

      ;status openvpn-status.log
  10. İlk OpenVPN istemcisi için yapılandırma dosyası oluşturmak için C:\Program Files\OpenVPN\sample-config\ içinde bulunan client.ovpn örneğini kullanın. Anahtarları ve sertifikaları aşağıdaki gibi eklemeniz gerekir:

    1. Hatta:

      remote my-server-1 1194

      my-server-1'i OpenVPN sunucunuzun (Keenetic-1) alan adı veya genel IP adresiyle değiştirin.

    2. Hattı değiştirin:

      ca ca.crt

      bölüm ile:

      <ca>
      -----BEGIN CERTIFICATE-----
        <--Insert the body of the certificate of the certification authority from the file ca.crt here
      -----END CERTIFICATE-----
      </ca>
    3. Hattı değiştirin:

      cert client.crt

      bölüm ile:

      <cert>
      -----BEGIN CERTIFICATE-----
        <--Insert the body of the certificate of the first OpenVPN client from the file Keenetic-2.crt
      -----END CERTIFICATE-----
      </cert>
    4. Hattı değiştirin:

      key client.key

      bölüm ile:

      <key>
      -----BEGIN PRIVATE KEY-----
        <--Insert the body of the private key of the first OpenVPN client from the Keenetic-2.key file here
      -----END PRIVATE KEY-----
      </key>
    5. Hattı değiştirin:

      tls-auth ta.key 1

      bölüm ile:

      <tls-auth>
      -----BEGIN OpenVPN Static key V1-----
        <--Insert the contents of the ta.key file here
      -----END OpenVPN Static key V1-----
      </tls-auth>

      ve satırı ekleyin:

      key-direction 1
    6. Sunucunun yerel ağına giden yolu içeren bir satır ekleyin:

      route 192.168.1.0 255.255.255.0

      veya:

      route 0.0.0.0 0.0.0.0

      tüm trafiğin tünele yönlendirilmesi gerekiyorsa.

  11. Sırasıyla Keenetic-3.crt ve Keenetic-3.key dosyalarından veri alarak ikinci istemci için aynı işlemleri tekrarlayın.

    Üç Keenetic istemcisi için bu tür yapılandırma dosyalarına örnekler makalenin sonuna eklenmiştir:

    Bunları kullanarak istemciler dosyalarındaki KEENETIC-1.mykeenetic.co.tr istemci adının yerine Keenetic-1 sunucunuzun etki alanı adı veya genel ip adresi ve sizin oluşturduğunuz dosyaların sertifikalarını ve anahtarlarını yazın.

    Şimdi tek yapmanız gereken bunları 1.5, 1.6'daki gibi Keenetic yönlendiricilere indirmek ve bu kılavuzun 1.7, 1.8'de açıklanan eylemleri gerçekleştirmek.

    Bu kurulumun sonu. Tünellerin kurulup kurulmadığını kontrol edin.

    Bunu yapmak için, istemci tarafından sunucunun tünel adresine ping komutunu çalıştırın:

    ping 10.1.0.1

    ve sunucunun ev ağındaki adresi:

    ping 192.168.1.1

İpucu

Örneğin ikinci bölümünde, basitlik açısından, tüm işlemleri tek bir klasörde gerçekleştirdik, ancak güvenlik nedeniyle sertifika yetkilisini Internet'ten ayrı bir bilgisayara yerleştirmek ve yalnızca gizli anahtarı saklamak önerilir. üstünde; ve sertifikayı çıkarılabilir ortamda taşıyın. Benzer şekilde, sunucunun ve OpenVPN istemcilerinin özel anahtarları yalnızca tünelin ilgili taraflarına yerleştirilmelidir. Yalnızca sertifikalar değiştirilebilir.

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