| OpenVpn Kurulumu |
|
|
|
| Salı, 08 Eylül 2009 11:50 | ||||||||||
VPN (Virtual Private Network – Sanal Özel Ağ)
“İnternet, dünya genelindeki bilgisayar ağlarını ve kurumsal bilgisayar sistemlerini birbirine bağlayan elektronik iletişim ağı.[1] TDK, İnternet sözcüğüne karşılık olarak Genel Ağ'ı önermiştir[2]. Oktay Sinanoğlu, Örütbağ adını önermiştir. [3][4] İnternet yerine zaman zaman sadece Net sözcüğü de kullanılır.”
İnternet’in tanımında yazanlar bunlar. İnsanlar ilk başta aynı bina veya aynı kampus alanı içinde bilgisayarları birbirine bağlamaya başladılar. Daha sonra bu lokal (yerel) networkler (ağ) birleşti ve daha büyük ağlar oluştu. En nihayet bugün anladığımız manada Internet doğdu. Bilgisayar ağları büyüdükçe güvenlikleri de ister istemez azalır. Çok daha fazla uç noktanın olduğu bir ortam kontrolü daha zor ve suça daha açık bir hal alır. VPN kavramı işte böyle bir güvensiz ağ üzerinden iki uç noktanın veya iki ağın güvenli bir kanalla haberleşmesini tanımlar.
VPN Nedir?
“VPN, Virtual Private Network'ün (Sanal Özel Ağ) kısaltması olup, ağlara güvenli bir şekilde uzaktan erişimde kullanılan bir teknolojidir. Sanal bir ağ uzantısı yarattığından uzaktan bağlanan makine konuk gibi değil, ağa fiziksel olarak bağlıymış gibi görünür. Firmalar tarafından yaygın olarak kullanılan VPN, yöneticilerin, uzak ofislerin, bayi, acenta, satış temsilcilerinin güvenli bir şekilde özel ağlara bağlanmalarını sağlar.” Evet, biraz daha vikipedya tanımı okudunuz. Şimdi aşağıya bir bakalım, fiziksel olarak birbirinden uzakta ve direkt kablo çekerek, radyo dalgası vs gibi çözümlerle bağlayamayacağımız iki ağımız var:
Bu durumda Telekom şirketlerinden destek alıp, bu iki networku kiralık hat, uydu vs gibi teknolojilerle bağlamamız mümkün. Böylece iki ağ birbiriyle haberleşebilir. Aradaki bağlantı Telekom şirketince bize özel olarak oluşturulacağı için üçüncü bir kişinin araya girmesi söz konusu olmaz. Tek bir problem var, maliyet. Böyle dedicated (adanmış – bize özel) hatların maliyeti oldukça yüksektir. Ayrıca bulunduğumuz lokasyona göre Telekom firmasının alt yapısı bize böyle bir bağlantı sağlamaya uygun olmayabilir. Peki, aşağıdaki durumda ne yapacağız?
Bir ağımız var ve ona dışarıdan bağlanması gereken birçok kullanıcı var. Kullanıcılar hem çok farklı yerlerdeler hem de gezici (mobil) durumdalar. Her birine ayrı bir data hattı çekmemiz mümkün değil. Zaten mobil oldukları için sürekli farklı yerlerden ağa dâhil olmak istiyorlar. Keşke, bu kullanıcılarla bizim ağımız arasında hazır kurulu başka bir ağ daha olsa biz de onu kullansak? Tahmin ettiğiniz gibi böyle bir ağ var: Internet. Dolayısı ile üstteki örneğimizi şöyle bağlayabiliriz.
Ayrıca ikinci örnekte de, her kullanıcı bulunduğu noktadan internete girip, bağlanmak istedikleri ağa bağlanabilirler.
Buradaki sorun nedir peki? Bir bulut simgesiyle gösterdiğimiz Internet’e bizden başka birkaç milyar insan daha bağlı. Hımm… Bu bir sorun. Internet üzerinden geçen trafiği izleyip, dataları çalmak veya datayı değiştirerek orijinalliğini bozmak her zaman mümkün. Dolayısı ile bu iki network arasında gerçekleşecek veri akışı, Internet gibi güvensiz bir ortamdan hiçbir önlem alınmaksızın aktarılmamalıdır. Vpn işte bu noktada devreye girer. Bu iki network arasında, internet üzerinden bir VPN (Virtual Private Network / Sanal Özel Ağ) oluşturabiliriz. Sanal Özel Ağ ile kastedilen, her iki uç noktaya yerleştirilen bir donanım veya yazılım vasıtasıyla, bir tarafın göndereceği datanın önce şifrelenip, ancak karşı tarafa ulaştığında çözülüp kullanılacak şekilde gönderilmesini ve alınmasını sağlamaktır. Böylece data güvensiz ortamda iken ele geçirilse bile şifrelenmiş olacağı için kötü niyetli birisi bu datayla bir şey yapamaz. Vpn’in diğer önemli bir özelliği ise güvenlikten öte iki ağı sanal bir hat üzerinden bağlamasıdır. Böylece uç noktalar aynı yerel ağa bağlı gibi çalışabilirler. Örnek vermek gerekirse, diyelim ki bizim için güvenlik hiç önemli değil ve bir client internet üzerinden bir server’a bağlanacak. Peki server’ın nesine bağlanacak? Dosya paylaşımına mı, o zaman aradaki bağlantı cihazlarında (adsl modem gibi) dosya paylaşımı için gerekli portları yönlendirmemiz lazım. Peki başka bir kaynağa daha bağlanmak isterse, örneğin ftp sunucusuna girmek istiyor veya on-line oyun oynayacaksınız o zaman da farklı yönlendirmeler yapmanız lazım. Kısacası her bir uygulama için adsl modem üzerinde (veya bağlantıyı sağlayan cihaz neyse) tek tek bu uygulamaları tanımlamak zorundayız. Bazı uygulamalar da (on-line oyunlar gibi) bu şekilde port yönlendirmesi (NAT-PAT) ile düzgün çalışmaz. Bunun yerine client ve server arasında sanki upuzun bir network kablosu varmış gibi bir VPN tüneli oluşturursak, iki taraf artık aynı hub’a bağlı çalışan bilgisayarlar gibi yani sanal bir yerel ağ üzerinden haberleşebilirler.
Nasıl VPN Yapılır - OpenVPN?Internet’in yaygınlaşması ve buna bağlı olarak Vpn bağlantıların daha çok tercih edilmesiyle birlikte buna yönelik ürünler ve çözümler artmıştır.
Vpn oluşturmak için iki uçta da evinizdeki ADSL modem gibi bir modem kullanabileceğiniz gibi (VPN destekleyen ADSL modemler), binlerce dolarlık cihazlar kullanarak da bu işi yapabilirsiniz.
Peki, hiçbir donanım kullanmadan hatta ücretsiz bir yazılımla son derece güvenli ve kurulumu kolay bir VPN çözümü var desem?
OpenVPN açık kaynak kodlu, SSL kullanarak yüksek güvenlikli VPN kurmanıza yarayan ücretsiz bir yazılımdır.
İlk başta açık kaynak kodlu olarak geliştirilmiş, daha sonra ticari versiyonları da çıkmıştır. Hatta büyük projeler için OpenVpn kullanan donanımsal ürünler de mevcuttur.
Ancak hala ücretsiz versiyonu kullanılabilir.
OpenVPN KurulumuOpenVpn yazılımı 1MB boyutuyla boyundan büyük bir iş yapıyor diyebiliriz. Yazılımı indirip kurmadan önce yapımızı inceleyelim.
Şimdi aşağıdaki gibi bir konfigürasyonumuz olsun:
Burada internete bağlı iki bilgisayarımız var. Bunlardan birisine Client (terminal) diğerine Server (sunucu) diyelim. Client bilgisayarımız Adsl modemi ile internete çıkıyor. Kendi IP adresi 192.168.1.2, modemi de ağ geçidi olarak görüyor. Hatta IP adresini otomatik olarak modemden alıyor (dolayısı ile bir sonraki bağlantıda farklı bir IP alabilir, client tarafında bu bizim için bir problem değil).
Server tarafında da benzer bir yapı var. Ancak Server bilgisayar IP adresini DHCP’den otomatik almamalı ve bizim elle verdiğimiz sabit IP değerlerine sahip olmalı. Ayrıca Server tarafında modemin Internet’e bağlanırken aldığı dış IP yani gerçek Internet IP’si de sabit olursa işimiz kolaylaşır. Çünkü Client bağlanırken bu dış IP’ye bağlantı kuracak, modem dışarıdan gelen bu bağlantıyı iç tarafta Server bilgisayarın IP’sine yönlendirecek. Dolayısı ile Server tarafında IP adreslerinin değişmez, sabit IP olarak tanımlanması gerekiyor.
Server tarafında ADSL modemin arayüzüne girip, 1194 nolu UDP portunu Server bilgisayarın iç IP adresine NAT yapalım. OpenVpn standart olarak 1194 UDP portundan bağlantı kuruyor. Bunu değiştirmek bizim elimizde, birazdan göreceğimiz gibi hangi portun kullanılacağını biz ayarlıyoruz. Ancak şimdi değiştirmeden standart ayarları yapalım:
Şimdi OpenVPN kurulumuna geçelim. Önce bu küçük yazılımı indirelim:
http://openvpn.se/download.html
bu adresten
Installation Package (Both 32-bit and 64-bit TAP driver included):openvpn-2.0.9-gui-1.0.3-install.exe linkine tıklayarak yazılımı indirelim.
Server tarafına da, Client tarafına da aynı yazılımı kuracağız. Yazılım içinde yapacağımız ayarlarla bir taraf Client diğer taraf Server olacak.
Server Kurulumuİndirdiğimiz yazılımı önce server olan bilgisayara kuruluyoruz. Kurulum esnasında hiçbir ayarı değiştirmeden, Next diyerek kurulumu yapalım. Sürücü yükleme ile ilgili bir uyarı geldiğinde Yes diyerek devam edin. OpenVpn ağ bağlantıları içine bir tane sanal ağ bağdaştırıcı ekliyor.
Bu sanal bağdaştırıcının ismini benim yaptığım gibi OpenVpn yaparsanız, diğerleriyle karıştırmazsınız.
Ayrıca Bilgisayarım>sağ tık>yönet>hizmetler altından ulaşabileceğiniz gibi, bilgisayara bir Windows servisi yükleniyor. Ancak nedense bu servis otomatik başlayacak şekilde ayarlı gelmiyor. Server’da bunu otomatik hale getirmeliyiz. Böylece bilgisayar restart etse bile bağlantı kabul etmeye hazır hale gelsin.
OpenVpn kurulduğunda aşağıdaki gibi bir dizin yapısı oluşuyor:
Bizim için “config” ve “easy-rsa” dizinleri önemli. Config klasöründe bağlantı için gerekli ayarları belirteceğimiz dosyalarımız ve SSL bağlantı için gereken sertifika dosyalarımız bulunuyor. Yani OpenVpn bu klasörü tüm ayarlarını öğrenmek için kullanıyor.
“easy-rsa” dizinini ise SSL bağlantı için gerekli sertifika dosyalarını oluşturmak için kullanacağız. Burada oluşan dosyaları OpenVpn’in kullanabilmesi için “config” klasörüne taşımamız gerekecek.
Şimdi “config” dizinine girelim ve notepad ile bir text dosya oluşturalım. Ve içine aşağıdakileri yazıp kaydedelim. Dosyanın ismini server.ovpn yapalım.
## server.ovpn ---- Açıklama satırı #### 1194 nolu porttan bağlantı kabul etmek için bekleyecek ## ## udp protokolunu kullanıyoruz, udp 1194’de bekleyecek ## ## oluşturulan sanal ağ bağdaştıcısının tipi ##dev tun ## ca sertifikasının ismi ## ## ca sertifikasının ismi ##cert server.crt ## server key dosyasının ismi ##key server.key ## pem dosyasının ismi, bu dosyaları birazdan oluşturacağız ##dh dh1024.pem ## client ile server arasında kurulacak ağ’da kullanılacak IP blogu ## ## eğer bazı clientlara hep aynı IP adresinin atanmasını istiyorsak, ## ## gerekli bilgileri ipp.txt dosyasına yazıp, bu dosyayı da config dizine#### koyariz, burada bu dosyanın ismini belirtiyoruz ##ifconfig-pool-persist ipp.txt ## client bağlandığında, client’a IP adresiyle beraber diğer DHCP #### özellikleri de, yollanabilir – ilk başta bunları inaktif yapıyoruz#### push "route 192.168.0.0 255.255.255.0"## bağlantı kurulduktan sonra, belli bir süre data aktarımı olmadığında ## bağlantının kesilmemesi için #keepalive 10 120## verinin aktarılırken sıkıştırılması ##comp-lzo ## server’a aynı anda bağlanabilecek client sınırı# diğer ayarlarpersist-keypersist-tun
Ben burada bizim için gerekli temel ayarları aldım. Bu dosya içinde daha birçok ayar girilebilir. C:\Program Files\OpenVPN\sample-config içinde örnek config dosyalarını inceleyebilirsiniz.
Server için sertifikaların oluşturulmasıŞimdi OpenVpn’in muhtemelen zor gözüken ama yapması 1 dakika süren işlemine sıra geldi. OpenVpn daha önce bahsettiğimiz güvenli ağı oluşturmak için SSL (Secure Socket Layer) kullanmaktadır. Bu teknoloji güvenli web sitelerinde gezerken kullandığımız teknolojidir. Bankacılık, alışveriş vs gibi sitelerde web sitesinin adresi “http” yerine “https” olur ve web browser da güvenli bağlantı üzerinde olduğumuzu belirten bir simge ortaya çıkar.
OpenVpn’de aynı şifreleme tekniğini kullanarak iki nokta arasında aktarılacak veriyi şifreler. Diğer Vpn çözümlerinde bu şifreleme işi farklı yöntemlerle yapılmaktadır. Ancak OpenVpn diğerlerine göre hem yüksek bir güvenlik sağlar hem de, her türlü network üzerinde çalışır. Ara cihazlarda (modemler, firewallar gibi) karmaşık ayarlar yapmak gerekmez. Sadece server tarafında yukarıda yazdığımız gibi tek bir port yönlendirmesi yeterlidir. Client tarafında ise hiçbir donanımsal ayar gerekmemektedir.
OpenVpn’in basit bir çalışma mantığı var. İlk başta Linux platformu için geliştirilip sonra Windows’a uyarlandığı için Windows’ta alışık olduğumuz gibi grafik ara yüzlerden “tıklayarak” işlem yapmıyoruz. Bunun yerine dos moduna geçip komutlarla işlem yapacağız.
Şimdi server için gerekli sertifikaları oluşturalım:
Önce başlat>çalıştır>cmd yazarak komut istemine geçin. Daha sonra aşağıdaki komutlarla openvpn’in kurulu olduğu dizinin içindeki “easy-rsa” dizinine ulaşın:
Şimdi aşağıdaki komutları sırasıyla çalıştıralım:
C:\Program Files\OpenVPN\easy-rsa> init-configC:\Program Files\OpenVPN\easy-rsa> vars Şimdi şunu yazalım : C:\Program Files\OpenVPN\easy-rsa> build-ca
Size bazı değerler soracak bunları sadece enter’a basarak geçiyoruz. Sadece en son sorduğu “Common Name” değerine server’in bilgisayar ismini giriyoruz.
Bizim Server bilgisayarımızın bilgisayar ismi de “Server” olduğu için böyle girdik.
Şimdi C:\Program Files\OpenVPN\easy-rsa\keys klasörüne bakarsak burada bazı dosyaların oluştuğunu göreceğiz.
ca.crt isimli dosyayı C:\Program Files\OpenVPN\config dizinine kopyalıyoruz.
Şimdi yine komut ekranında aşağıdaki komutları girelim :
C:\Program Files\OpenVPN\easy-rsa> vars
“Common Name” sorduğunda yine “Server” yazıyoruz. Bu komutlarla da yine C:\Program Files\OpenVPN\easy-rsa\keys klasörü içinde server.crt ve server.key isimli iki dosya oluşacak. Bunları da aynı ca.crt dosyası gibi “config” içine kopyalıyoruz.
En son
C:\Program Files\OpenVPN\easy-rsa> build-dh
komutunu çalıştırıyoruz. Bu komut bizi biraz bekletiyor. İşlem tamamlandığında “keys” içinde oluşan son dosyamızı yani dh1024.pem dosyamızı da “config” içine kopyalıyoruz.
Client Kurulumu
Sıra geldi “client” kurulumumuza. Programı kuruluyoruz. Daha sonra C:\Program Files\OpenVPN\config içine client.ovpn isimli bir text dosya oluşturup, içine aşağıdakileri yazıp kaydediyoruz.
## acme.ovpn ##
Burada önemli olan nokta “remote 85.85.85.85 1194” satırı, burada 85.85.85.85 olan bizim örnek IP adresimiz yerine siz server tarafında modemin aldığı gerçek Internet IP adresini yazmalısınız. Bu ip adresini öğrenmek için Server bilgisayarından “whatismyip.com” sitesine girebilirsiniz. Böylece client Internet üzerinden Server tarafına nasıl ulaşacağını bilecektir.
Client Sertifika Oluşturma
Şimdi tekrar server bilgisayarımızın başına geçiyoruz. Her bir client için gerekli sertifika da server üzerinde oluşturuluyor çünkü. Aşağıdaki komutları çalıştırıyoruz:
C:\Program Files\OpenVPN\easy-rsa> vars
Bu komut ile yine “keys” klasörü içinde client.crt ve client.key isimli dosyalar oluşuyor. Bu iki dosyayı ve ilk başta oluşturduğumuz ca.crt dosyasını, bir şekilde (usb memory, mail vs) client bilgisayarına taşımamız ve oradaki config klasörü içine kopyalamamız gerekiyor.
Aynı yöntemi kullanarak, başka client’lar için de sertifika ve key dosyalarını oluşturup (client2, alipc, muhasebevpn gibi) birden fazla client’ın server’a bağlanmasını sağlayabilirsiniz.
Bağlantı
Evet, kurulum bitti.
Şimdi client tarafında sağ alt köşedeki simgeye sağ tıklayıp, connect yaptığımızda bağlanmamız lazım :
Client tarafında test etmek için yine komut isteminde
Ping 10.8.0.1
yapabiliriz. Hatırlarsanız yukarıda VPN içinde kullanılacak IP aralığı olarak 10.8.0.0 belirlemiştik. Bu durumda Server her zaman 10.8.0.1 IP’sini kendisi alacak, daha sonra bağlananlara diğer IP adreslerini verecektir.
Şimdi ağ yapımıza bakarsak:
Aramızda ki sanal-yerel ağ ile iki uç noktayı birleştirmiş durumdayız.
Client’tan karşı uçtaki ağa erişmek
|
| Sonraki > |
|---|
Bilgisayar ağları ve Windows Hakkında Bilgiler...