Centos Üzerinde SoftEther VPN Kurulumu ve Yapılandırma
SoftEther VPN Tsukuba Üniversitesi’nden Daiyuu Nobori’nin yüksek lisan tezi için araştırmaları sonucu geliştirdiği ücretsiz açık kaynak kodlu bir VPN yazılımıdır. İş yerinize uzaktan erişimi ve farklı şehirlerdeki bilgisayar kullanıcılarınız ile güvenli bir şekilde iletişim sağlamak ve kendi özel ağınızı oluşturmak için çok kullanışlı ve ücretsiz bir yazılım. Windows ve Linux üzerinde kurulumu rahatlıkla sağlayabileceğiniz gibi kurulu olan VPN sunucuyu hem Windows’dan hem de Linux’dan yönetebilirsiniz. Şimdi kuruluma geçelim.
MacBookPro kullandığım için ilk önce size MacOS Yosemite üzerinden nasıl kuracağınızı anlatacağım. Windows kullanıcısı iseniz putty (Yada muadilleri) programını indirerek kolayca bu işlemleri yapabilirsiniz.
ssh root@ipadresi
Komutunu girip ssh ile sunucumuza bağlanıyoruz. Sunucumuz centos 64 bit 6.8 kurulu. Eğer bir linux işletim sistemli sunucunuz var ama işletim sistemini bilmiyorsanız komut paneline
uname –a
yazarak işletim sisteminizi öğrenebilirsiniz.
Eğer sunucunuzu ilk defa açıyor iseniz sunucuyu güncellemekte fayda var onun için aşağıdaki komutları sırayla girelim
yum update
yum upgrade
Centos işletim sistemli sunucumuza ssh üzerinden bağlandık önce gerekli programları kuralım bunun için gerekli programlar wget, gcc, make, nano
yum install wget gcc make nano –y
Yukardaki komut yardımı ile gerekli olan uygulamaları sunucumuza kurmuş bulunuyoruz. Peki kurduk ama bu uygulamalar nedir diyenler için.
wget internetten dosyayı çekmek için
gcc ve make kurulum için.
nano da otomatik başlatmak için text editör olarak kullanmak için.
Uygulamaları kurduktan sonra aşağıdaki adrese girip işletim sistemimize uygun vpn yazılımının adresini kopyalayalım ve wget komutu ile sunucumuza çekelim.
Web sitesi adresi: http://www.softether-download.com/en.aspx?product=softether
Şimdi dosyayı çekmek için önce root klasörüne gidelim isterseniz home klasörüne de gidebilirsiniz amaç tar dosyasını bir yere indirip ve sıkışmış dosyayı çıkartmak.
cd /root
wget http://www.softether-download.com/files/softether/v4.22-9634-beta-2016.11.27-tree/Linux/SoftEther_VPN_Server/64bit_-_Intel_x64_or_AMD64/softether-vpnserver-v4.22-9634-beta-2016.11.27-linux-x64-64bit.tar.gz
ls
dosyamızı sunucumuza çektik ls komutunu girince softether-vpnserver-v4.22-9634-beta-2016.11.27-linux-x64-64bit.tar.gz dosyayı göreceksiniz şimdi bu sıkıştırılmış bir dosya, bunu dışarı çıkartalım bunun içinde (Önemli not bu dosya şu anki en son çıkan yazılıma ait siz siteden direk alınız belki makaleyi okuduğunuzda eski bir sürüm olarak kalmış olabiliri bu dosya)
tar -zxvf softether-vpnserver-v4.22-9634-beta-2016.11.27-linux-x64-64bit.tar.gz
Dosyamızı dışarı çıkardık dışarı çıkan dosyaları ls komutuyla göreceksinizdir şimdi bunu /usr/local/ klasörünün içine taşıyalım
mv ./vpnserver/ /usr/local/
Klasörümüz direk /usr/local dizininin altına gitti. Şimdi de biz gidelim /usr/local/vpnserver klasörüne
cd /usr/local/vpnserver/
Bizde klasördeyiz ls diyerek ne var içinde diye bakabilirsiniz. Şimdi kurulma geçelim
make
komut ekranına make yazıp entere basalım.
Bu komutu girince bize bir kaç şey soracak hepsine evet (Yes) (1 diye cevap veriniz) diyelim. Kurulum bitti şimdi ince ayarlara gelelim. Önce vpnserveri çalıştıralım.
./vpnserver start
has been started yazısını gördüyseniz tamamdır.
Buraya kadar yaptığımız işlemler sunucuya vpnserver’i kurmaktı. Sorunsuz bir şekilde sunucuya Vpnserveri kurduk ve çalıştırdık. Bundan sonrasını ister Windowsdan devam edebilirsiniz. Windowsdan devam etmek istiyorsanız http://www.softether-download.com/en.aspx adresine girip Windows için gerekli dosyayı indirelim. Yada bu bölümü geçip “Terminalden Kurulum Gerçekleştirmek İsterseniz”
adlı başlıktan devam edebilirsiniz.
İndirdiğiniz sıkıştırılmış dosyayı çıkartalım ve vpnmgr.exe dosyasını açalım
New Setting’e basıp host Nameye ip adresimizi yazalım direk OK basınız kaydedelim listeden oluşturduğumuz vpn sunucuna tıklayıp Connect butonuna basınız. (Windows kurulumu başka ipden bahsedeceğim.)
Şifre belirlememizi isteyecek bizden şifreyi yazalım.
Remote Access VPN Server i seçip Next diyelim
HUB Name oluşturalım (VPN diye adlandırıyorum) ardından OK basınız
SoftEther bize daha kolay bağlanabilmemiz için sub domain oluşturmuş ama gerek yok biz ip adresimiz ile bağlanalım. Exit butonuna basınız.
Enable L2TP Server Function (L2tp over IPsec) işaretleyelim bir key oluşturalım en fazla 9 karakter olacak Türkçe karakter barındırmayınız ve vpnserver giriş şifresi ile aynı olmasın. OK butonuna tıklayınız.
Disable VPN Azure seçip OK basalım.
Kullanıcı oluşturalım Create Users basalım.
OK basalım.
Exit butonuna basınız
Close butonuna basınız.
VPN yönetim panelimiz karşımıza çıkacak. Şimdi de Sanal Ağımızı dışarıdan erişilebilecek hale getirelim ve kullanıcılarımızı ağımıza dahil edelim. Bunun için Virtual Hub Namemizi (VPN) seçelim Manage Virtual Hub butonuna basalım.
Virtual NAT and Virtual DHCP Server butonuna basınız.
Enable SecurenNAT ardından Tamam butonlarına basınız. Sonrada Exit diyerek çıkalım. Kurulum bitti artık kullanıcılarınızı VPN ağınıza dahil edebilirsiniz. Aşağıda kullanıcıları ağa nasıl dahil edebileceğinizi “Kullanıcıları Ağa Dahil Etmek” başlığı altında değinilmiştir.
Terminalden Kurulum Gerçekleştirmek İsterseniz
Windows işletim sistemi üzerinden değil de terminalden adımlara devam etmek istiyorsanız /usr/local/vpnserver dizinin içindeki vpncmd dosyasına açıp sunucumuzun konfigürasyonlarını yapalım.
./vpncmd
Komutu girdikten sonra karşımıza kurulum ile ilgili bir menü gelecek 3 seçenekli menüden 3. (Use of VPN Tools) menüye girmek için 3 yazıp entere basıyoruz sonra da check yazıp enterliyoruz sonra exit yazıp çıkıyoruz. Buraya kadar geldiyseniz sunucuya artık vpnserveri tamamen aktifleştirdiniz demektir. Bitti mi peki yok daha bitmedi bir kaç adım daha var. Şimdi sunucuya vpn hubunu kurmak sunucuya şifre vermek ve kullanıcı oluşturma aşamalarına geçelim. Yine vpncmd dosyasını çalıştırıyoruz.
./vpncmd
Bu sefer menüden 1 seçiyoruz. İp adres ile HUB Nameyi boş geçiyoruz.
VPN Server > Komut istemine geliş olmamız gerekiyor
komutuna ilk önce
Serverpasswordset
Komutunu girip sunucuya giriş şifresini belirliyoruz (Dikkat bu sadece vpnservere girmek için belirlenen şifre. Kullanıcı oluşturma, silme gibi işlemler için kullanacağımız şifre. Root şifrenizi de kullanabilirsiniz. Türkçe karakter kullanmayınız.) şifreyi iki defa girdikten sonra hub olarak belirleyeceğimiz protokolü oluşturuyoruz. Buna istediğiniz adı verebilirsiniz. Küçük büyük harf duyarlı olabilir onun için büyük harfle protokolü yazalım
hubcreate VPN
Hub oluşunca size şifre soracak hani demin bir şifre girdik ya o şifreyi girelim şimdi iki defa isteyecek VPN adı altında bir HUB oluşturduk. Hub protokolüne bağlanalım.
hub VPN
Şu ana kadar Hub protokolünü oluşturup protokole bağlandık. Şimdi sunucumuzu dışarıya açmak için securenat’ı aktifleştireceğiz ve ipsec keyimizi oluşturalım. İlk önce nat’ı eneble edelim.
Securenatenable
Tamam Nat ta açık artık. Şimdi sunucuya dışardan bağlanması için bir kullanıcı oluşturalım.
usercreate kullaniciadi (kaptan seçtim ben)
Kullanıcı adı olarak istediğiniz bir ismi girebilirsiniz. Grup isimi gibi parametreleri boş bırakabilirsiniz. Şimdi kullanıcıya bir şifre verelim.
userpasswordset kullaniciadi (ben kaptan seçmiştim kaptan yazıyorum)
Şifreyi de iki defa girelim. Türkçe karakter kullanmayınız Şimdi sıra geldi ipsec keyimizi hazırlamaya.
Ipsecenable
Çıkan uyarılara yes yes diyip geçiyoruz key olarak en fazla 10 karakter Türkçe karakter kullanmayınız, Vpn Server giriş şifresi ile aynı olmasın bir key yazıyoruz. Bu keyi sunucuya bağlanmak için kullanıcıların kullanacağı bir güvenlik parolası olarak kullanacağız. HUB on the username dediği yere de yukarda Hub oluştururken bir isim belirlemiştik ya ne isim verdiyseniz onu gireceksiniz. Ben VPN demiştim. VPN yazdık entere basıp ardından exit yazarak çıkıyoruz. Artık sunucumuz kaptan kullanıcı adı ile vpn olarak bağlantı kurulabilir hale geldi.
Kullanıcıları Ağa Dahil Etmek
Akılı telefonlarınızı yada bilgisayarınızı VPN nasıl dahil edebileceğinizi softetherin web sitesinde de değinilmiştir.
Makalede size Sony Xperia Z (Android), MacOS ve Windows için bağlantıyı nasıl yapabileceğinizden bahsedeceğim
MacOS için sitede mevcut ama sistem zaten MacOS olduğu için size buradan bağlantıyı nasıl gerçekleştirebileceğinizi anlatayım.
Sunucu adresi ip adresiniz ya da sunucuya tanımlanmış bir domaine sahipseniz domaini de kullanabilirsiniz.
Hesap adı belirlediğiniz kullanıcı adı biz kaptan demiştik Kimlik doğrulamaya basıyoruz.
Parola belirlediğimiz şifre.
Paylaşılan sır ise oluşturduğumuz key vardı ya Ipsec keyimiz onu gireceğiz. Tamam butonuna basıp bağlan diyeceğiz. (Yukardaki resimde ben bağlandığım resmi almışım bağlantıyı kes yasıyor ama sizde bağlan yazıyordur) Herhangi bir yanlış yapmadıysanız bağlanmış olmanız gerekiyor.
Windows İçin
Ağ ve Paylaşım Merkezini açınız
Yeni bağlantı veya ağ kurunuzu seçelim.
Çalışma alanına bağlan seçip ileri diyelim
Internet bağlantımı VPN kullan seçip ileri diyelim.
Sunucu adresimiz ve herhangi bir ad belirleyelim Şimdi bağlanma seçelim.
Kullanıcı adı ve şifremizi girelim.
Ağ paylaşım merkezinden Bağdaştırıcı ayarlarını değiştire girelim.
Sağ tıklayınız ve Özelliklere giriniz.
Güvenlik sekmesine girip VPN türü olarak L2TP/IPSec seçelim ve ipsec keyimizi girelim tamam diyelim Protokollerden PAP seçelim Tamam dedikten sonra Vpn bağlantımıza çift tıklayıp bağlanalım
Şifremiz kayıtlı olmayabilir şifremizi yazıp eğer Bağlan diyelim.
Gördüğünüz gibi bağlantımız tamam.
Android İçin
Güvenlik sekmesinden hızlı kaydır seçili ise değiştiriniz. Ben şekil kullanıyorum.
Kalosuz ve ağlar bölümünden Diğer girelim.
VPN girelim.
+ işaretine basınız.
Ad: Herhangi bir isim verebilirsiniz.
Sunucu ip adresinizi yazınız.
IPSec kimliğimiz de bu oluşturduğumuz IPSec Keyimizi giriyoruz
Gelişmişe tıklayınız en alta Yönlendirme rotalarına 0.0.0.0/0 yazalım kaydet e basınız.
VPN ayarlarımız kaydoldu Vpn basınız
Kullanıcı Adımızı ve Şifremizi yazıp bağlan diyelim.
Yanlış bir şey gitmediyse yukarda anahtar simgesi geldiğinde bağlantınız tamam demektir. Android telefonunuzu, MacBookPro MacOS Yosemite işletim sistemli leptobumuzu ve Windows işletim sistemli bilgisayarımızı VPN ağımıza bağladık.
Vpn Serveri Otomatik Başlatmak
Kurulumu tamamen gerçekleştirdik. Herhangi bir sorun olduğunda sunucuyu resetlemek zorunda kalırsanız normalde vpn serveri manuel olarak kendiniz başlatmak zorundasınız; ama ufak bir script yazdıktan sonra sistem reboot olduğunda kendiliğinden vpn serveri açacaktır.
Manuel açmak istiyorsanız terminale girip her açılışta aşağıdaki komutları kullanmanız gerekecektir.
cd /usr/local/vpnserver
./vpnserver start
Bu aşama ise otomatik çalıştırmak için yapacağımız ayarlar.
cd /usr/local/vpnserver/ chmod 600 *
chmod 700 vpnserver
chmod 700 vpncmd
Chmod ile gerekli izinleri veriyoruz. Scripti yazalım. İster cat yada nano ile scripti yazabiliriz ben cat ile yazacağım.
cat > /etc/init.d/vpnserver
#!/bin/sh
# chkconfig: 2345 99 01
# description: SoftEther VPN Server
DAEMON=/usr/local/vpnserver/vpnserver
LOCK=/var/lock/subsys/vpnserver
test -x $DAEMON || exit 0
case “$1” in
start)
$DAEMON start
touch $LOCK
;;
stop)
$DAEMON stop
rm $LOCK
;;
restart)
$DAEMON stop
sleep 3
$DAEMON start
;;
*)
echo “Usage: $0 {start|stop|restart}”
exit 1
esac
exit 0
Not: Eğer cat komutunu kullandıysanız en son komut olan exit 0 yazdıktan sonra entere basıp alt satıra geçelim ctr+d tuşlarına basıp otomatik kaydedip çıkıyoruz. (Tırnak işaretlerine dikkat ediniz otomatik başlamada sıkıntı yaşarsanız tırnak işaretlilerini silip kendiniz yazınız)
Nano ile eklemek istiyorum diyorsanız.
nano /etc/init.d/vpnserver
Komutunu çalıştırıp script kodlarını yapıştırdıktan sonra ctr+x basıp evet dedikten sonra çıkıyoruz.
Ne olur olmaz kodları tekrar kontrol etmek için nano /etc/init.d/vpnserver ile kodları kontrol edelim.
ctrl x ile çıkıyoruz (Not: nano yerine vi de kullanabilirsiniz nanonun kullanımı kolay diye size tavsiye ediyorum.) Şimdi oluşturduğumuz vpnserver scriptine izin verelim
chmod 775 /etc/init.d/vpnserver
/sbin/chkconfig –add vpnserver
Şidi de test edelim bakalım çalışıyor mu
/etc/init.d/vpnserver start
/etc/init.d/vpnserver stop
Yukardaki SS deki gibi cevap alıyorsanız tamadır demektir.
Şimdi komut paneline reboot yazalım entere basıp sunucumuz yeniden başlatalım. Bir dakika sonra tekrar sunucuya bağlanalım.
Sunucuya bağladıktan sonra top ya da kuruluysa htop komutunu kullanarak vpnserver çalışacak mı kendiliğinden diye aktif uygulamalara bakalım.
Evet vpnserver kendiliğinden aktif olmuş. Başka kullanıcı oluşturmak silmek ve sunucunun durumunu, bağlı olan kullanıcılar gibi izleme ekranı için ne yapmanız gerekiyor ona değinelim. Ssh ile terminale bağlandık komut ekranına
cd /usr/local/vpserver
./vpncmd
Komutları ile vpncmd programını çalıştırıyoruz. Menüden 1 ile vpnservere bağlanıyoruz
ip adrese localhost hub e VPN yazıp şifre isterse vpn sunucu için oluşturduğumuz şifreyi giriyoruz. VPN Server/vpn> komut isteme satırı gelecek. Bir kaç komut hakkında bilgi vereyim
sessionlist
Bu komut ile sunucuda aktif bağlı olan kullanıcıları gösterecektir.
userlist : Kayıtlı kullanıcıları listeler
Diğer tüm komutlar için komut ekranına ? yazıp entere basarsanız size tüm komutları gösterecektir. Komutlar ve işlevleri bir liste halinde karşınıza çıkacaktır.
VPN ağımız istediğimiz kullanıcılar arasında güvenle kullanılabilir durumdadır artık. Bir dahaki makalemde Windows server denk gelirse Windows server de nasıl kurulum sağlayabileceğinize değinmeye çalışacağım.