Ubuntu'ya WireGuard VPN + Web UI Nasıl Kurulur


Açıklama: Bu makale bağlı kuruluş bağlantıları içermektedir. Bu bağlantılar üzerinden alışveriş yapmanız durumunda sizden ek bir ücret alınmadan komisyon kazanabilirim.

Bir kahve dükkanının WiFi ağına bağlandığınızda veya herhangi bir halka açık ağdan internete eriştiğinizde, verileriniz kontrolünüz dışında bir altyapı üzerinden geçer. Siz ve ziyaret ettiğiniz web siteleri arasında konumlanmış herhangi biri trafiğinizi potansiyel olarak ele geçirebilir; hatta kendi ev ağınızda bile, internet servis sağlayıcınız ziyaret ettiğiniz her siteyi görebilir.

Bir VPN, cihazınız ile güvendiğiniz bir sunucu arasında şifrelenmiş bir tünel oluşturarak bunu çözer. Trafiğiniz doğrudan internete gitmek yerine önce bu güvenli tünelden VPN sunucunuza gider, ardından VPN sunucusu trafik verilerini hedefe iletir. Bu sayede ağı izleyen herhangi biri, sadece VPN sunucunuza giden şifrelenmiş verileri görür, başka bir şey görmez.

WireGuard, bu işi olağanüstü bir şekilde yapan modern bir VPN protokolüdür. Yüz binlerce satır kod gerektiren eski VPN teknolojilerinin aksine, WireGuard aynı görevi sadece yaklaşık 4.000 satır kod ile yerine getirir; bu da daha az hata, daha iyi performans ve daha kolay güvenlik denetimleri anlamına gelir.

Ama işin aslı şu: WireGuard kendisi basit olsa da, birden fazla VPN istemcisini yönetmek, yapılandırma dosyaları oluşturmak ve kimin erişimi olduğunu takip etmek sadece komut satırıyla yorucu hale gelebilir; bu yüzden bir web arayüzüne sahip olmak kullanışlıdır.

Bu kılavuzda, tarayıcınız üzerinden her şeyi yönetmenizi sağlayan kullanıcı dostu bir web arayüzü ile eksiksiz bir WireGuard VPN sunucusu kuracağız; bunu yaparken yeni cihaz ekleme, mobil istemciler için QR kodları oluşturma ve bağlantıları izleme gibi işlemleri tek bir yapılandırma dosyasına dokunmadan gerçekleştirebileceksiniz.

İhtiyacınız Olanlar

Başlamadan önce, sahip olduğunuzdan emin olun:

  • Bir genel IP adresine sahip bir Linux sunucusu (DigitalOcean, Linode veya AWS gibi sağlayıcılardan alınan bir VPS mükemmel şekilde çalışır).
  • Bu sunucuda root erişimi veya sudo ayrıcalıkları.
  • SSH hakkında temel bir anlayış (sunucunuza nasıl bağlanacağınızı bilmelisiniz).

Bu kılavuz, Ubuntu 22.04 veya Ubuntu 24.04 kullandığınızı varsayar, ancak adımlar Debian ve diğer dağıtımlarda küçük ayarlamalarla benzer şekilde çalışır.

Mimariyi Anlamak

Komut yazmaya başlamadan önce ne inşa ettiğimizi anlamak için bir an duralım.

WireGuard kurulumu, birbirleriyle şifreli tüneller aracılığıyla iletişim kurabilen cihazlar olan eşlerden oluşur.

Bizim durumumuzda, şunlara sahip olacağız:

  • Sunucu: Tüm cihazlarınızın bağlandığı merkezi nokta olarak işlev gören, genel IP adresine sahip Linux makineniz.
  • İstemciler: Korumak istediğiniz dizüstü bilgisayarınız, telefonunuz, tabletiniz veya diğer herhangi bir cihaz, her istemcinin kendi kriptografik anahtar çifti ve yapılandırması olur.
  • Web Arayüzü: Sunucunuzda çalışan ve her şeyi yönetmeniz için size bir kontrol paneli sağlayan hafif bir web uygulaması (biz WireGuard-UI'yi kullanacağız).

Bir istemci bağlanmak istediğinde, sunucuya doğrudan şifreli bir tünel oluşturur ve ardından sunucu, istemcinin internet trafiğini yönlendirir veya yapılandırmanıza bağlı olarak sunucunun yerel ağındaki kaynaklara erişime izin verir.

Adım 1: Ubuntu Sunucusuna WireGuard Kurulumu

Öncelikle, sisteminizin güncel olduğundan ve gerekli araçların yüklü olduğundan emin olalım; bunun için aşağıdaki komutu kullanabilirsiniz. Bu komut paket listelerinizi güncelleyecek ve eski yazılımları yükseltecektir.

sudo apt update && sudo apt upgrade -y

Sonra, WireGuard’ı kendisi kurun:

sudo apt install wireguard -y

WireGuard, Linux çekirdeğine entegre olduğu için (çekirdek 5.6 ve üzeri), bu komut öncelikle WireGuard arayüzlerini yapılandırmak ve yönetmek için gereken kullanıcı alanı araçlarını kurar.

Ubuntu'ya WireGuard'ı kur

Adım 2: Ubuntu'da IP Yönlendirmeyi Etkinleştirme

Varsayılan olarak, Ubuntu ağ arayüzleri arasında paketleri iletmez; bu, sunucunuzun açıkça talimat vermedikçe bir yönlendirici gibi davranmamasını sağlayan bir güvenlik özelliğidir, ancak bir VPN sunucusu için bu işlevselliğe ihtiyacımız var.

Telefonunuz VPN'e bağlandığında ve bir web sitesini ziyaret etmeye çalıştığında, sunucunun bu isteği WireGuard arayüzünden genel ağ arayüzüne iletmesi ve ardından yanıtı geri iletmesi gerekir.

IP yönlendirmeyi kalıcı olarak etkinleştirmek için bir sistem yapılandırma dosyasını düzenlememiz gerekiyor:

sudo nano /etc/sysctl.conf

Bu satırı arayın (başında bir # ile yorumlanmış olabilir):

#net.ipv4.ip_forward=1

Yorum satırını kaldırmak için # işaretini silin veya satır mevcut değilse ekleyin:

net.ipv4.ip_forward=1

Dosyayı kaydedin ve ardından yeniden başlatmadan değişikliği uygulayın:

sudo sysctl -p

Ubuntu'da IP Yönlendirmeyi Etkinleştir

Adım 3: WireGuard için Güvenlik Duvarı ve Yönlendirmeyi Yapılandırın

VPN sunucunuz, WireGuard’in kullandığı port üzerinden gelen bağlantıları kabul etmelidir (varsayılan olarak, UDP portu 51820). Ayrıca VPN arayüzü ile genel ağ arayüzünüz arasında trafiği doğru şekilde yönlendirmesi gerekir.

İlk olarak, genel ağ arayüzünüzü tespit edelim:

ip route | grep default

Şu şekilde bir çıktı göreceksiniz:

default via 192.168.1.1 dev eth0 proto dhcp src 192.168.1.100 metric 100

Buradaki arayüz adı `eth0`dir, ancak sisteminizde farklı olabilir; `ens3`, `enp0s3` veya benzeri bir şey olabilir.

Şimdi ufw güvenlik duvarını (Ubuntu'nun varsayılan güvenlik duvarı) yapılandıralım:

# Allow SSH (if you haven't already)
sudo ufw allow 22/tcp

# Allow WireGuard
sudo ufw allow 51820/udp

# Allow the web interface (we'll use port 5000)
sudo ufw allow 5000/tcp

Bir sonraki adımda, VPN trafiğini internete iletirken sanki sunucudan geliyormuş gibi gösteren bir NAT (Ağ Adresi Çevirisi) kuralı eklememiz gerekiyor.

sudo nano /etc/ufw/before.rules

Bu satırları dosyanın en üstüne, başlık yorumlarından hemen sonra, ancak *filter satırından önce ekleyin ve eth0'ı gerçek ağ arayüzünüzün adıyla değiştirin:

# NAT table rules for WireGuard
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.0.0.0/24 -o eth0 -j MASQUERADE
COMMIT

Bunun anlamı şöyle:

  • *nat: NAT tablosu ile çalışıyoruz.
  • -s 10.0.0.0/24: VPN ağımızdan gelen paketler için (10.0.0.0/24, VPN istemcilerine atayacağımız alt ağdır).
  • -o eth0: eth0 arayüzü üzerinden çıkış yapılıyor.
  • -j MASQUERADE: Kaynak IP adresini sunucunun genel IP adresi olarak yeniden yaz.

Kaydedin ve çıkın, ardından UFW'yi etkinleştirip yeniden yükleyin:

sudo ufw enable
sudo ufw reload

Adım 4: Ubuntu Sunucusuna WireGuard-UI Kurulumu

Şimdi eğlenceli kısım geliyor: Go ile yazılmış temiz ve basit bir web uygulaması olan WireGuard-UI kullanarak web arayüzünü kurmak.

Öncelikle, WireGuard-UI için bir dizin oluşturun:

sudo mkdir -p /opt/wireguard-ui
cd /opt/wireguard-ui

Sonraki adımda, GitHub sürümler sayfasından WireGuard-UI’nin en son sürümünü indirin, ancak yazım sırasında wget komutu yakın zamanda yayımlanmış kararlı bir sürümü alır:

sudo wget https://github.com/ngoduykhanh/wireguard-ui/releases/download/v0.6.2/wireguard-ui-v0.6.2-linux-amd64.tar.gz

İndirildikten sonra, çıkarın ve çalıştırılabilir hale getirin:

sudo tar -xzf wireguard-ui-v0.6.2-linux-amd64.tar.gz
sudo chmod +x wireguard-ui

Arayüzü başlatmadan önce, sistem açılışında otomatik olarak çalışması için bir systemd servisi oluşturalım.

sudo nano /etc/systemd/system/wireguard-ui.service

Bu yapılandırmayı yapıştırın:

[Unit]
Description=WireGuard UI
After=network.target

[Service]
Type=simple
WorkingDirectory=/opt/wireguard-ui
ExecStart=/opt/wireguard-ui/wireguard-ui
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

Kaydedin ve çıkın, ardından servisi etkinleştirip başlatın:

sudo systemctl daemon-reload
sudo systemctl enable wireguard-ui
sudo systemctl start wireguard-ui

Çalıştığından emin olun:

sudo systemctl status wireguard-ui

Wireguard-UI Durumunu Kontrol Et

Adım 5: Wireguard-UI'ye Erişme

Web tarayıcınızı açın ve aşağıdaki URL'ye gidin, YOUR_SERVER_IP ifadesini sunucunuzun gerçek genel IP adresiyle değiştirdiğinizden emin olun.

http://YOUR_SERVER_IP:5000

Bir giriş sayfası göreceksiniz, burada aşağıdaki varsayılan kimlik bilgilerini kullanabilirsiniz:

Username: admin
Password: admin

Wireguard-UI Kontrol Paneli

Önemli: Bunları giriş yaptıktan hemen sonra değiştirin. Sağ üst köşedeki kullanıcı adınıza tıklayın, ardından “Ayarlar” seçeneğine gidin ve şifrenizi güncelleyin.

Adım 6: WireGuard Sunucunuzu Yapılandırma

Giriş yaptıktan sonra WireGuard-UI kontrol paneline yönlendirileceksiniz. Sunucunuzu yapılandırmaya başlamak için sol kenar çubuğunda yer alan "WireGuard Server" seçeneğine tıklayın ve Arayüz Adını 10.0.0.1/24 (varsayılan WireGuard arayüzü) olarak, Dinleme Portunu ise 51820 olarak ayarlayın.

Post Up Script alanına şunu girin:

iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

ve Post Down Script alanına şunu girin:

iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

Farklıysa eth0 yerine gerçek ağ arayüzünüzün adını kullandığınızdan emin olun ve Address to 10.0.0.1/24'yi ayarlayın; bu, sunucunun dahili VPN IP adresi olacaktır.

“Yapılandırmayı Uygula”ya tıkladığınızda, WireGuard wg0 arayüzünü oluşturacak, VPN bağlantılarını 51820 portunda dinleyecek, sunucunuza VPN IP’sini atayacak ve VPN trafiğini düzgün bir şekilde iletmek için güvenlik duvarı kurallarını yapılandıracaktır.

Kullanıcı arayüzü ayrıca sunucunuzun özel ve genel anahtarlarını otomatik olarak oluşturacaktır. Ayarları uyguladıktan sonra, arayüz Etkin olarak görünmelidir; bu, WireGuard sunucunuzun çalışır durumda olduğunu gösterir.

WireGuard Sunucusunu Yapılandır

Adım 7: İlk WireGuard İstemcinizi Ekleyin

Şimdi VPN’inize bir cihaz ekleyelim; bu cihaz dizüstü bilgisayarınız, telefonunuz veya başka bir istemci cihazı olabilir. Sol yan menüden İstemcilere tıklayın, ardından Yeni İstemci Ekleye tıklayın.

Müşteriye “Bilgisayarım” veya “iPhone” gibi açıklayıcı bir isim verin ve isteğe bağlı olarak cihazı daha sonra tanımaya yardımcı olması için bir e-posta adresi girin. Bir sonraki kullanılabilir IP adresini otomatik olarak atamak için “Otomatik” butonuna tıklayın (muhtemelen 10.0.0.2).

İzin Verilen IP’ler için, tüm istemci trafiğinin VPN üzerinden yönlendirilmesini sağlamak amacıyla 0.0.0.0/0, ::/0 girin; eğer sadece sunucunun dahili ağına erişim istiyorsanız, bunun yerine o alt ağı belirtebilirsiniz (örneğin, 10.0.0.0/24).

Her şey hazır olduğunda, Gönder ” üzerine tıklayın ve web arayüzü, bu istemci için kendi kriptografik anahtar çifti de dahil olmak üzere tam bir WireGuard yapılandırmasını otomatik olarak oluşturacaktır.

WireGuard İstemcisi Ekle

Adım 8: İstemci Cihazınızı Bağlamak

Şimdi yapılandırmayı cihazınıza yüklemeniz gerekiyor ve WireGuard-UI, mobil cihazlar için QR kodları ve bilgisayarlar için indirilebilir yapılandırma dosyaları ile bunu kolaylaştırıyor.

Mobil Cihazlar İçin (Telefon/Tablet):

  • App store'unuzdan WireGuard uygulamasını yükleyin (hem iOS hem de Android için kullanılabilir).
  • WireGuard-UI web arayüzünde, yeni oluşturduğunuz istemciyi bulun ve QR kodu simgesine tıklayın.
  • Telefonunuzda WireGuard uygulamasını açın, "+" düğmesine dokunun ve "QR kodundan oluştur" seçeneğini seçin.
  • Tarayıcınızda görüntülenen QR kodunu tarayın.
  • Bağlantınıza bir ad verin ve “Tünel Oluştur” öğesine dokunun.

Hepsi bu! Bağlanmak için anahtarı açın ve mobil cihazınız artık tüm trafiğini VPN sunucunuz üzerinden yönlendiriyor.

Masaüstü/Dizüstü Bilgisayar için:

  • WireGuard'i wireguard.com/install adresinden yükleyin.
  • WireGuard-UI arayüzünde, .conf dosyasını indirmek için istemcinizin yanındaki indirme simgesine tıklayın.
  • Bilgisayarınızda WireGuard uygulamasını açın, “Dosyadan tünel(i) içe aktar” seçeneğine tıklayın ve indirilen yapılandırma dosyasını seçin.
  • Bağlanmak için Etkinleştir öğesine tıklayın.

Adım 9: VPN'inizi Test Etme

Her şeyin düzgün çalıştığından emin olalım. Öncelikle, VPN'iniz kapalıyken whatismyipaddress.com sitesini ziyaret edin ve gösterilen IP adresini not alın.

Daha sonra, WireGuard VPN'inize bağlanın ve sayfayı yenileyin; IP adresiniz artık orijinal yerine sunucunuzun genel IP'sini göstermelidir, bu da trafiğin VPN üzerinden yönlendirildiğini doğrular.

DNS'in doğru şekilde çalıştığını daha da doğrulamak için bağlı cihazınızda aşağıdaki komutu çalıştırabilirsiniz:

ping google.com

Yanıtları görüyorsanız, VPN'iniz trafiği doğru şekilde yönlendiriyor demektir.

Sunucunuzdaki aktif bağlantıları görmek için, SSH ile giriş yapın ve şunu çalıştırın:

sudo wg show

Şu şekilde bir çıktı göreceksiniz:

interface: wg0
  public key: [your server's public key]
  private key: (hidden)
  listening port: 51820

peer: [client's public key]
  endpoint: [client's IP]:random_port
  allowed ips: 10.0.0.2/32
  latest handshake: 45 seconds ago
  transfer: 2.50 MiB received, 15.23 MiB sent

Bu, müşterinizin bağlı olduğunu, en son ne zaman sunucuyla iletişim kurduğunu ve ne kadar veri aktarıldığını gösterir.

Adım 10: WireGuard-UI için HTTPS kullanın

Şu anda, http://YOUR_SERVER_IP:5000 adresindeki WireGuard web arayüzünüze eriştiğinizde, giriş bilgileriniz ve tüm yapılandırma verileriniz internet üzerinden düz metin olarak iletilir ve tarayıcınız ile sunucu arasındaki trafiği ele geçiren herhangi biri yönetici şifrenizi görebilir ve potansiyel olarak oturumunuzu ele geçirebilir.

Çözüm, web arayüzünüzü HTTPS etkinleştirilmiş bir ters proxy'nin arkasına koymaktır ve bir ters proxy, uygulamanızın önünde yer alır, istemcilerden gelen tüm şifreli HTTPS bağlantılarını işler ve ardından istekleri, araya girilmenin bir sorun olmadığı yerel ağ üzerinden uygulamanıza iletir.

Nginx (yüksek performanslı web sunucusu)‘i ters vekil sunucu olarak ve Let’s Encrypt‘i ücretsiz bir SSL sertifikası almak için kullanacağız, böylece WireGuard arayüzünüze IP adresi üzerinden HTTP ile değil, https://vpn.sizindomaininiz.com adresinden erişebileceksiniz.

Nginx Web Sunucusunu Kur

İlk olarak, sunucunuzun IP adresine işaret eden bir DNS kaydını alan adınız için (https://vpn.yourdomain.com) oluşturmanız ve ardından Nginx web sunucusunu kurmanız gerekir.

sudo apt update
sudo apt install nginx -y

Kurulumdan sonra tarayıcınızda http://vpn.yourdomain.com adresini ziyaret edebilir ve varsayılan Nginx karşılama sayfasını görebilirsiniz; bu, Nginx'in çalıştığı ve internetten erişilebilir olduğu anlamına gelir.

Nginx Sayfasını Kontrol Et

Let’s Encrypt için Certbot’u Yükleyin

Sonraki adımda, SSL sertifikaları sağlayan ücretsiz bir sertifika otoritesi olan Let’s Encrypt'i kurun ve certbot, bu sertifikaların alınması ve yenilenme sürecini otomatikleştiren bir araçtır.

sudo apt install certbot python3-certbot-nginx -y

python3-certbot-nginx paketi, işlemi çok daha basit hale getiren Nginx'i otomatik olarak yapılandırabilen bir eklenti içerir.

Nginx'i Ters Vekil Sunucu Olarak Yapılandırın

Şimdi, https://vpn.yourdomain.com üzerinden gelen istekleri localhost:5000 üzerinde çalışan WireGuard-UI uygulamanıza yönlendiren bir Nginx yapılandırması oluşturalım.

Yeni bir yapılandırma dosyası oluştur.

sudo nano /etc/nginx/sites-available/wireguard-ui

Bu yapılandırmayı yapıştırın (vpn.sindomaininiz.com kısmını kendi alan adınızla değiştirin):

server {
    listen 80;
    listen [::]:80;
    server_name vpn.yourdomain.com;

    # This will be used by Certbot for the SSL certificate challenge
    location /.well-known/acme-challenge/ {
        root /var/www/html;
    }

    # Redirect all other HTTP traffic to HTTPS
    location / {
        return 301 https://$host$request_uri;
    }
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name vpn.yourdomain.com;

    # SSL certificate paths (Certbot will fill these in)
    ssl_certificate /etc/letsencrypt/live/vpn.yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/vpn.yourdomain.com/privkey.pem;

    # Modern SSL configuration
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;

    # Security headers
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
    add_header X-Frame-Options "SAMEORIGIN" always;
    add_header X-Content-Type-Options "nosniff" always;

    # Proxy settings
    location / {
        proxy_pass http://127.0.0.1:5000;
        proxy_http_version 1.1;
        
        # WebSocket support (if WireGuard-UI uses it)
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        
        # Forward real client information
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        
        # Timeouts
        proxy_connect_timeout 60s;
        proxy_send_timeout 60s;
        proxy_read_timeout 60s;
    }
}

Şimdi bu yapılandırmayı bir sembolik bağlantı oluşturarak etkinleştirin:

sudo ln -s /etc/nginx/sites-available/wireguard-ui /etc/nginx/sites-enabled/

Nginx yapılandırmanızı sözdizimi hataları için test edin:

sudo nginx -t

Görmelisin:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Herhangi bir hata görürseniz, geri dönün ve yapılandırma dosyanızı yazım hataları için kontrol edin.

Bir SSL Sertifikası Edinin

Her şey doğru bir şekilde yapılandırıldıktan sonra, artık certbot komutunu çalıştırma zamanı geldi; bu komut Let’s Encrypt’ten otomatik olarak bir SSL sertifikası alacak ve Nginx’in bunu kullanacak şekilde yapılandırılmasını sağlayacaktır.

sudo certbot --nginx -d vpn.yourdomain.com

Tüm işlem yaklaşık 30 saniye sürer ve tamamlandığında bir başarı mesajı görürsünüz:

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/vpn.yourdomain.com/fullchain.pem
Key is saved at: /etc/letsencrypt/live/vpn.yourdomain.com/privkey.pem

Her şeyi uygulamak için şimdi Nginx'i yeniden yükleyin:

sudo systemctl reload nginx

Sertifika Otomatik Yenileme

Let's Encrypt sertifikaları yalnızca 90 gün geçerlidir, bu, düzenli yenilemeyi teşvik etmek ve özel bir anahtarın ele geçirilmesi durumunda olası zararı sınırlamak amacıyla bilinçli olarak yapılmıştır.

Neyse ki, Certbot yüklendiğinde otomatik olarak bir yenileme zamanlayıcısı kurar ve yenileme servisinin aktif olduğunu şunu çalıştırarak doğrulayabilirsiniz:

sudo systemctl status certbot.timer

ve bunu etkin (çalışıyor) olarak listelenmiş görmelisiniz, bu zamanlayıcı günde iki kez kontrol eder ve süresi bitmesine 30 gün kalan herhangi bir sertifikayı otomatik olarak yeniler.

Gerçek bir yenileme yapmadan her şeyin düzgün çalıştığını doğrulamak için, şunu çalıştırın:
sudo certbot renew –dry-run

Test başarıyla tamamlanırsa, otomatik sertifika yenilemeniz tamamen yapılandırılmış olur ve sertifikalarınızın süresinin dolması konusunda endişelenmenize gerek kalmaz.

Güvenlik Duvarınızı Güncelleyin

Artık WireGuard-UI'ye standart HTTPS portu (443) üzerinden Nginx ile eriştiğimiz için, bunu güvenlik duvarımızda izin vermemiz gerekiyor ve isteğe bağlı olarak 5000 portuna doğrudan erişimi kapatabiliriz.

sudo ufw allow 443/tcp

İsteğe bağlı olarak, WireGuard-UI'ya 5000 numaralı port üzerinden doğrudan erişimi engellemek istiyorsanız (herkesi HTTPS arayüzünü kullanmaya zorlamak için), o kuralı kaldırabilirsiniz:

sudo ufw delete allow 5000/tcp

Güvenlik duvarını yeniden yükle:

sudo ufw reload

Adım 11: WireGuard-UI'yi Sadece Yerel Sunucuda Dinleyecek Şekilde Yapılandırın

Artık tüm dış bağlantıları Nginx yönettiğinden, WireGuard-UI'yi sadece yerel makineden bağlantı kabul edecek şekilde yapılandırmalıyız; bu, bağlantı noktasının açık olduğunu keşfetmiş olsalar bile, kimsenin doğrudan 5000 numaralı port üzerinden erişmesini engeller.

WireGuard-UI servisini durdurun:

sudo systemctl stop wireguard-ui

Hizmet dosyasını düzenleyin:

sudo nano /etc/systemd/system/wireguard-ui.service

ExecStart satırını yalnızca localhost’a bağlanacak şekilde değiştirin:

[Unit]
Description=WireGuard UI
After=network.target

[Service]
Type=simple
WorkingDirectory=/opt/wireguard-ui
Environment="BIND_ADDRESS=127.0.0.1:5000"
ExecStart=/opt/wireguard-ui/wireguard-ui
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

Kaydedip çıkın, ardından systemd'yi yeniden yükleyin ve servisi yeniden başlatın:

sudo systemctl daemon-reload
sudo systemctl start wireguard-ui
sudo systemctl status wireguard-ui

Son olarak, tarayıcınızı açın ve şuraya gidin:

https://vpn.yourdomain.com

Tarayıcınızın adres çubuğunda bir kilit simgesi görmelisiniz, kilit simgesine tıklayarak sertifika detaylarını görebilirsiniz. Sertifikanın Let’s Encrypt tarafından verildiğini ve 90 gün geçerli olduğunu göreceksiniz.

Özet

Şu ana kadar, güvenli bir web tabanlı yönetim arayüzü ile tamamen çalışır durumda bir WireGuard VPN sunucusunu başarıyla kurdunuz. Anahtarları, yapılandırma dosyalarını ve yönlendirme kurallarını manuel olarak yönetmek yerine, WireGuard-UI size yeni cihazlar eklemek, QR kodları oluşturmak ve aktif bağlantıları izlemek için basit bir kontrol paneli sunar.