Ev yapımı VPN
Ev yapımı VPN

Ev yapımı VPN

Geçenlerde, bir kez daha engellenen Twitter, Facebook, Instagram yanında Skype, WhatsApp da engellenince, Apple AppStore’da ve Google PlayStore’da aratılan VPN uygulamaları en çok aranan listesini kaplamıştı.

İşim gereği “en azından” Skype’a erişebiliyor olmam gerekiyor. Bu sebeple (başka bir sebebi olabilir mi zaten – hiç!) stabil ve güvenilir bir VPN uygulaması ararken, TunnelBear’ın kotasından kaçıp BetterNet’i kullanıyordum. Sonra VPN erişimleri de engellenince dımdızlak kaldık 🙂

O sıralarda düzenli olarak önüme “ücretli vpn sunucularının” ne kadar güvenli olduğu konusunda değişik yorumlar geliyordu, hatta SSG Sedat Kapanoğlu bununla ilgili güzel bir liste paylaştı. Birden “dostum kendi vpn sunucunu neden yapmıyorsun ha?” diyen birilerinden ışığı görüp, araştırmaya başladım, sağolsun medium bu konuda, bu yazının da kaynağı olan, güzel bir yol gösterdi.

“Kendinize VPN sunucunuzu kurun” yazısındaki adımlar çok basitti, her şeyi adım adım çok kolay yaptım ama vaat ettiğinin aksine çalışmadı 🙂 O yüzden ben de bir şekilde çözdükten sonra ben de kendi adımlarımı paylaşayım dedim.

Siz de aşağıdaki adımları takip ederek, 4 adımda, hadi polyannacılık yapmayalık yapmayalım ama en fazla 10 adımda, kendi VPN sunucunuzu kullanmaya başlayabilirsiniz.

ADIM 1: VPS Kiralama

Kendimize bir VPS (Virtual Private Server – sanal sunucu) kiralayarak işe başlıyoruz. Kaynak yazıda da önerilen Digital Ocean’dan hesap açarak başlayalım. Linkten (referans koduyla) hesap açarsanız, 10$ kredi ile 2 aylık deneme sürenizi başlatabilirsiniz (ben öyle yaptım). Adamların referans olayındaki açıklamasını da şuraya koyalım.

Give $10, Get $25
Everyone you refer gets $10 in credit. Once they’ve spent $25 with us, you’ll get $25. There is no limit to the amount of credit you can earn through referrals.

Hesabı açabildiğinizi (kullanıcı adı, şifre, ödeme yöntemi vs.) varsayarak devam ediyorum.

ADIM 2: Sunucu (VPS) Kurulumu

Hesaba giriş yaptıktan sonra “Create Droplet” diyerek sunucu seçimi ile kuruluma başlıyoruz.

digital-ocean-create-droplet

Sonrasında sunucu seçeneklerimizi belirliyoruz. Ben önerildiği gibi aşağıdaki konfigurasyona sahip bir kurulum tercih ettim.

Image : Ubuntu 16.04.1 x64 (o gün itibariyle long-term-support olan son stabil sürüm)

Size: $  5 /mo |  $0.007 /hour | 512 MB / 1 CPU 20 GB SSD disk 1000 GB transfer

Datacenter Region: Amsterdam 3 (Avrupa için 4 seçenekten biri)

Sunucu Konfigurasyonu
Digital Ocean Sunucu Konfigurasyonu

 

Seçimlerin sonrasında “Create” butonuna basmamız ile birlikte 1 dakika içinde sunucumuz hazır. Sunucumuzun bir arayüzü yok, sadece konsol üzerinden erişim sağlayacağız.

Aşağıda gösterildiği gibi, websitesinde console uygulaması var, Droplet üzerinden Access Console diyerek console’a erişebiliriz, ya da bir terminal uygulaması üzerinden sunucuya erişebiliriz. Ben 2. yöntemi tercih ettim.

 

ADIM 3: VPN Sunucusu Kurulumu – SoftEther VPN

Açık kaynak kodlu SoftEther VPN uygulamasını sunucumuza kurarak, bir VPN sunucusuna sahip olacağız. Ben MacOS üzerinde Terminal ile işlemlerimi gerçekleştirdim.

Kurulum dokümantasyonunun ana kaynağını medium’daki yazıda tıraşlamışlar biraz, ben de kendi yaptıklarıma göre şekillendiriyorum.

Adım 3.1 Gelen e-posta içerisindeki ip adresi üzerinden root kullanıcı adı ve şifre ile giriş yapın.
ssh root@SİZİN-IP-ADRESİNİZ
Adım 3.2 Giriş yaptıktan sonra sunucuyu güncelleyin.

Linux’ta her zaman bir update vardır!

apt-get update && apt-get upgrade

Kurulumda ihtiyacımız olan build-essential paketini kurun.

apt-get install build-essential -y
Adım 3.3 SoftEther VPN uygulamasını indirin ve kurun.

En güncel versiyonun linkini http://www.softether-download.com/en.aspx adresinden alın. (bu yazı yazılırken en güncel sürüm buydu). Sıkıştırılmış dosyayı çıkartıp, vpnserver dizinine girin ve kurulumu başlatın.

wget http://www.softether-download.com/files/softether/v4.21-9613-beta-2016.04.24-tree/Linux/SoftEther_VPN_Server/64bit_-_Intel_x64_or_AMD64/softether-vpnserver-v4.21-9613-beta-2016.04.24-linux-x64-64bit.tar.gz
tar xzvf softether-vpnserver-v4.21-9613-beta-2016.04.24-linux-x64-64bit.tar.gz
cd vpnserver && make

 

Kurulumda size soracağı lisans anlaşması sorularını, dünyanın en popüler yalanıyla (kullanım koşullarını okudum ve kabul ediyorum) cevaplayın. 3 kere 1 diyerek onaylayın.

Do you want to read the License Agreement for this software ?
1. Yes
2. No
Please choose one of above number:
1

EULA
 
Did you read and understand the License Agreement ?
(If you couldn't read above text, Please read License_ReadMe.txt
file with any text editor.)
1. Yes
2. No
Please choose one of above number:
1

Did you agree the License Agreement ?
1. Agree
2. Do Not Agree
Please choose one of above number:
1
Adım 3.4 VPN Sunucusunu sistem dizinine taşıyın ve dosya izinlerini değiştirin.
cd ..
mv vpnserver /usr/local
cd /usr/local/vpnserver/
chmod 600 *
chmod 700 vpnserver
chmod 700 vpncmd
Adım 3.5 (Opsiyonel) VPNServer’ın Linux başladığında arka planda çalışmaya devam etmesi, için aşağıdaki komutla yeni bir dosya oluşturun.
nano /etc/init.d/vpnserver

Aşağıdaki metni kopyalayıp, nano uygulaması için yapıştırın.

#!/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

Ctrl+x ile çıkış yapın, çıkarken Y (Yes) diyerek kaydedin. Son olarak, otomatik olarak başlatılmasına izin vermek için chkconfig komutunu kullanın.

chmod 755 /etc/init.d/vpnserver
/sbin/chkconfig --add vpnserver

VPN sunucusu artık servis olarak çalışmaya hazır.

Adım 3.6 VPN Sunucusunu çalıştırın
/etc/init.d/vpnserver start

Eğer siz de benim gibi üstteki komutla çalıştıramadıysanız, bir şekilde başlangıçta çalışacak şekilde ayarlamamışsınız demektir. Uygulamayı direk çalıştırın.

/usr/local/vpnserver/vpnserver start

Aşağıdaki yazıyı görürseniz VPN sunucunuz çalışıyor demektir.

SoftEther VPN Server Service Started
Adım 3.7 VPN Sunucusunda Bağlantı Noktası (HUB) ve Kullanıcı yaratma

Önce VPN sunucumuzun yönetim kısmına giriş yapmamız gerek.

cd /usr/local/vpnserver
./vpncmd

Gelen ekrandan sunucu yönetimine girmek için 1. seçenekle devam edin.

vpncmd command - SoftEther VPN Command Line Management Utility
SoftEther VPN Command Line Management Utility (vpncmd command)
Version 4.21 Build 9613   (English)
Compiled 2016/04/24 16:39:47 by yagi at pc30
Copyright (c) SoftEther VPN Project. All Rights Reserved.

By using vpncmd program, the following can be achieved. 

1. Management of VPN Server or VPN Bridge 
2. Management of VPN Client
3. Use of VPN Tools (certificate creation and Network Traffic Speed Test Tool)

Select 1, 2 or 3: 1

 

Bir yönetici parolası belirleyin:

ServerPasswordSet

Bir HUB yaratmanızı isteyecek. İsmini istediğiniz verebilirsiniz.

[BU KISIMLA İLGİLİ GÖRÜNTÜ VE KODLARI ATLAMIŞIM :)]

Güvenli bağlantı için SecureNatEnable komutunu verin:

SecureNatEnable

Kullanıcı oluşturun:

UserCreate gun

Kullanıcı şifresini belirleyin:

UserPasswordSet gun

Yukarıdaki komutlarla istenen sayıda kullanıcı açılabilir, ancak seçtiğimiz sunucunun kapasitesi küçük olduğu için aynı anda 3-5 kişiye hizmet verecek kapasitede olduğunu unutmayın.

Son bir adımla IPsec fonksiyonunu etkinleştirirseniz, VPN Sunucusundaki Sanal Hub’lar L2TP uyumlu PC’lerden, Mac OS X’den ve Akıllı Telefonlardan Uzaktan Erişimli VPN bağlantılarını kabul etmesini sağlıyoruz.

IPsecEnable

Sorulan 3 soruya da Yes diyerek devam edin. “Pre Shared Key for IPsec” için Türkçe karakter içermeyen 9 karakterli bir parola girin. Bu parolayı, bağlanmak istediğimiz cihazlardan “Shared Secret” alanına yazacağız.

ADIM 4: Bilgisayardan ve iPhone’dan VPN Erişimi

Ben sadece Mac OS ve iPhone üzerinden bağlandığım için onu anlatacağım. Windows için kendi uygulaması varmış.

Adım 4.1 Mac OS bağlantı kurmak için:

System Preferences > Network adımlarını takip edip, (+) ikonundan yeni bağlantı ekleyin, tipini VPN L2TP seçin.

Server IP adresini ve VPN hesabı kullanıcınızı yazın.

Authentication Settings’e tıklayıp, VPN kullanıcısının şifresini ve kurulumun son adımında belirlediğiniz “parolayı” yazın.

Advanced… e tıklayıp, Send All Traffic over VPN Connection seçeneğini aktif hale getirin.

Son olarak Network ekranında Connect diyerek VPN sunucunuza bağlanabilirsiniz. Menu Bar’a ekleyerek bağlantı sürenizi ve durumunu görmek için “Show VPN Status in Menu Bar” seçeneğini işaretleyebilirsiniz.

Adım 4.2 iPhone üzerinden bağlantı kurmak için:

Settings > VPN > Add VPN Configuration adımlarını takip edin. Gerisini aşağıdaki gibi tanımlamanız yeterli. Tanımladıktan sonra Settings > VPN üzerinden yeni tanımladığınız VPN’i seçip, Status’unu Connected’a çekin.

 

Her şey hazır!

VPN’iniz düzgün çalışıp çalışmadığını kontrol etmek için, eğer herhangi bir sosyal medya erişim yasağı yoksa,  https://engelliweb.com/engellenen-URL/ adresinden şanslı bir iki adresi deneyebilirsiniz.

Sorun Giderme

Ben aşağıdaki hatayla karşılaştım.

A connection could not be established to the PPP server. Try reconnecting. If the problem continues, verify your settings and contact your Administrator.
Authentication Failed

Kurcaladıımda sorunu SecureNATEnable ve IPsecEnable seçeneğinde buldum.

IPsec durumuna bakın, L2TP over IPsec enabled olması gerekir.

VPN Server>ipsecget
IPsecGet command - Get the Current IPsec VPN Server Settings
Item                                               |Value
---------------------------------------------------+---------
L2TP over IPsec Server Function Enabled            |Yes
Raw L2TP Server Function Enabled                   |Yes
EtherIP / L2TPv3 over IPsec Server Function Enabled|Yes

 

Sonra SecureNat durumuna bakın. SecureNAT Enabled olması gerekir.

VPN Server/VPN>statusget
StatusGet command - Get Current Status of Virtual Hub
Item                         |Value
-----------------------------+--------------------
Virtual Hub Name             |VPN
Status                       |Online
Type                         |Standalone
SecureNAT                    |Enabled
Sessions                     |1
Access Lists                 |0
Users                        |1
Groups                       |0
MAC Tables                   |1
IP Tables                    |1
Num Logins                   |18
Last Login                   |2016-11-19 08:30:13
Last Communication           |2016-11-19 13:00:07
Created at                   |2016-11-06 11:39:54
Outgoing Unicast Packets     |13,839,250 packets
Outgoing Unicast Total Size  |11,614,417,570 bytes
Outgoing Broadcast Packets   |19,259 packets
Outgoing Broadcast Total Size|1,352,019 bytes
Incoming Unicast Packets     |13,839,718 packets
Incoming Unicast Total Size  |11,614,540,919 bytes
Incoming Broadcast Packets   |402,131 packets
Incoming Broadcast Total Size|24,685,211 bytes
The command completed successfully.

Ben bunları düzelttikten sonra bağlantı kurabildim. Daha fazlası için Japonya’daki abiler kapsamlı belgeleme yapmışlar:

https://www.softether.org/4-docs/1-manual/B._Troubleshooting_and_Supplemental/11.1_Troubleshooting

Yazının ana görseli SoftEther’in sitesinden alınmıştır: https://www.softether.org/4-docs/2-howto/5.VPN_for_Home/2.Comfortable_Network_Anywhere

Keşke bu kadar uğraşmaya gerek olmasa da bir Hollandalı gibi, bir İngiliz gibi özgürce internette dolaşabilsek, ama şimdilik bize düşen yine “minik kelebek”.

3 yorum

    1. Selam Volkan!

      Sizin böyle dertleriniz yok tabi ama biz uğraşıyoruz, bu kadar uğraşmana gerek yoktu yani diyorsun 🙂 OpenVPN’den daha iyi dediler, nedense Softether’i önerdiler biz de ona baktık 🙂 Teşekkürler öneri için bi’ boş zamanımda ona bakayım zaten VPS’ten memnun değilim çok yavaş 🙂

      OpenVPN için şöyle de bir alternatif varmış, bu da kenarda bulunsun : http://ardacetin.org/kolaylikla-kendi-vpn-sunucunuzu-kurun-2/

  1. Geri bildirim:GoDaddy’den Linode Aktarmalı GetLark’a Geçiş – e-GÜNlük

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir