Kendi VPN Sunucunuzu OpenVPN ile Kurun

Kaynak: hwp.com.tr

Hem güvenlik kaygınıza hem de İnternet yasakları nedeniyle yürümeyen işlerinize kolay bir çözüm: Kendi VPN sunucunuzu kurmak.

OpenVPN sunucunuzu kurmanız için hazırladığımız bu rehberde önce en temelden başlayalım. VPN’in ne olduğuna bir bakış atıp kurulum adımlarımıza geçelim. VPN dediğimiz şey kısaca var olan bağlantı üzerinden şifreli bir veri tüneli açarak belirli hedeflere veya başka türlü erişilmesi güvenlik nedeniyle engellenmiş ağlara uzaktan dahil olmanızı sağlayan bir teknik. VPN açılım olarak sanal özel ağ (virtual private network) anlamına geliyor. Buradaki sanallık kısmı biraz kafa karıştırabilir; sanal kavramı tamamen sanal sunucu kavramına benzer şekilde var olan bir bağlantı üzerinden oluşturulan bir veri tüneli olduğu için bu şekilde adlandırılıyor.

Nasıl çalışır?

Az önce kullandığımız sanal sunucu gibi bir sanallığa sahip olan VPN teknolojisi işletim sistemleri üzerinde fiziksel değil yazılımsal (sanal) olarak var olan ağ bağdaştırıcıları oluşturarak iki taraf arasında bağ kurar. Olağan şartlarda var olan internete açık IP’nizin yanında bir de bu özel ağa ait bir IP2ye sahip olursunuz. Arzu edilen tüm trafik (dilerseniz bütün ağ trafiğiniz) bu sanal ağa yönlendirilir. Eğer tümü yönlendirilmezse bazı kaynaklara (mesela şirket içinden erişilebilen bir web sitesi, sunucular ve bunlar gibi) erişim sağlayabildiğiniz ama trafiğinizin geri kalanına etki etmeyen bir VPN kullanımı da mümkün.

openvpn open vpn sh script betik kurulum install logoNasıl bir güvenlik sağlar?

Kamuya açık kablosuz ağ bağlantılarında sizle kablosuz erişim noktası arasındaki veri trafiği dışarıdan bakan birisi tarafından okunabilir. Elbette https://hwp.com.tr gibi adreslere ulaşırken arada akan trafik tarayıcınızla sizin aranızdadır; fakat hangi alan adlarına bağlandığınız, güvenliği sağlanmamız kendi blog sitenize girerken girdiğiniz parolanız, eriştiğiniz tüm web siteleri ve kullandığınız birçok hizmetle ilgili dışarıya bilgi sızdırırsınız. VPN ile tüm trafiğinizi bir başka yere taşırsanız kablosuz erişim noktası ve sizin aranızda herkese açık olan trafik yalnızca anlamsız veriler yığını haline gelir; çünkü bir başka noktaya kadar götürülüp oradan internete bırakılmaktadır. Dolayısıyla bilgisayarınız veya telefonunuzla erişim noktası arasında saldırıya açık olan veriler dışarıdan okunamaz hâle gelir.

Neden OpenVPN?

OpenVPN açık kaynaklı ve özgür yazılım olarak geliştirilen (GNU GPL lisanslı) bir yazılım olarak gelişmiş şifreleme ve karşılıklı doğrulama teknolojileri kullanan bir VPN sistemidir. Açık ve özgür yapısı nedeniyle birçok farklı kişi ve kurum tarafından sürekli olarak geliştirilmekte ve denetlenmektedir. Arkasında garip yazılım patentleri veya fikrî mülkiyet engelleri yoktur. Birçok VPN tünel protokollerine kıyasla birçok farklı doğrulama biçimine sahiptir ve bizim yaptığımız kurulumda tek bir dosya içinde tüm gerekli sertifikaları barındıracak biçimde pratik bir kullanıma kullanıcı adı ve parola girişi olmadan da izin vermektedir.

OpenVPN Technologies’in ticari markası olan OpenVPN, firmanın hizmet olarak sattığı bir VPN uygulaması için de temel oluşturuyor. Bunun yanında bir özgür yazılım olması sayesinde birçok farklı sistem içinde entegre olarak kullanılmaktadır.

Ne gerekiyor?

Üzerinde tercihen bir Ubuntu GNU/Linux dağıtımının sunucu sürümü kurulu olan bilgisayara ihtiyacınız var. Bu dünyanın herhangi bir yerinde internet konusunda sansürcü zihniyete sahip olmayan, ifade özgürlüğü konusunu 20. yüzyılda tartışıp karara bağlamış bir ülkede bulunan bir sanal sunucu olabilir. Çok basit özelliklere sahip bir VPS/VDS bile işinizi görecektir. Aylık 10 liraya yakın bir maliyetle alabileceğiniz bu hizmet size 1 veya 2 GB bellek, 1 veya 2 sanal işlemci çekirdeği, 5-20 GB arası depolama alanı sağlayacak, bir tane IPv4 adresi verecek. Size yetecek olan minimum kaynak ise şu şekilde:

  • 512 MB RAM
  • 3 GB depolama alanı
  • 1 vCPU core
  • 1 adet IPv4 IP adresi
  • Bu sistemde kurulu bir sunucu sürümü GNU/Linux dağıtımı ve root yetkisi.

Hizmeti satın alma kısmı tamamen sizin tercihiniz; fakat VPN sistemini etkin hâle getirdiğinizde internet deneyiminiz “o ülkede gibi” olacağı için bildiğiniz bir yabancı dile sahip ülkeden bu tercihi yapmanız hayatınızı kolaylaştıracaktır.

Bunun yanında Linux konsol bilgisi de gerekli olacaktır. Daha güvenli bir sunucu oluşturmak için birkaç sağlamlaştırma (hardening) ipucunu da yazının sonunda sizlerle paylaşacağız.

Nasıl yaparım?

Olağan şartlarda bir OpenVPN sunucusunu sıfırdan kurup yönetmek çetrefilli bir iş, fakat internette bir hayırseverin hazırladığı (Github.com/Nyr) birkaç yüz satırlık bir Bash betiği sayesinde bunu yapmak oldukça kolay.

İşleme başlamadan internette sansürü çok az uygulayan bir ülkede tüm portları açık bir sunucuya, bu sunucuda yönetici haklarına bir kullanıcıya ve bu kullanıcının parolasına ihtiyacınız var. Elbette sunucuda SSH sunucusu kurulu olmalı ki uzaktan komut satırı kullanarak erişebilesiniz.

GNU/Linux, BSD ve herhangi bir Unix benzeri diğer işletim sisteminde kabuk erişiminiz (terminal vb.) zaten mevcut; Windows kurulu bilgisayarda ise PuTTY veya Windows için Bash gibi uygulamaları kullanmanız mümkün.

Adım adım OpenVPN kuruyoruz

Öncelikle karşıdaki bilgisayara bağlanıyoruz. Bu bir IP adresi veya sunucu ismi olabilir.

ssh kullanici@sunucuadresi -p portnumarasi

Örnek: ssh berkin@222.14.89.99 -p 22 veya berkin@berkinb.com -p 9999 bu sunucu üzerinde başka hiçbir şey çalışmayacaksa, IP adresi üzerinden bağlanmak doğru seçenektir.

Şu komutu yazarak ilgili betiği GitHub’dan indiriyoruz:

wget https://git.io/vpn -O openvpn-install.sh

Alternatif olarak bu yazının hazırlandığı zamanki betik kopyasını HWP.com.tr sunucumuzdan indirebilirsiniz.

wget https://hwp.com.tr/wp-content/uploads/openvpn-install.sh

Ardından ise bu betiği çalıştırıyoruz:

sudo bash openvpn-install.sh

Bu betik size otomatik olarak gerekli OpenVPN kurulumunu ve temel konfigürasyonları yapacak, sonrasında ise bu betiği tekrar çalıştırıp kullanıcı ekleyip çıkartabileceksiniz.

openvpn open vpn sh script betik kurulum install

Kurulum adımlarında bu betik size önce IP adresi soracak. Eğer makinenizde birden fazla ağ bağlantısı varsa bağlanmak istediğiniz bağlantının adresini yazın, eğer zaten tek ağ varsa doğrudan karşınıza onun adresini getirecek.

openvpn open vpn sh script betik kurulum install 2

Ardından ise hangi port üzerinden bağlantı kurulacağını soracaktır. Varsayılan ayar olarak 1194 görünür ama ülkemizdeki yasakları düşündükçe bu port numarasını değiştirmenizi öneriyoruz. Örneğin 12465 gibi bir değer verebilirsiniz. Sunucunuzda bir de SSH sunucusu çalışıyorsa (varsayılan port 22) ondan başka herhangi bir portu kullanabilirsiniz.

openvpn open vpn sh script betik kurulum install port

Sonraki seçenekte hangi ücretsiz DNS çözücüyü kullanacağınız sorulacak. Biz 2 numarayı, yani Google’ı seçtik.

openvpn open vpn sh script betik kurulum install dns seç selection

En son olarak da ilk kullanıcımız için bir isim soracak. Biz birçok kullanıcı yaratacağımız için buna hwp1 dedik.

openvpn open vpn sh script betik kurulum install kullanıcı adı username seç selection

Artık kurulum tamamlanıyor. Betik bu noktadan sonra gerekli paketleri kuracak ve bulunduğunuz dizinde (giriş yaptıktan sonra dizin değiştirmediyseniz /home/kullaniciadiniz/hwp1.ovpn konumunda) kullanabileceğiniz ilk kullanıcı hesabına ait ayar dosyasını oluşturacak. Aşağıdaki komutla üretilen sertifikayı/sertifikaları listeleyebilirsiniz:

ls *.ovpn

Daha fazla kullanıcı oluşturmak, var olan kullanıcıyı silmek veya bu OpenVPN kurulumunu kaldırmak için tekrar aynı komutu çalıştırmanız yeterli olacaktır. Bu defa zaten OpenVPN kurulu diyerek karşınıza diğer seçenekleri çıkartacaktır.

sudo bash openvpn-install.sh

openvpn open vpn sh script betik kurulum install yeni kullanıcı new user add ekleHer şey bu kadar kolay!

Bilgisayar ve mobil cihazlardan bağlanmak

Her bir cihaz için ayrı birer sertifika (yani kullanıcı hesabı) ürettiğiniz sürece istediğiniz kadar cihazla bu sunucuyu kullanmanız mümkün. Tek çekirdekli ve çok az miktarda RAM’e sahip bir sunucu sistemi bile aynı anda bir düzine bağlantıyı rahatlıkla kaldırabilir. Burada sizi sınırlayan şey genellikle 100 Mbps hızında verilen sunucu çıkışı olacaktır.

Ayar dosyasını bilgisayar veya mobil cihazınıza indirmek için SFTP destekli bir yazılımla sunucunuza ssh yaptığınız bilgilerle erişip kendinize kopyalayabilirsiniz. Windows için WinSCP veya Filezilla uygulamaları işinizi görecektir; SFTP destekleyen herhangi bir yazılım herhangi bir platformda sorunsuzca bu işi gerçekleştirmenizi sağlar.

openvpn open vpn sh script betik kurulum install filezilla sftp ftp client

Bilgisayarlardan bağlanmak için OpenVPN.net adresinden indireceğiniz işletim sisteminize uygun OpenVPN uygulamasını indirmek ve ayar dosyasını programın dizinindeki config klasörüne atmak. OpenVPN GUI yazılımını çalıştırdığınızda bağlantı listesinden ayar dosyanızın ismiyle görünen bağlantıyı açarak VPN sunucusunu etkinleştirebilirsiniz.

openvpn open vpn sh script betik kurulum install android ios windows pc connectOpenVPN COnnect uygulamasının Android, iOS ve Windows arayüzleri

Android ve iOS cihazlar için ise Google Play Store ve Apple AppStore üzerinden ücretsiz OpenVPN Connect uygulamasını indirerek gerekli ayar dosyasını işletim sisteminin izin verdiği biçimde (e-posta ekiyle göndermek, Apple keychain’e eklemek, dosya sisteminden eklemek vb.) uygulamayla açmanız yeterli.

Birkaç güvenlik önlemi (Hardening)

Burada anlatılanları gerçekleştirirken en nihayetinde bir GNU/Linux sunucu kullanacaksınız ve bu sunucuya başka yetkisiz kişilere erişimi engellemek ve potansiyel saldırılardan bu sunucuyu korumak isteyeceksiniz. Güvenlikle ilgili olarak çok fazla ayrıntıya girmeyeceğiz fakat birkaç önerimiz olacak. Bu adımları nasıl gerçekleştireceğinizi burada anlatalım:

► Varsayılan SSH portunu değiştirin, 22 olarak kalmasın. Taramalarda çıkmasın.

sudo nano /etc/ssh/sshd_config

bu komuttan sonra

# What ports, IPs and protocols we listen for
  Port 22

yazan kısmı bulun ve değiştirin; başka bir hizmetin portuyla aynı olmasın. 1923 olsun mesela. CTRL-X ile çıkın ve çıkarken y ile kaydedip çıkın. Bu ayar siz hizmeti veya makineyi yeniden başlattığınızda etkin olacaktır.

► Bu noktada sistemi yeniden başlatın ki karışıklık olmasın. Yeniden SSH yaparken az önce belirlediğiniz portu seçmeyi unutmayın.

sudo reboot

► Varsayılan OpenVPN portunu değiştirin (bunu kurulum adımlarında belirtmiştik, mesela 12465). Hem protokol IP üzerinden engellenmesin hem de saldırı için tarayanlara karşı hedef olmayın.

► Sunucunuzda UFW kurulu değilse kurun. Uncomplicated Firewall, yani karmaşık olmayan güvenlik duvarı paketi yalnızca bazı protokollere izin verip diğerlerini engelleyecektir.

sudo apt-get install ufw -y

► UFW üzerinden SSH ve OpenVPN’e izin verin. Burada kendi belirlediğiniz port numaralarını kullanmayı unutmayın yoksa sunucunuzu baştan kurmanız gerekir. Hoş bir durum değil.

sudo ufw allow 1923
sudo ufw allow 12465

► Doğru portları tanımladığınızdan eminseniz UFW’yi etkin hale getirin.

sudo ufw enable

Eğer o anda bağlı olduğunuzdan farklı bir SSH portunu kullanmak için ayar yaptıysanız ve o şekilde UFW’ye izin verdiyseniz tekrar bağlanmanız gerekecektir.

Sisteminizi güncel tutun

► Sisteminizi güncel tutmak için ara sıra şu komutu çalıştırmanız yeterlidir:

sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get dist-upgrade -y && sudo apt-get autoclean -y && sudo apt-get autoremove -y

Aslında burada art arda beş farklı komut çalışıyor; bunları bir dosyaya kaydedip; örneğin

nano update

yazarak içine yazıp ctrl-x ile çıkıp yaparken y tuşuna basıp kaydettiğinizde artık konsoldan

sudo sh update

yazdığınızda hepsi art arda çalışacaktır.

Son notlar

Hepsi bu kadar! Bundan sonra sisteminizi güncel tutmak ve aylık sunucu ücretini ödemekten başka yapanız gereken bir şey yok. Sorularınızı burada bize iletebilirsiniz, elimizden geldiğince cevaplamaya çalışacağız.

Bu OpenVPN sunucu kurulumu en güvenli OpenVPN kurulum yöntemi değil, en sağlam yöntem de değil. Fakat ülkemizdeki yasaklar sonucu kimvurduya gitmiş birçok hizmetin (biz ofiste Adobe Creative Cloud aboneliklerimizle yazılım kuramayınca çıldırarak bu yöntemi uyguladık) doğru düzgün çalışmasını sağlamak için gayet işe yarayan bir yöntemdir.

HWP

Yorumlar

yorumlar

Yazar Hakkında

Berkin Bozdoğan

Türkiye bilişim basınında uzun süre görev almış tecrübeli bilişim teknolojileri yazarı.

Benzer yazılar

Yanıt verin.

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

 

This site uses Akismet to reduce spam. Learn how your comment data is processed.