FibaCloud
İçeriğe geç
Soru sor

Kapatmak için ESC tuşuna basın

VPN ile Bulut Güvenliği: Sınırlı WireGuard Erişimi

VPN, istemci ile VPN uç noktası arasındaki trafiği şifreler. Uygulama yetkilendirmesinin, sunucu güncellemelerinin veya TLS’nin yerini almaz. Bulut güvenliğinde iyi bir başlangıç, tüm ağı açmak yerine yalnız gereken hizmete erişen dar bir tünel kurmaktır.

Bu rehberde Ubuntu 24.04 LTS kullanan bir istemci ile tek bir bulut sunucusu arasında WireGuard ile sınırlı erişim hazırlanır. İstemci yalnız sunucunun VPN adresine gider; internet çıkışı, varsayılan rota, NAT ve başka sunuculara yönlendirme değiştirilmez. Daha geniş özel ağ veya tüm trafiği VPN’den geçirme tasarımı ayrı bir ağ planı gerektirir.

WireGuard ve OpenVPN seçimi

WireGuard eşleri açık anahtarlarla tanımlar; her eşin AllowedIPs listesi yönlendirme ve gelen kaynak adresi denetimine katılır. OpenVPN farklı kimlik doğrulama ve PKI seçeneklerine sahiptir. İkisini tek bir kurulum dizisi gibi karıştırmayın.

OpenVPN kullanıyorsanız istemciye CA’nın açık sertifikası ve o istemciye ait kimlik bilgileri verilir. CA özel anahtarı istemciye kopyalanmaz. Var olan kurumsal OpenVPN düzeninizi yalnız bu rehberi izlemek için değiştirmeyin; onun onaylı istemci profili ve iptal süreçlerini kullanın. Aşağıdaki uygulanabilir örnek WireGuard içindir.

Şifreli tünel nerede biter?
Şifreli tünel nerede biter? VPN tüneli istemci ile VPN ağ geçidi arasını korur. Ağ geçidinden uygulamaya erişim ayrıca yönlendirme, güvenlik duvarı ve uygulamanın kendi TLS/kimlik doğrulamasıyla yönetilir.
Görselin adım adım açıklaması
  1. Başlat: İstemci VPN ağ geçidini doğrular.
  2. Şifrele: Trafik tünel içinde korunur.
  3. Sınırla: Ağ geçidi sonrası erişimi kurallarla yönet.
  4. Koru: Uygulamada TLS ve kimlik doğrulamayı sürdür.

Ön koşullar ve adres planı

İki makinede de yönetim yetkiniz, çalışan bir yönetim bağlantınız ve bulut sunucusunda kurtarma konsolu erişiminiz olmalıdır. Önce ayrı test sunucularında deneyin. Örnekte:

Rol VPN adresi Gerekli bilgi
Bulut sunucusu 10.77.0.1/32 İstemciden erişilen genel adres ve UDP 51820
İstemci 10.77.0.2/32 Sunucunun açık anahtarı ve uç nokta adresi

10.77.0.1 ve 10.77.0.2 mevcut yerel ağlarınızla çakışmamalıdır. wg0 adlı mevcut bir arayüz veya yapılandırma varsa üzerine yazmayın; ayrı bir test adı ve ona uygun dosya kullanın. vpn.example.com ve 198.51.100.10 dokümantasyon örnekleridir; gerçek sunucu adınızı ve istemcinin genel kaynak IP’sini yazın.

Mevcut durumu iki uçta kaydedin:

ip -4 address show
ip -4 route show
sudo wg show

wg henüz yoksa paket kurulumundan sonra son komutu çalıştırın. Ubuntu 24.04 üzerinde iki uçta:

sudo apt update
sudo apt install wireguard

Her uçta ayrı anahtar üretin

Aşağıdaki işlemleri sunucu ve istemcide ayrı ayrı yapın. Çalışma dizininde aynı adlı anahtar varsa durun; üretimdeki anahtarı yenisiyle değiştirmeyin.

install -d -m 700 "$HOME/wireguard-setup"
cd "$HOME/wireguard-setup"
umask 077
wg genkey | tee wg0.private | wg pubkey > wg0.public
cat wg0.public

Karşı tarafa yalnız wg0.public içeriğini güvenilir kanaldan iletin. Özel anahtar o uçta kalır. Özel anahtarı sohbet, e-posta, kaynak deposu veya makale ekran görüntüsüyle paylaşmayın. Eşlerin açık anahtarlarını hangi cihaza ait olduklarıyla birlikte kaydedin.

Sunucu ve istemci yapılandırmasını ayırın

İki uçta da yeni dosya oluşturacaksanız izinleri anahtarı yazmadan önce sınırlandırın:

sudo install -d -m 700 /etc/wireguard
sudo touch /etc/wireguard/wg0.conf
sudo chmod 600 /etc/wireguard/wg0.conf
sudoedit /etc/wireguard/wg0.conf

Aşağıdaki yer tutucuları gerçek anahtarlarla yerel düzenleyicide değiştirin. <...> yer tutucularını dosyada bırakmayın; bunlar çalışır anahtar değildir. Anahtarları komut satırı argümanına veya kabuk geçmişine yazmayın.

Bulut sunucusu — /etc/wireguard/wg0.conf:

[Interface]
Address = 10.77.0.1/32
ListenPort = 51820
PrivateKey = <SERVER_PRIVATE_KEY>

[Peer]
PublicKey = <CLIENT_PUBLIC_KEY>
AllowedIPs = 10.77.0.2/32

İstemci — /etc/wireguard/wg0.conf:

[Interface]
Address = 10.77.0.2/32
PrivateKey = <CLIENT_PRIVATE_KEY>

[Peer]
PublicKey = <SERVER_PUBLIC_KEY>
Endpoint = vpn.example.com:51820
AllowedIPs = 10.77.0.1/32
PersistentKeepalive = 25

PersistentKeepalive NAT arkasındaki istemcinin eşlemesini açık tutmaya yardımcı olur; her ağda zorunlu değildir. Sunucu tarafında her istemciye ayrı bir açık anahtar ve çakışmayan /32 adres verilir. Aynı özel anahtarı birçok kullanıcıyla paylaşmayın. Bu örneğe 0.0.0.0/0, ::/0, NAT veya IP forwarding eklemeyin; bunlar kapsamı değiştirir.

Ağ kurallarını dar tutun

Bulut ağ kuralında yalnız gereken istemci kaynak IP’sinden sunucunun UDP 51820 portuna izin verin. İstemcinin genel IP’si değişiyorsa erişim modelini yöneticinizle planlayın; sessizce tüm kaynakları açmayın.

Sunucuda UFW zaten etkin ve kullanılan güvenlik duvarıysa önce durumunu görün. Aşağıdaki örnekte IP’yi gerçek istemci kaynak adresiyle değiştirin:

sudo ufw status numbered
sudo ufw allow proto udp from 198.51.100.10 to any port 51820

Bu rehber UFW’yi etkinleştirmez, sıfırlamaz veya başka güvenlik duvarını devre dışı bırakmaz. Mevcut güvenlik duvarınız farklıysa onun eşdeğer dar kuralını yöneticinizle tanımlayın. Yönetim erişimini sağlayan kuralları koruyun.

VPN üzerinden sunacağınız uygulama için ayrıca uygulama portunu sınırlandırın. Örneğin zaten yapılandırılmış HTTPS hizmetine yalnız bu istemciyi kabul etmek için UFW kuralı:

sudo ufw allow in on wg0 proto tcp from 10.77.0.2 to 10.77.0.1 port 443

Bu kural uygulamanın mevcut genel erişimini otomatik kapatmaz. Genel/özel erişim politikasını ayrıca doğrulayın; VPN üyeliğini uygulama oturum açmasının yerine koymayın.

Bağlantıyı başlatın ve doğrulayın

Önce sunucuda, sonra istemcide:

sudo wg-quick up wg0
sudo wg show wg0

İstemciden küçük bir trafik isteği başlatın ve sonra el sıkışma zamanını kontrol edin:

ip route get 10.77.0.1
ping -c 3 10.77.0.1
sudo wg show wg0 latest-handshakes
ip -4 route show default

Rotanın wg0 üzerinden gitmesi, yakın tarihli bir el sıkışması ve karşı yönde artan trafik sayacı beklenir. 0 el sıkışma değeri henüz el sıkışma olmadığını gösterir. ICMP engelliyse ping yanıtı gelmeyebilir; bu tek başına tünelin çalışmadığını kanıtlamaz. Varsayılan internet rotanız öncekiyle aynı kalmalıdır.

VPN adresinde doğru sertifikayla sunulan mevcut bir HTTPS uygulamanız varsa, gerçek alan adını kullanarak TLS’yi kapatmadan deneyin:

curl --connect-timeout 5 \
  --resolve app.example.com:443:10.77.0.1 \
  https://app.example.com/

Bu örnek uygulamayı veya sertifikasını kurmaz; önceden yapılandırılmış hizmeti doğrular. Kimliği doğrulanmış istemcinin eriştiğini ve yetkisiz hesabın uygulama tarafından reddedildiğini ayrıca test edin. Kontrollerden sonra otomatik başlatma istiyorsanız iki uçta sudo systemctl enable wg-quick@wg0 kullanabilirsiniz.

Sorun giderme ve geri dönüş

  • El sıkışma yok: Uç nokta DNS/IP’si, UDP portu, iki açık anahtarın doğru eşte olması ve kaynak IP kuralını kontrol edin.
  • El sıkışma var, hizmet yok: AllowedIPs, hizmetin dinlediği adres/port ve wg0 üzerindeki uygulama kuralını inceleyin. Gereksiz NAT veya genel ağ izni eklemeyin.
  • Adres çakışması: Önce tüneli kapatın; kullanılmayan adreslerle iki eşin yapılandırmasını birlikte düzeltin.
  • Anahtar kaybı veya sızıntısı: İlgili eşin açık anahtarını yetkili yapılandırmadan çıkarın, yeni anahtar çifti üretin ve eşleştirmeyi yeniden yapın.

Geri dönüş için iki uçta sudo wg-quick down wg0 çalıştırın. Otomatik başlatmayı bu işlemde açtıysanız sudo systemctl disable wg-quick@wg0 ile kapatın. Yalnız bu denemede eklenen ağ kurallarını ve eş kayıtlarını kaldırın; var olan yönetim kurallarına dokunmayın. Varsayılan rotayı ve önceki uygulama erişimini tekrar kontrol edin.

Kaynaklar

Teknik içerik ve kaynaklar 4 Ekim 2026 tarihinde gözden geçirildi. Sürüm veya sağlayıcı değişikliğinde ilgili resmî belgeyi yeniden kontrol edin.

Bir yanıt yazın

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