# SoftEther VPN
SoftEther VPN, Tsukuba Üniversitesi'nden Daiyuu Nobori'nin yüksek lisans tezi araştırması kapsamında geliştirilen ücretsiz bir açık kaynak kodlu, çapraz platform, çoklu protokol destekli VPN çözümüdür. SoftEther VPN, SSL VPN, L2TP/IPsec, OpenVPN ve Microsoft Güvenli Yuva Tünel Protokolü gibi VPN iletişim kurallarını tek bir VPN sunucusundan verilecek şekilde desteklemektedir. 4 Ocak 2014 tarihinde GPLv2 lisansını kullanarak yayınlanmıştır.
SoftEther VPN mimarisi güvenlik duvarı nüfuzu için tasarlanmıştır ve NAT geçişini destekleyerek VPN sunucularını konut ağ geçitlerinin, tesis yönlendiricilerinin ve güvenlik duvarlarının (özel veya resmî) arkasındaki bilgisayarlarda çalıştırmayı kullanışlı hale getirir. Derin paket denetimi yapan güvenlik duvarları, bağlantıyı kamufle etmek için HTTPS kullanıldığından SoftEther'in VPN aktarım paketlerini VPN tüneli olarak algılayamaz.
Verim eniyilemesi SoftEther VPN için başka bir amaç olmuştur. Tam Ethernet çerçevesi kullanımını azaltarak hafıza kopyalama işlemleri, koşutlu iletim ve kümeleme gibi stratejiler kullanmaktadır. Birlikte bu, verimi arttırırken normalde VPN bağlantıları ile ilişkili gecikmeyi azaltabilir.


## Birlikte çalışabilirlik.
SoftEther VPN Sunucusu ("VPN Server") ve SoftEther VPN Köprüsü ("VPN Bridge") Windows, Linux, Mac OS X (ama 10.9.x değil), FreeBSD ve Solaris işletim sistemlerini destekler. SoftEther VPN kendi VPN protokolü ile aynı zamanda OpenVPN ile uyumludur, Microsoft Güvenli Yuva Tünel Protokolü (SSTP), SSL VPN, EtherIP, L2TPv3 ve IPsec gibi VPN protokollerini destekler. iOS, Android ve Windows Phone çalıştıran taşınabilir cihazlar L2TP/IPsec ile desteklenmektedir. Diğer VPN protokollerini destekleyen VPN istemcileri ve uç noktaları da kullanılabilir; bunlar Cisco, Juniper, Linksys (DD-WRT ile), Asus ve diğerleri gibi şirketlerin yönlendiricilerini geniş bir yelpazede içerir.


## VPN Sunucusu.
SoftEther VPN Sunucusu ("VPN Server") dinleme için VPN sunucusu işlevi uygulamaktadır ve birkaç VPN iletişim kuralı ile VPN İstemci ("VPN Client") veya VPN Köprüsü bağlantılarını kabul eder.
Bir VPN Sunucu, çeşitli Sanal Hub'lar ve Sanal Katman-3 Anahtarlarına sahip olabilir. Sanal Hub'ın fiziksel bir Ethernet anahtarı gibi tam katman-2 Ethernet paket-anahtarlama işlevleri vardır. Ayrıca, bir Sanal Hub, Sanal Hub üzerinden paketleri filtrelemek ve IP paket filtresi girişlerini tanımlamak için yapılandırılabilir. Sanal katman-3 Anahtarı, fiziksel bir yönlendirici gibi katman-3 IP statik yönlendirme işlevlerine sahiptir. Bir VPN Sunucusunun yerel köprüleri olabilir. Yerel köprü, fiziksel Ethernet ağ bağdaştırıcısı ve bir Sanal Hub arasındaki katman-2 paket anahtarlamalı yapıdır. Yönetici, Sanal Hub ve uzaktan erişimli VPN sunucusu veya site-to-site VPN sunucusu oluşturmak için mevcut kurumsal ağ arasında bir yerel köprüyü tanımlar.


## VPN İstemcisi.
SoftEther VPN İstemcisi ("VPN Client") bir Ethernet ağ bağdaştırıcısının sanallaştırılmış işlevi olan bir VPN istemci programıdır. Yüklü SoftEther VPN istemcisi ile bir bilgisayar VPN Server ile VPN bağlantısı kurar. VPN Sunucusu, L2TP/IPsec veya MS-SSTP VPN gibi birden fazla VPN iletişim kuralı için destekli olduğundan VPN kullanıcıları istemci bilgisayarlara SoftEther VPN İstemcisini yükleme gerekliliğinde değildir. Bir kullanıcı VPN sunucusuna bağlanmak için L2TP/IPsec veya MS-SSTP VPN kullandığında, işletim sistemine yerleşik VPN istemci programları VPN Sunucusuna bir VPN kullanmak için kurulabilir. Ancak, SoftEther VPN İstemcisi İşletim Sistemine yerleşik VPN istemcileri gibi daha fazla gelişmiş işlevlere sahiptir (örneğin daha detaylı VPN iletişim ayarları). SoftEther VPN Sunucusunun tam bir başarım açığından yararlanabilmesi için her istemcinin bilgisayar üzerinde SoftEther VPN İstemcisini yüklemesi tavsiye edilir.


## VPN Köprüsü.
SoftEther VPN Köprüsü ("VPN Bridge") site-to-site VPN (iki ağı bağlayan) oluşturmak için gerekli bir VPN programıdır. Bir site-to-site VPN ağı kurmak için, sistem yöneticisi merkezi sitede SoftEther VPN sunucusunu yüklemek için vardır ve bir veya daha fazla uzak sitede SoftEther VPN Köprüsü kurmak zorundadır. VPN Köprüsü kademeli dizi bağlantısı ile merkezi VPN Sunucuna bağlanır. SoftEther VPN Köprüsü bir kademeli dizi bağlantısına (cascade connection) benzer, ancak iki fiziksel Ethernet anahtarı arasında bir sanallaştırılmış uplink bağlantısıdır (çapraz kablo bağlantısı).


## Windows için VPN Sunucu Yöneticisi.
GUI Aracı ("GUI Tool") SoftEther VPN Sunucusu ve SoftEther VPN Köprüsü için yönetim aracıdır. Bu WINE ile hem Windows hem de Linux üzerinde çalışan bir programdır. Bir sistem yöneticisi dizüstü bilgisayarında GUI Aracını yükler ve uygulama için uzak VPN Sunucusu veya VPN Köprüsü bağlantısı yapar. Bağlantı bir SSL oturumu tarafından yapılır ve yönetim komutları SSL üzerinden RPC (Remote Procedure Call, "Uzaktan Yordam Çağrısı") olarak taşınmaktadır.


## VPN Komut Satırı Yönetici Programı.
"vpncmd" SoftEther VPN Sunucusunun, İstemcisi ve Köprüsü için CUI (Console User Interface, "Konsol Kullanıcı Arayüzü") yönetim aracıdır. Bu, desteklenen her işletim sisteminin konsolları üzerinde çalışan bir programdır. Bir kullanıcının WINE ile Windows veya Linux kullanması mümkün olduğunda, kullanıcı başkaca VPN programlarını yönetmek için "vpncmd" kullanabilir. "vpncmd" ayrıca Sanal Hub ("Virtual Hub") üzerinde birçok kullanıcı oluşturma veya VPN Sunucusu üzerinde birçok Sanal Hub oluşturma gibi bu tür birçok toplu işlemi yürütmek için de kullanışlıdır.


## Mimarisi.
SoftEther VPN mimarisinin bazı kısımları kendine özgü geleneksel IPsec tabanlı VPN sistemlerinden farklıdır.


### Sanal Hub.
Sanal Hub ("Virtual Hub") yazılımsal benzetimli sanal Ethernet anahtarıdır. Bu öğrenen bir programdır ve içinde kendi yönlendirme veritabanı tablosunu tutar. Geleneksel fiziksel Ethernet anahtarları bu işlevi donanım tabanlı uygularken, SoftEther VPN de aynı işlevi yazılım tabanlı olarak uygular. Bir VPN Sunucusu çeşitli Sanal Hub'lardan oluşabilir. Her Sanal Hub yalıtılmıştır. Sanal Hub VPN İstemcileri ve VPN Köprüleri arasındaki iletişimi gerçekleştirmek için aynı anda bağlı VPN oturumları arasında paket anahtarlama gerçekleştirmektedir.
Tek bir VPN Sunucusunda birkaç Sanal Hub olduğunda, bu Sanal Hub'lar güvenlik için yalıtılmıştır. Her bir farklı VPN yöneticisi, her bir muhabir Sanal Hub için temsilci yetki hakkına sahip olabilir. Sanal Hub için bir yönetici Kullanıcı nesneleri ve ACL'ler tanımlayabilir, bu sadece temsilci Sanal Hub ile sınırlıdır.


### Sanal Ağ Bağdaştırıcısı.
Sanal ağ bağdaştırıcısı yazılım ile fiziksel ağ bağdaştırıcısına benzetilmiş bir sanal ethernet bağdaştırıcısıdır. Bir VPN İstemcisi, istemci bilgisayarda birkaç sanal ağ bağdaştırıcısı oluşturabilir. Bir VPN kullanıcısı Sanal Ağ Bağdaştırıcısı ile uzak VPN Sunucusu ve hedef Sanal Hub arasında VPN oturumu kurabilir. VPN oturumu kurulurken, VPN kullanıcısı Sanal Ağ Bağdaştırıcısı üzerinden uzak VPN ağı ile iletişim kurabilir. Sanal Ağ Bağdaştırıcısı fiziksel bir aygıtmış gibi çalıştığından, herhangi bir uygulama ya da işletim sistemi bileşeninde herhangi bir değişiklik yapılmadan kullanılabilir.


### Sanal Katman-3 Anahtarı.
Sanal Katman-3 Anahtarı yazılım ile benzetimi yapılmış sanal IP yönlendiricisidir (virtual IP router). Çeşitli Sanal Katman-3 Anahtarları tek bir VPN Sunucu örneği üzerinde oluşturulabilir. Sanal Katman-3 Anahtarı Sanal Hub'a bağlı sanal IP arabirimine sahiptir. Aynı zamanda pek çok statik yönlendirme tablosu girişi vardır.
Sanal Katman-3 Anahtarı büyük ölçekli site-to-site VPN ağı oluşturulmasında yararlıdır. Bir site-to-site VPN ağı oluşturmanın kolay yolu, katman-2 köprüleme tabanlı VPN oluşturmaktır, ancak bilgisayar sayısı çok büyükse, yayın paketlerinin sayısı yapılar arası bağlantıları yüklemek için artacaktır. Bu ölçekleme sorununu önlemek için, VPN yöneticisi Sanal Katman-3 anahtarı ile IP ağlarını yalıtır (Isolation of IP Networks).


### Sanal Hub'lar arasındaki Kademeli Dizi Bağlantısı.
Yönetici yerel veya uzak Sanal Hub'lar arasında kademeli bir dizi bağlantısı tanımlayabilir. Kademeli dizi bağlantısı kurulduktan sonra başlangıçta yalıtılmış iki Ethernet kesimi tek bir Ethernet kesiminde birleştirilir. Bu nedenle, kademeli dizi bağlantısı işlevi site-to-site katman-2 Ethernet köprüsü oluşturmak için kullanılır.


### Sanal Hub ve Fiziksel Ethernet Bölütü arasında Yerel Köprü.
Sanal Hub ve Sanal Ağ Bağdaştırıcıları sadece yazılımla-benzetilmiş sanal Ethernet aygıtları olduğundan, bu sanal aygıtlardaki Ethernet paketleri fiziksel Ethernet aygıtlarıyla iletişim kuramaz. Bu nedenle, sanal ve fiziksel aygıtlar arasında bir köprü, bir uzaktan erişim VPN (ağa bir bilgisayar bağlayıp) veya site-to-site VPN (iki ağı bağlayan) oluşturmak için gereklidir. Bir köprü oluşturmak için, Yerel Köprü işlevi Sanal Hub ve fiziksel bir Ethernet ağ bağdaştırıcısı arasındaki Ethernet paketlerini Sanal Hub ile fiziksel bir Ethernet ağ bağdaştırıcısı arasında değiştirir.
SoftEther VPN Sunucusu üzerinde Yerel Köprü tanımlandıktan sonra, herhangi bir VPN İstemcisi VPN sunucusuna bağlanır ve Yerel Köprü üzerinden tüm mevcut Ethernet cihazları (örneğin sunucu veya ağ donanımları) ile iletişim kurar. Bu uzaktan erişim VPN türüne girer.
Ağ yöneticisi tarafından uzak-yapı VPN Köprüsü kurulur, VPN Sunucusu ve VPN Köprüsü üzerinde iki Yerel Köprü tanımlanır ve VPN Sunucusu ve VPN Köprüsü arasında bir kademeli bağlantı tanımlanır, sonra uzak iki Ethernet bölütü arasında doğrudan katman-2 Ethernet bağlantısı kurulur. Bu site-to-site VPN türüne girer.


### Güvenlik Duvarı, Vekil Sunucu ve NAT Saydamlığı.
SoftEther VPN'in en önemli özelliklerinden biri de güvenlik duvarlarının, proxy sunucuların ve NAT (Ağ Adresi Dönüştürme) işlevlerinin şeffaflığıdır. Bunu yapmak için, SoftEther VPN, SSL VPN ve NAT Traversal'i destekler. SoftEther VPN, VPN tüneli kurmak için HTTPS iletişim kuralını kullanır. HTTPS (HTTP SSL üzerinden) iletişim kuralı hedef olarak, TCP/IP 443 bağlantı noktasını (değişiklik gösterebilir) kullanır.


### Çoklu SSL-VPN Tünelleri Paralel İletim İşleyişi.
Bir kullanıcı VPN İstemcisi ve VPN Sunucusu arasında SSL-VPN iletişim kuralını seçtiğinde, SoftEther VPN Sunucusu ve VPN İstemcisi SSL VPN tüneli verimini artırmak için koşutlu bir aktarım mekanizmasını kullanabilir. Bir kullanıcı 1'den 32'ye kadar eşzamanlı paralel iletim kanallarının sayısını ayarlayabilir. Yavaş ve gecikmelerin yaşandığı bir ağ ortamında bu performans ayarlaması daha yüksek bir verime neden olacaktır. Bu işlev etkin olduğunda, mantıksal VPN Oturumu birkaç TCP (HTTPS) bağlantısından oluşacaktır. Tüm paketler optimize modüllerin hesaplanması ile uygun TCP bağlantılarından birine eklenecektir. Mantıksal VPN oturumunun TCP bağlantısında bazı paket kayıpları tespit edildiği takdirde, yeni paket başka bir sağlıklı VPN bağlantısı kullanacaktır. İşlemede, en uygun TCP bağlantısını belirlemek için bu hızlı anahtarlama işlemi, oluşturulan bağlantıda yüksek bir verimle sonuçlanır.


### NAT geçişi.
Geleneksel VPN sistemleri, kurum ve internet arasındaki sınırda güvenlik duvarı veya NAT, bir son nokta (TCP veya UDP bağlantı noktası) açmak için kurumun güvenlik duvarı yöneticisine izin için kullanıcı gerektirir. Güvenlik duvarı üzerinde bir uç nokta açmak ve gereğini azaltmak için, SoftEther VPN Sunucusunun NAT Geçiş işlevi (NAT Traversal function) vardır. NAT Geçişi (NAT Traversal) varsayılan olarak etkindir. Sürece etkin olarak, SoftEther VPN, istemci bilgisayarların güvenlik duvarı veya NAT arkasında VPN Sunucusu'na bağlanabilir. Güvenlik duvarı veya NAT üzerinde özel ayarlar gereklidir.


### ICMP üzerinden VPN ve DNS üzerinde VPN.
Birkaç çok kısıtlı ağ sadece ICMP veya DNS paketlerinin geçmesine izin verir. Böyle bir ağ üzerinde, TCP veya UDP süzülür. Sadece ICMP ve DNS'e izin verilir. Olanaklı çok kısıtlı ağ üzerinden bir SoftEther VPN istemci-sunucu oturumu kurmak için, SoftEther VPN "ICMP üzerinden VPN" ve "DNS üzerinde VPN" işlevi vardır.
Bu işlevin sınırlı bir güvenlik duvarına nüfuz etmesi çok güçlüdür. Tüm VPN paketleri ICMP veya DNS paketleri içine kapsüllenmiş olarak güvenlik duvarı üzerinden iletim için vardır. Alıcı tarafında uç nokta kapsüllenmiş paket, bir iç paketi ayıklar. Bu halka açık Wi-Fi sömürüsü için çok yararlıdır. Bazı halka açık Wi-Fi ile sadece ICMP veya DNS paketlerini iletebilirsiniz. Onlar TCP veya UDP paketlerini süzecektir. Önceden evinizde veya ofisinizde yüklü bir VPN Sunucusu açık havada ilerlemede, böyle sınırlı bir ağı kullanan ücretsiz ağ iletişimi kuralının keyfini çıkarabilirsiniz.


### VPN Kapısı.
VPN Kapısı ("VPN Gate") kullanıcıların VPN sunucularını barındırması için SoftEther kullanan gönüllüler tarafından işletilen ücretsiz bir VPN sunucularına bağlanmaya izin verir SoftEther VPN için bir eklentidir. VPN Kapısı ("VPN Gate") Tsukuba Üniversitesi tarafından desteklenmektedir.