İ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-3, Keenetic-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:
[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.
Windows komut satırını yönetici olarak açın.
C:\Program Files\OpenVPN\easy-rsa
adresine gidin ve çalıştırın:init-config.bat
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.
Windows komut satırında (bir kez) yürüterek yeni
index.txt
ve seri yardımcı dosyaları oluşturun:vars clean-all
[en] Create a
private key
andcertificate
for your certificate authority by doing the following:vars build-ca
Sertifika yetkilinizin oluşturulan
ca.key
veca.cert
dosyalarıC:\Program Files\OpenVPN\easy-rsa\keys
klasöründe görünecektir.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 boyutu4096 bit
olduğunda, onlarca dakika sürer), ancak yalnızca bir kez yapılması gerekir:vars build-dh
C:\Program Files\OpenVPN\easyrsa\keys
klasöründedh2048.pem
(veya4096 bit
anahtar boyutu kullanılırken dh4096.pem) dosyası görünür.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
).İlk OpenVPN TLS istemcisi (Keenetic-2) için
özel anahtarı
,PEM isteğini
vesertifikası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.İ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
, andcertificates
for any number of clients.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
Bu noktada, gerekli tüm dosyalar oluşturulur:
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.
Bir OpenVPN sunucu yapılandırma dosyası oluşturmak için
C:\Program Files\OpenVPN\sample-config\
içinde bulunan örnekserver.ovpn
'yi kullanın.Anahtarları
vesertifikaları
aşağıdaki gibi eklemeniz gerekir: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>
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>
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>
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>
Hattı aç:
topology subnet
[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
Çizgiyi yorumlayın:
;ifconfig-pool-persist ipp.txt
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
Çizgiyi yorumlayın:
;status openvpn-status.log
İlk OpenVPN istemcisi için yapılandırma dosyası oluşturmak için
C:\Program Files\OpenVPN\sample-config\
içinde bulunanclient.ovpn
örneğini kullanın.Anahtarları
vesertifikaları
aşağıdaki gibi eklemeniz gerekir:Hatta:
remote my-server-1 1194
my-server-1
'i OpenVPN sunucunuzun (Keenetic-1) alan adı veya genel IP adresiyle değiştirin.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>
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>
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>
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
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.
Sırasıyla
Keenetic-3.crt
veKeenetic-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ınsertifikalarını
veanahtarları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: