Umut Ramazan Eği

Teknik Ortamım:

    • VDS: 4 çekirdek CPU, 8 GB RAM, 60 GB Disk

    • İşletim Sistemi: Ubuntu 22.04 LTS

    • Docker: Kurdum ve sorunsuz çalışır durumda.

    • İnternet Bağlantısı: Sabit genel IP adresli sunucu.

Bu rehberde, yukarıdaki ortamda kendi VPN sunucumu nasıl kurduğumu, adımları bizzat uygulayarak anlatacağım. Özellikle de benim gibi kendi sunucusunda bir VPN çalıştırmak isteyenler için bu yöntem, sunucumun genel IP adresini kullanarak doğrudan bir tünel oluşturabildiğim için çok işime yaradı.

WireGuard ve WG-Easy: Neden Ben Bunları Kullandım?

WireGuard, OpenVPN ve IPsec gibi eski nesil VPN protokollerine göre hem daha hızlı hem de daha güvenli. Ben de bu yüzden WireGuard’ı tercih ettim. Üstüne bir de WG-Easy gibi arayüzü sayesinde, sunucu kurulumundan istemci eklemeye kadar her şeyi kendi başıma halledebileceğim, kendi kontrolümdeki bir VPN çözümüne ulaştım. Kısacası, bu ikisi benim için harika bir ikili oldu.

Neden Kendi VPN Sunucumu Kurdum? (Benim Nedenlerim)

Ticari VPN hizmetlerinin yerine kendi sunucumu kurmamın birkaç sebebi var:

    • Gizlilik Tamamen Benim Kontrolümde: Verilerime erişen tek kişi ben olduğum için gizlilik konusunda tam bir rahatlık yaşıyorum.

    • Aboneliklere Para Vermiyorum: Sadece sunucumun kirasını ödüyorum, her ay VPN için fazladan para vermeme gerek kalmadı.

    • Güvenliği Kendim Ayarlıyorum: Kurulumu ve ayarları tamamen kendi güvenlik anlayışıma göre şekillendirdim.

    • Evdeki Her Şeye Bağlanabiliyorum: Dışarıdayken bile evimdeki bilgisayarıma, NAS’ıma veya diğer cihazlarıma güvenle bağlanabiliyorum. Burada önemli olan, VPN sunucumun çalıştığı IP ile aynı IP’yi kullanarak dışarıdan kendi sunucuma bağlanabilmem. Bu sayede kendi ağım içinde sorunsuzca bir tünel oluşturuyorum.

    • Coğrafi Engelleri Aşmak Çok Kolay: Sanki bulunduğum yerden değil de sunucumun olduğu yerden bağlanıyormuşum gibi, istediğim içeriğe erişebiliyorum.

Kuruluma Başlamadan Önce Neler Hazırladım?

    • Linux tabanlı bir sunucu veya VPS (Benim tercihim Ubuntu oldu).

    • Sunucuma Docker ve Docker Compose kurdum.

    • Komut satırı (terminal) ile temel düzeyde çalışmayı biliyorum.

    • Sunucumun sabit bir genel IP adresine sahip olduğundan emin oldum. Bu, VPN bağlantılarını kurarken en kritik nokta.

    • Güvenlik duvarımda UDP portu 51820 ve TCP portu 51821‘in açık olduğundan emin oldum. (Bunlar WireGuard ve WG-Easy için varsayılan portlar).

Kurulumu Nasıl Yaptım? (Adım Adım)

Hazırsanız, kendi VPN sunucumu kurma sürecimi sizinle paylaşayım!

Adım 1: Sunucumu Docker ile Hazırladım

Öncelikle sunucumda Docker ve Docker Compose’un kurulu olduğundan emin oldum. Eğer sizin sunucunuzda da yoksa, şu komutlarla kolayca kurabilirsiniz:

Sistem paket listelerini güncelledim

sudo apt update

Docker için gerekli paketleri kurdum

sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

Docker’ın GPG anahtarını ekledim (bu önemli bir güvenlik adımı)

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add –

Docker deposunu sistemime ekledim

sudo add-apt-repository “deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable”

Paket listelerini tekrar güncelle

sudo apt update

Docker Engine ve Docker Compose’u kur(Daha önce kurmuştum)

sudo apt install -y docker-ce docker-compose

Docker servisini başlat ve sistem başladığında otomatik çalışmasını ayarla(Daha öncesinde yapmıştım)

sudo systemctl start docker
sudo systemctl enable docker

Kendi kullanıcıma docker komutlarını sudo kullanmadan çalıştırma yetkisi ver (docker kurulumunda yapmıştık)

sudo usermod -aG docker $USER

Adım 2: Docker Compose Dosyamı Oluşturdum

Şimdi de WireGuard ve WG-Easy’nin çalışması için gerekli yapılandırmayı içeren bir docker-compose.yml dosyası hazırladım. Bu dosya, benim sunucumun genel IP adresini (WG_HOST) kullanarak dışarıdan gelen bağlantıların doğru yere yönlenmesini sağlayacak.

Önce, bu yapılandırma dosyalarını koymak için yeni bir klasör oluşturdum ve içine girdim:

mkdir -p ~/wg-easy
cd ~/wg-easy

Ardından, bu klasörde docker-compose.yml adında bir dosya oluşturdum ve içine şu satırları yapıştırdım:

version: “3.7”

services:
wg-easy:
image: ghcr.io/wg-easy/wg-easy
container_name: wg-easy
ports:
– “51820:51820/udp” # WireGuard için UDP portu
– “51821:51821/tcp” # WG-Easy web arayüzü için TCP portu
volumes:
– ~/.wg-easy:/etc/wireguard # WireGuard ayarlarımı buraya kaydettim
environment:
– LANG=en # Web arayüzünü İngilizce kullanmak için ayarladım
– WG_HOST=YOUR_SERVER_IP # Sunucumun genel IP adresini yazdım
– PASSWORD_HASH=YOUR_ADMIN_PASSWORD_HASH # WG-Easy paneli için parola hash’imi oluşturdum
– PORT=51821 # WG-Easy’nin çalışacağı port
– WG_PORT=51820 # WireGuard’ın çalışacağı port
cap_add:
– NET_ADMIN # Ağ ayarlarıyla oynamak için gerekli izin
– SYS_MODULE # WireGuard modülünü yüklemek için gerekli izin
sysctls:
– net.ipv4.conf.all.src_valid_mark=1
– net.ipv4.ip_forward=1 # IP yönlendirmeyi açtım
restart: unless-stopped # Herhangi bir sorun olursa Docker’ın otomatik yeniden başlatmasını sağladım

Bu Ayarları Kendinize Göre Nasıl Yaparsınız?

    • YOUR_SERVER_IP: Buraya sunucunuzun genel IP adresini yazmanız çok önemli. Benim sunucumun sabit IP’sini buraya girdim. İşte tam da bu sayede, VPN istemcilerim de bu IP üzerinden sunucumla aynı ağdaymış gibi bağlantı kurabiliyor ve benim için bu, doğrudan bir tünel oluşturmayı çok kolaylaştırdı.

    • YOUR_ADMIN_PASSWORD_HASH: WG-Easy paneline giriş yaparken kullanacağınız parolanın hash’lenmiş hali. Bunu oluşturmak için şu komutu kullandım:

docker run –rm ghcr.io/wg-easy/wg-easy wgpw “Buraya GÜÇLÜ bir parola”

    • Komuttan çıkan hash’i kopyalayıp PASSWORD_HASH= kısmına yapıştırdım. Siz de kendi güçlü parolanızı yazıp bu komutu kullanın.

    • LANG=en: Bu ayar sayesinde WG-Easy arayüzünü İngilizce kullanabiliyorum.

Adım 3: WG-Easy Konteynerini Başlattım

Artık her şey hazırdı. docker-compose.yml dosyasını kaydettiğim klasörde (benim için ~/wg-easy idi), şu komutla servisleri başlattım:

sudo docker-compose up -d

Bu komut, gerekli Docker imajlarını indirip WG-Easy ve WireGuard’ı arka planda çalışmaya başlattı. Benim sunucumun genel IP’si zaten belirlediğim için, artık VPN üzerinden dışarıya bağlanmaya hazırdım.

Adım 4: WG-Easy Arayüzüne Girip Ayarları Yaptım

Kurulum bittikten sonra, tarayıcımdan http://YOUR_SERVER_IP:51821 adresine gittim (YOUR_SERVER_IP kısmını kendi sunucu genel IP niz).

Karşıma çıkan giriş ekranına, docker-compose.yml dosyamda belirttiğim parolanın hash’lenmemiş orijinal halini yazdım ve giriş yaptım.

Artık WG-Easy’nin Türkçe ve gayet anlaşılır arayüzündeydim. Bu arayüz üzerinden VPN bağlantılarımı yönetebiliyorum.

Yeni Bir VPN Kullanıcısı Ekledim

    1. Arayüzde, sağ üstteki “Add Client” (İstemci Ekle) butonuna tıkladım.

    1. Açılan yere, ekleyeceğim kullanıcı için bir isim yazdım (mesela “Telefonum” veya “Dizüstü Bilgisayarım”).

    1. “Create” (Oluştur) dediğimde, benim için gerekli tüm ayarları içeren bir .conf dosyası ve bir de QR kod oluşturuverdi. Bu QR kod veya dosya ile cihazlarımı kolayca bağlayabildim.

Cihazlarımı VPN’e Nasıl Bağladım?

  • Cep Telefonum (Android/iOS):
      1. Telefonumun uygulama mağazasından “WireGuard” uygulamasını indirdim ve kurdum.

      1. WG-Easy arayüzündeki QR kodu telefonumla tarattım.

    1. Uygulamaya bir isim verip VPN’i aktifleştirdim. Hepsi bu kadar! Artık telefonum, sunucumun genel IP’si üzerinden güvenli bir tünelle bağlı.

  • Bilgisayarım (Windows/macOS/Linux):

    1. WireGuard’ın kendi sitesinden (wireguard.com/install) bilgisayarım için olan istemciyi indirip kurdum.

    2. WG-Easy’de oluşturduğum istemcinin yanındaki “Download Config” (Yapılandırmayı İndir) butonuna tıklayarak .conf dosyasını indirdim.

    3. İndirdiğim dosyayı WireGuard programıma aktardım.

    4. Programdan VPN’i başlattım. Artık bilgisayarım da sunucumun genel IP’si üzerinden güvenli bir tünel üzerinden bağlı.

Sonuç

Kendi güvenli ve hızlı WireGuard VPN sunucumu Docker ve WG-Easy yardımıyla kurmayı başardım! Artık internette daha güvenli geziyor, gizliliğime daha fazla önem veriyor ve sunucumun bulunduğu ağa uzaktan kolayca bağlanabiliyorum. Bu kurulum, kendi kontrolümde olan bir VPN çözümüne ulaşmamı sağladı ve özellikle sunucumun genel IP’sini kullanarak doğrudan bir tünel kurabilmek benim için büyük bir avantaj oldu.

Kurulum Sonrası Speedtest Sonucum:

Rehberi tamamlamadan önce bir hız testi yaptım ve sonuçlar oldukça tatmin ediciydi. İşte o anın ekran görüntüsü:

Bir yanıt yazın

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