OpenVPN 2. kısım

OpenVPN’de hem sunucu hem istemci tarafında config klasörünün içinde sunucunun veya istemcinin common name’iyle aynı isimde, ovpn uzantılı bir yapılandırma dosyası olmalıdır. sample-config klasörünün içinde örnek yapılandırma dosyaları vardır. Bu dosyaları config klasörüne kopyalayıp, bir metin editörüyle açıp ihtiyacımız olan kısımları değiştirmek en kolay yöntemdir. Aşağıya yorum satırlarıyla birlikte yazacağım basit örnek de bir başlangıç noktası olarak kullanılabilir. Dosyada # ve ; ile başlayan satırlar yorum satırıdır.

#SUNUCU YAPILANDIRMASI

#sunucunun hangi portu ve tcp mi udp mi dinleyeceğini belirtir. Varsayılanda udp 1194’tür.
port 1194
proto udp
;proto tcp

#Sanal ağ bağdaştırıcısı türünü belirtir. Routed için tun, Bridged için tap kullanılır.
dev tun
;dev tap

#CA’yı, sunucu sertifikasını ve sunucu private key’ini belirtir.
ca ca.crt
cert server.crt
key server.key

#Diffie-Hellman parametrelerini belirtir.
dh dh1024.pem

#veri bütünlüğü için kullanılacak statik simetrik anahtarı belirtir. Bu işlev isteğe bağlıdır.
#İfadenin sonuna sunucuda 0, istemcide 1 yazılır.
tls-auth ta.key 0

#sunucu ve istemcilerin güvenli iletişimde kullanacakları IP ağını belirtelim. Bu ağ cihazlar
#tarafından zaten kullanılmakta olan bir IP bloğuyla çakışmamalıdır. Sunucu ilk IP’yi kendisine
#alır diğerleri istemcilere dağıtılır. Windows sistemlerde tanımlanan IP bloğu /30’luk alt ağlara
#bölünür, her istemci farklı ikişer IP’lik alt bloklardaki IP’lerden birini kullanır.
server 10.8.0.0 255.255.255.0

#istemcilerin aldığı IP’lerin kaydını tutulduğu dosyayı belirtir. Böylece bağlantı kopup tekrar
#bağlanma durumunda istemci aynı IP’yi alır.
ifconfig-pool-persist ipp.txt

#sunucu tarafındaki 192.168.1.0/24 ağına sunucu üzerinden gidilebileceğini belirtir.
push “route 192.168.1.0 255.255.255.0”

#Sırada istemciye özel yapılandırma dosyalarının bulunacağı klasörü oluşturmak ve OpenVPN’e
#göstermek var. Bu klasörün config klasörünün altında bulunması gerekiyor. Örneğin
#klasörümüzün ismi ccd olsun.
client-config-dir ccd
#Bu klasörde bulunan istemciye özel yapılandırma dosyalarının istemcinin common name’iyle
#aynı isimde olması gerekiyor. Bu dosyalar çeşitli amaçlar için kullanılabilir. Örneğin istemcinin
#kendi tarafındaki 192.168.101.0/24 ağını OpenVPN’e dahil etmek için aşağıdaki satırı ilgili
#yapılandırma dosyasına (bu örnekte client.txt) eklemeliyiz:
#iroute 192.168.101.0 255.255.255.0

#Ayrıca bu dosyada da aşağıdaki satırın bulunması gerekiyor.
route 192.168.101.0 255.255.255.0

#Dosyada bulunması gereken diğer satırlar da şu şekilde. Bu ifadelerle ilgili daha detaylı bilgi
#OpenVPN’in sitesinden alınabilir.
persist-key
persist-tun
verb 3
comp-lzo #sıkıştırmayı aktif hale getirir
keepalive 10 120 #10 saniyede bir ping atar, 120 saniye timeout
status openvpn-status.log #OpenVPN’in durumunu belirtilen dosyaya loglar.

######################

#İSTEMCİ YAPILANDIRMASI

#istemci olduğunu belirtir
client

#hangi portu ve tcp mi udp mi kullanacağını belirtir. Varsayılanda udp 1194’tür.
port 1194
proto udp
;proto tcp

#Sanal ağ bağdaştırıcısı türünü belirtir. Routed için tun, Bridged için tap kullanılır.
dev tun
;dev tap

#Sunucunun IP ve portunu belirtir. Örneğimizde sunucumuz da private bir ağda bulunduğu için
#burda sunucu tarafındaki gateway’in public IP’sini yazmalıyız. Ayrıca gateway’e de public
#IP’sinin 1194. portuna gelen isteği 192.168.0.1’in 1194. portuna iletmesini belirtmeliyiz.
remote GATEWAY’İN_PUBLIC_IP’Sİ  1194

#CA’yı, istemci sertifikasını ve istemci private key’ini belirtir.
ca ca.crt
cert client.crt
key client.key

#veri bütünlüğü için kullanılacak statik simetrik anahtarı belirtir. Bu işlev isteğe bağlıdır.
#İfadenin sonuna sunucuda 0, istemcide 1 yazılır.
tls-auth ta.key 1

#Alınan sertifikanın tipinin “server” olduğunu teyit ederek ek bir güvenlik sağlar. Bu işlev isteğe
#bağlıdır.
ns-cert-type server

#Dosyada bulunması gereken diğer satırlar da şu şekilde. Bu ifadelerle ilgili daha detaylı bilgi
#OpenVPN’in sitesinden alınabilir.
persist-key
persist-tun
verb 3
comp-lzo #sıkıştırmayı aktif hale getirir
resolv-retry infinite #OpenVPN sunucusunun ismini çözmeye çalışmayı kesmez, hep dener
nobind

######################

Yapılandırma dosyalarında belirtilmesi gereken temel ayarlar bu kadar. Sunucu ve istemcide yapmamız gereken son ayar makinaların IP routing özelliğini etkinleştirmek. Bu ayar registry editor’dan yapılabilir. Çalıştıra regedit yazıp açılan ekranda

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

Yolunu izleyip burdaki IPEnableRouter değerini 1 yapıyoruz.

Son olarak sunucu ve istemci bulundukları ağın gateway’i olmadıkları için gateway’lerde bazı routing işlemleri yapmamız gerekiyor.

Sunucu tarafında:

10.8.0.0/24 ağına giden paketleri sunucuya iletmek için:
ip route 10.8.0.0 255.255.255.0 192.168.0.1

İstemci tarafındaki 192.168.101.0/24 ağına giden paketleri sunucuya iletmek için:
ip route 192.168.101.0 255.255.255.0 192.168.0.1

Topolojiye eklenen her client site için o ağa sunucu üzerinden ulaşılabileceğini belirten bir rota eklenmelidir.

İstemci tarafında:

Sunucu tarafındaki 192.168.0.0/24 ve 192.168.1.0/24 ağlarına giden paketleri istemciye iletmek için:
ip route 192.168.0.0 255.255.254.0 192.168.100.1

Böylece OpenVPN’le iki site arasında site-to-site VPN kurmuş olduk. Yazımın üçüncü kısmında yapabileceğimiz bazı ek ayarlardan bahsedeceğim.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir