Blog’a Dön

WireGuard Kurulumu: Kendi VPN Sunucunuzu Kurun

WireGuard nedir, nasıl kurulur? Ubuntu sunucuda kendi VPN sunucunuz: anahtar oluşturma, wg0.conf, yönlendirme ve NAT, istemci ayarları ve QR kod.

Nodesty Ekibi5 dk okumaGüvenlik
Koyu Nodesty arka planında WireGuard yazısı ile VPN, 51820 ve Peers ifadeleri

WireGuard, modern, hızlı ve sade bir VPN protokolüdür. Kiraladığınız bir sunucuya WireGuard kurarak birkaç dakika içinde kendi VPN sunucunuzu çalıştırabilirsiniz: Kafe ve otel Wi-Fi'larında trafiğinizi şifreler, veritabanı ve yönetim panelleri gibi servislere internete açmadan güvenle erişir, ekibinizin cihazlarını tek bir özel ağda toplarsınız.

Bu rehberde Ubuntu ve Debian sunucuya WireGuard kurulumunu, anahtar oluşturmayı, sunucu ve istemci yapılandırmasını, yönlendirme ve NAT ayarlarını, telefonlar için QR kodu ve güvenlik önerilerini anlatıyoruz.

WireGuard nedir, ne işe yarar?

WireGuard, Linux çekirdeğinin içine eklenmiş bir VPN protokolüdür. Her cihaz bir anahtar çiftine sahiptir ve cihazlar birbirini açık anahtarlarıyla tanır; SSH anahtarlarına benzer bir mantıkla çalışır. Kendi VPN sunucunuzla şunları yapabilirsiniz:

  • Güvenilmeyen ağlarda güvenlik: Halka açık Wi-Fi ağlarında bütün trafiğiniz şifreli bir tünelden sunucunuza gider.
  • Servislere güvenli erişim: Veritabanı, yönetim paneli ya da RDP gibi portları internete açmak yerine yalnızca VPN ağına açarsınız.
  • Ekip ağı: Ekibinizin cihazları ve sunucularınız aynı özel ağda birbirine ulaşır.
  • Sabit çıkış IP adresi: Belirli servislere yalnızca sunucunuzun IP adresinden erişime izin verebilirsiniz.

Kurulum

Sunucunuza SSH ile bağlandıktan sonra WireGuard'ı ve yardımcı araçları kurun:

sudo apt update
sudo apt install wireguard qrencode iptables

Anahtarları oluşturma

Bu bölümdeki komutları root olarak, /etc/wireguard klasöründe çalıştırın. Sunucu ve ilk istemci (örneğin telefonunuz) için birer anahtar çifti oluşturun:

sudo -i
cd /etc/wireguard
umask 077
wg genkey | tee sunucu.key | wg pubkey > sunucu.pub
wg genkey | tee telefon.key | wg pubkey > telefon.pub

cat sunucu.key gibi komutlarla anahtarları görüntüleyip aşağıdaki dosyalara kopyalayabilirsiniz.

.key dosyaları gizli anahtarlardır ve sunucudan dışarı çıkmamalıdır (istemcinin gizli anahtarı yalnızca istemcinin yapılandırmasına yazılır). .pub dosyaları açık anahtarlardır ve karşı tarafa verilir.

Sunucu yapılandırması

Önce sunucunun internete çıktığı ağ arayüzünün adını öğrenin:

ip route | grep default

Çıktıdaki dev kelimesinden sonra gelen ad (örneğin eth0 ya da ens3) arayüz adıdır. /etc/wireguard/wg0.conf dosyasını oluşturun:

[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = SUNUCU_GIZLI_ANAHTARI
PostUp = iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
PostDown = iptables -t nat -D POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

[Peer]
# Telefon
PublicKey = TELEFON_ACIK_ANAHTARI
AllowedIPs = 10.8.0.2/32
  • Address: Sunucunun VPN ağındaki adresi. 10.8.0.0/24 ağı, 250'den fazla cihaza yer açar.
  • PrivateKey: sunucu.key dosyasının içeriği.
  • PostUp ve PostDown: VPN açılınca istemcilerin internete sunucunun IP adresiyle çıkmasını sağlayan NAT kuralını ekler ve kapanınca kaldırır. eth0 yerine kendi arayüz adınızı yazın.
  • [Peer]: Her istemci için bir bölüm. AllowedIPs, o istemciye ayrılan VPN adresidir.

IP yönlendirmeyi açma

Sunucunun istemcilerden gelen trafiği internete iletebilmesi için IP yönlendirmeyi açın:

echo "net.ipv4.ip_forward=1" | sudo tee /etc/sysctl.d/99-wireguard.conf
sudo sysctl --system

Güvenlik duvarı

ufw kullanıyorsanız WireGuard portunu açın ve VPN'den gelen trafiğin yönlendirilmesine izin verin:

sudo ufw allow 51820/udp
sudo ufw route allow in on wg0 out on eth0

ufw varsayılan olarak yönlendirilen trafiği engeller; ikinci kural olmadan istemciler bağlanır ama internete çıkamaz. Portların ve güvenlik duvarının nasıl çalıştığını Port nedir? yazımızda anlattık.

WireGuard'ı başlatma

sudo systemctl enable --now wg-quick@wg0
sudo wg show

enable, VPN'in sunucu her açıldığında otomatik başlamasını sağlar. wg show çıktısı bağlı istemcileri, son el sıkışma zamanını ve aktarılan veri miktarını gösterir.

İstemci yapılandırması

İstemci için /etc/wireguard klasöründe bir yapılandırma dosyası oluşturun, örneğin telefon.conf:

[Interface]
PrivateKey = TELEFON_GIZLI_ANAHTARI
Address = 10.8.0.2/32
DNS = 1.1.1.1

[Peer]
PublicKey = SUNUCU_ACIK_ANAHTARI
Endpoint = 203.0.113.10:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
  • Endpoint: Sunucunuzun IP adresi ve WireGuard portu.
  • AllowedIPs = 0.0.0.0/0: Bütün IPv4 trafiği tünelden geçer. Yalnızca VPN ağındaki servislere erişmek istiyorsanız 10.8.0.0/24 yazın; geri kalan trafiğiniz normal bağlantınızdan devam eder.
  • PersistentKeepalive: Mobil ağlarda ve modem arkasında bağlantının açık kalmasını sağlar.

Telefon için QR kod: WireGuard'ın mobil uygulaması yapılandırmayı QR koddan okuyabilir. Sunucuda şu komut, QR kodu doğrudan terminalde gösterir:

qrencode -t ansiutf8 < telefon.conf

Uygulamada QR koddan ekle seçeneğiyle kodu okutun ve tüneli açın. Bilgisayarlar için WireGuard'ın Windows, macOS ve Linux uygulamalarına .conf dosyasını içe aktarmanız yeterlidir.

Yeni cihaz eklemek

Her yeni cihaz için:

  1. Yeni bir anahtar çifti oluşturun.
  2. wg0.conf dosyasına yeni bir [Peer] bölümü ekleyin ve ona boş bir adres verin (10.8.0.3/32, 10.8.0.4/32 ...).
  3. Cihaz için ayrı bir istemci dosyası hazırlayın.
  4. sudo systemctl restart wg-quick@wg0 ile yapılandırmayı yeniden yükleyin.

Aynı anahtarı birden fazla cihazda kullanmayın; iki cihaz aynı anda bağlanmaya çalıştığında birbirinin bağlantısını keser.

Güvenlik önerileri

  • Gizli anahtarları koruyun. /etc/wireguard klasörünün yalnızca root tarafından okunabildiğinden emin olun ve istemci dosyalarını cihazlara aktardıktan sonra sunucudan silin.
  • Kaybolan cihazları hemen çıkarın. Bir telefon kaybolursa ilgili [Peer] bölümünü silip WireGuard'ı yeniden başlatın.
  • Yönetim servislerini VPN'e taşıyın. Veritabanı ve yönetim panellerini yalnızca 10.8.0.0/24 ağından erişilebilir yapın; böylece bu servisler internete hiç açılmaz. SSH güvenliği için Fail2ban kurulumu rehberimize de göz atın.
  • Kullanım kurallarına uyun. Kendi VPN sunucunuzdan çıkan bütün trafik sunucunuzun IP adresiyle görünür ve sizin sorumluluğunuzdadır. Nodesty Adil Kullanım Politikası, adil kullanım kapsamındaki paketlerde yüksek trafik gerektiren VPN ve ters proxy uygulamalarının çalıştırılmasına izin vermez; WireGuard'ı kendi cihazlarınızın ve ekibinizin güvenli erişimi için kullanın.

WireGuard için Nodesty sunucuları

Nodesty AMD Ryzen 9 9950X VDS ve AMD EPYC 7763 VDS paketleri KVM sanallaştırması ve tam root erişimiyle WireGuard'ı çekirdek düzeyinde çalıştırır. 9950X paketlerindeki Frankfurt ve New York konumları, Avrupa ve Kuzey Amerika'daki cihazlarınız için düşük gecikmeli bir tünel sunar; L3–L7 nShield DDoS koruması da VPN sunucunuzu ağ düzeyindeki saldırılara karşı korur.

Sıkça Sorulan Sorular

WireGuard mı OpenVPN mi?

WireGuard daha yeni, daha hızlı ve yapılandırması çok daha sadedir; birkaç satırlık dosyalarla çalışır ve Linux çekirdeğinin bir parçasıdır. OpenVPN ise uzun yıllardır kullanılır ve TCP üzerinden çalışabildiği için bazı kısıtlı ağlarda daha esnektir. Yeni bir kurulum için çoğu durumda WireGuard'ı öneririz.

Kendi VPN'im beni anonim yapar mı?

Hayır. Kendi VPN sunucunuz trafiğinizi güvenilmeyen ağlarda şifreler ve internete sunucunuzun IP adresiyle çıkmanızı sağlar, ama o IP adresi sizin kiraladığınız sunucuya aittir. Kendi VPN'inizi güvenlik ve erişim için kullanın; anonimlik aracı olarak düşünmeyin.

Kaç cihaz bağlayabilirim?

WireGuard'da her cihaz ayrı bir peer olarak tanımlanır ve kendi anahtar çiftine sahip olur. Küçük bir sunucu, ailenizin ya da ekibinizin onlarca cihazını rahatlıkla taşır. Aynı anahtarı birden fazla cihazda kullanmayın; her cihaza ayrı bir yapılandırma oluşturun.

Bağlandım ama internete çıkamıyorum, neden?

En sık sebepler IP yönlendirmenin kapalı olması, NAT kuralındaki ağ arayüzü adının yanlış olması ve ufw'nin yönlendirilen trafiği engellemesidir. sysctl net.ipv4.ip_forward çıktısının 1 olduğunu, PostUp satırındaki arayüz adının ip route çıktısındaki adla aynı olduğunu ve ufw route kuralını eklediğinizi kontrol edin.

Yalnızca sunucudaki servislere erişmek için VPN kullanabilir miyim?

Evet. İstemcideki AllowedIPs değerini 0.0.0.0/0 yerine 10.8.0.0/24 yaparsanız yalnızca VPN ağına giden trafik tünelden geçer, geri kalan internet trafiğiniz normal bağlantınızdan devam eder. Veritabanı ve yönetim panellerini yalnızca VPN üzerinden erişilebilir yapmak için bu yöntem idealdir.

WireGuard hangi portu kullanır?

Varsayılan olarak 51820 UDP portunu kullanır, ama ListenPort ayarıyla istediğiniz bir UDP portunu seçebilirsiniz. Güvenlik duvarında yalnızca bu portu açmanız yeterlidir; WireGuard geçerli anahtarı olmayan paketlere hiç cevap vermediği için port taramalarında görünmez.

Nodesty

Yazar hakkında

Nodesty Ekibi · Altyapı ve Destek

Nodesty ekibi sunucularımızı, ağımızı ve DDoS korumamızı her gün işletir ve müşteri destek taleplerini 7/24 yanıtlar. Bu rehberler o deneyimden yazılır.

İlgili yazılar

Sunucunuzu şimdi başlatın.

Nodesty'nin üstün altyapısı ile projelerinizi özgürce inşa edin ve sınır tanımadan ölçeklendirin.

                                                                                                                                                                                                                            
                                                                                                                                                                                                                            
                                                                                                                                                                                                                            
                                                                                                                             ············································                                                   
                                                ··································································································..........···························                                     
                                       ················..........................................................................................................................··············                             
                                  ·············.................::::::::::::::::::::::::::::::::::::::::::::::....................:::::::::::::::::::::::::::::::::::::::................···········                        
                             ············................:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::............·········                     
                         ············.................:::::::::::::::::::::::::::::::::::::::::::::::::::------------::::::::::::::::::::::::::::::----------------:::::::::::::::::::::..........········                  
                    ············......................::::::::::::::::::::::::::::::::::::------------------------------------------------------------------------------------:::::::::::::.........········                
                ··········.............................................::::::::::::::::::-------------==========================================-----------------------------------:::::::::::........·······               
             ········..................:.....................................::::::::::--------=======+++++++++++++++++++++++++++++++++++++=========================------------------::::::::::.......·······              
           ······.........::::::::::::::::::::................................:::::::-----=====++++xxxxxx**************************xxxxxxxxx++++++++++++++===================------------::::::::.......·······             
          ·····.......:::::::::::::::::::::::::::.............................:::::----===+++xxx****%%%%&&&&&&#############&&&&&&&%%%%%*******xxxxxxxx++++++++++++++==============----------:::::::......······             
         ····......::::::::-------------:::::::::::..........................::::---===+++xx***%%%&&&####@@@@@@@@@@@@@@@@@@@@@@@@####&&&&&%%%%*******xxxxxxxxx+++++++++++++===========--------::::::......·····             
        ····.....:::::::--------------------:::::::::.......................::::---===++xxx**%%&&&###@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###&&&&%%%%%********xxxxxxxxxxx++++++++++++========------::::::.....······            
        ····.....:::::--------------------------::::::::....................::::---===++xx***%%&&&####@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###&&&&&%%%%%**********xxxxxxxxxxxxx+++++++++=======------:::::.....·····            
        ····....::::::-------=============---------:::::::::................:::::---===+++xx***%%%&&&#####@@@@@@@@@@@@@@@@@@@@@@@@@#####&&&&&%%%%%%*************xxxxxxxxxxxxxx+++++++++======-----:::::....·····            
         ····....:::::-------================---------:::::::::...............:::::----===++++xxx***%%%%&&&&&&#################&&&&&&%%%%%%%*******************xxxxxxxxxxxxxxxxx++++++++======----:::::....·····            
         ·····....:::::--------=================---------::::::::::..............:::::::-----====+++++xxxxxx**************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++=====-----::::....·····            
          ·····.....:::::--------=================----------:::::::::::.................:::::::::-------=============++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++======-----::::....·····            
            ·····.....:::::::----------===========-------------::::::::::::.........................::::::::::::::::::------------------=============+++++++++++++++++++++++++++++++++=======-----::::.....·····            
              ······......:::::::---------------------------------:::::::::::::........................................:::::::::::::::-----------============+++++++++++++++++++++========------:::::.....·····             
                 ······........:::::::::---------------------------:::::::::::::::::...........................................:::::::::::::------------=============================--------::::::.....······              
                    ·········.........:::::::::::::::-------------::::::::::::::::::::::::.......................................::::::::::::::::--------------------------------------::::::::......·······                
                          ··········............::::::::::::::::::::::::::::::::::::::::::::::::::................................::::::::::::::::::::::::::-------------:::::::::::::::.........········                   
                                  ············..................:::::::::::::::::::::::::::::::::::::::::::.........................:::::::::::::::::::::::::::::::::::::................···········                        
                                             ················.............................................................................................................·················                                 
                                                           ······················................................................................···························                                                
                                                                               ·········································································