Konuyu Okuyanlar: 1 Ziyaretçi

Yerel LLM Güvenliği 2026: Ollama'yı Güvenli Çalıştırma ve Açıkta Kalan Sunucular

Yerel LLM Güvenliği 2026: Ollama'yı Güvenli Çalıştırma ve Açıkta Kalan Sunucular
[Resim: attachment.php?aid=242]

Merhaba arkadaşlar,

Kendi bilgisayarınızda veya sunucunuzda yerel bir dil modeli çalıştırmak (Ollama, LM Studio, vLLM vb.) mahremiyet ve maliyet açısından harika. Ama yanlış yapılandırılmış bir yerel LLM sunucusu, internete açık ve kimlik doğrulaması olmayan bir kapı haline gelebilir. Araştırmalar, internette binlerce korumasız Ollama örneği bulunduğunu gösteriyor. Bu rehberde Ollama örneği üzerinden yerel LLM sunucularının güvenli yapılandırmasını resmi belgelere dayanarak anlatıyorum. Amaç saldırmak değil, kendi sunucunuzu güvenli kurmak.

Konuda Anlatılacaklar
  1. Yerel LLM sunucusunun saldırı yüzeyi
  2. Ollama varsayılanları: bind adresi ve kimlik doğrulama
  3. Açıkta kalan sunucular: gerçek rakamlar
  4. CVE-2024-37032 (Probllama)
  5. Güvenli yapılandırma adımları
  6. Ters proxy ile kimlik doğrulama
  7. İzleme ve sertleştirme

Yerel LLM Sunucusunun Saldırı Yüzeyi

Yerel bir LLM sunucusu bir HTTP API sunar. Bu API açığa çıkarsa saldırgan; sizin donanımınızda ücretsiz çıkarım (inference) yapabilir, modelleri listeleyip indirebilir veya silebilir, sistem kaynaklarınızı tüketebilir (OWASP LLM10: Unbounded Consumption) ve bazı durumlarda sunucudaki açıklar üzerinden kod çalıştırabilir. Temel sorun çoğu zaman tek şeydir: API'nin internete, kimlik doğrulaması olmadan açılması. Bulut üzerinde bir GPU sunucusu kiralayıp Ollama kurduğunuzda bu risk daha da büyür, çünkü sunucu zaten herkese açık bir IP'ye sahiptir; tek eksik güvenlik duvarı kuralı bile API'yi dünyaya açabilir.

[Resim: attachment.php?aid=243]

Ollama Varsayılanları: Bind Adresi ve Kimlik Doğrulama

Resmi Ollama belgelerine (FAQ) göre:
  • Ollama varsayılan olarak 127.0.0.1 (localhost), port 11434 dinler. Yani varsayılan halde yalnızca aynı makineden erişilebilir.
  • Bind adresini değiştirmek için OLLAMA_HOST ortam değişkeni kullanılır. Örneğin OLLAMA_HOST=0.0.0.0:11434 yaparsanız sunucu tüm ağ arayüzlerinde dinlemeye başlar; loopback-only koruması kalkar.
Kritik nokta: Ollama'nın yerel API'si için yerleşik kimlik doğrulama yoktur. Bu yüzden 0.0.0.0'a bind edip portu internete açmak, API'yi herkese açmak demektir. Varsayılanı bilinçli bir sebep olmadan değiştirmeyin.

Açıkta Kalan Sunucular: Gerçek Rakamlar

Bu teorik bir risk değil. Açık kaynak araştırmalarına göre:
  • Censys, Eylül 2025'te internette yaklaşık 10.600 açık Ollama örneği tespit etti.
  • Cisco'nun Shodan tabanlı araştırması 1.139 açık Ollama sunucusu buldu; bunlardan 214'ü aktif olarak model sunuyordu.
Bu sunucuların çoğu muhtemelen "hızlıca deneyeyim" diyip OLLAMA_HOST=0.0.0.0 yapan ve güvenlik duvarını unutan kullanıcılara ait. Kendi sunucunuzun bu listeye girmemesi tamamen sizin yapılandırmanıza bağlı.

[Resim: attachment.php?aid=244]

CVE-2024-37032 (Probllama)

Wiz ekibinin bulduğu CVE-2024-37032 ("Probllama"), Ollama'nın 0.1.34 öncesi sürümlerini etkiler. Zafiyet, model yolu çözümlemesinde digest alanının yetersiz doğrulanmasından kaynaklanır ve yol geçişi (path traversal) ile özellikle açığa çıkmış API'li Docker kurulumlarında uzaktan kod çalıştırmaya (RCE) yol açabilir. Çözüm nettir: 0.1.34 veya üzeri sürüme güncelleyin. Bu örnek, yerel LLM araçlarını da diğer yazılımlar gibi güncel tutmanın neden şart olduğunu gösterir.

Sürümünüzü kontrol edin ve güncelleyin (Linux için resmi yöntem):

Kod:
ollama --version curl -fsSL https://ollama.com/install.sh | sh

Güvenli Yapılandırma Adımları

  1. Varsayılan bind'i koruyun: Gerçekten gerekmedikçe OLLAMA_HOST'u 0.0.0.0 yapmayın; localhost'ta bırakın.
  2. Güncel tutun: En az 0.1.34, tercihen en güncel sürüm.
  3. Güvenlik duvarı: 11434 portunu dışarıya kapatın.

systemd ile çalışan bir Ollama'da ortam değişkenini güvenli ayarlamak (resmi belgeye göre):

Kod:
sudo systemctl edit ollama.service # [Service] altina: # Environment="OLLAMA_HOST=127.0.0.1:11434" sudo systemctl daemon-reload sudo systemctl restart ollama

Portun dışarıya kapalı olduğunu kendi sunucunuzda doğrulayın (ufw örneği):

Kod:
sudo ss -tlnp | grep 11434 sudo ufw deny 11434/tcp

Ters Proxy ile Kimlik Doğrulama

Ollama'yı bir ağ üzerinden paylaşmanız gerekiyorsa, onu doğrudan açmak yerine kimlik doğrulamalı bir ters proxy arkasına koyun. Ollama FAQ'in Nginx örneğini temel alıp üstüne temel kimlik doğrulama (basic auth) ekleyebilirsiniz:

Kod:
server { listen 443 ssl; server_name llm.benimsunucum.local; location / { auth_basic "LLM"; auth_basic_user_file /etc/nginx/.htpasswd; proxy_pass http://127.0.0.1:11434; proxy_set_header Host localhost:11434; } }

Böylece Ollama yalnızca localhost'ta dinlerken, dışarıdan erişim TLS ve parola ile korunur. Kullanıcı dosyasını htpasswd ile oluşturun ve güçlü bir parola seçin.

[Resim: attachment.php?aid=245]

İleri Seviye: İzleme ve Sertleştirme
  • Erişim loglama: Ters proxy loglarını izleyin; beklenmeyen IP'lerden gelen istekleri yakalayın. Elastic gibi SIEM'lerde "Ollama API harici erişim" için hazır kurallar bulunur.
  • CORS kısıtı: OLLAMA_ORIGINS'i yalnızca gereken kaynaklarla sınırlayın; gereksiz yere tüm uzantılara izin vermeyin.
  • Kaynak sınırı: Eşzamanlı istek ve kuyruk sınırlarını (OLLAMA_NUM_PARALLEL, OLLAMA_MAX_QUEUE) yapılandırarak kaynak tükenmesine karşı koruyun.
  • Konteyner izolasyonu: Docker ile çalıştırıyorsanız portu yalnızca gereken arayüze bağlayın (-p 127.0.0.1:11434:11434).
Aynı prensipler diğer yerel LLM sunucuları (vLLM, LM Studio, text-generation-webui) için de geçerlidir: varsayılanı bil, internete açma, kimlik doğrulama ekle, güncel tut.

Sonuç

Yerel LLM sunucuları güçlü ama varsayılan güvenli kurulum sizin sorumluluğunuzda. Ollama localhost'ta dinler ve kimlik doğrulaması yoktur; onu 0.0.0.0'a açıp internete bırakmak binlerce örnekte görülen hatadır. Güncel tutun (en az 0.1.34, Probllama yaması), portu kapatın ve paylaşım gerekiyorsa kimlik doğrulamalı ters proxy kullanın. Siz yerel LLM'leri nasıl çalıştırıyorsunuz? Yorumlarda paylaşın.

Kaynakça
Yasal Uyarı

Bu rehberdeki tüm yapılandırma ve komutlar yalnızca kendi sunucunuzda veya yazılı olarak yetkilendirildiğiniz sistemlerde uygulanmalıdır. İnternette açık bulunan üçüncü taraf LLM sunucularına izinsiz erişim, 5237 sayılı Türk Ceza Kanunu'nun 243, 244 ve 245. maddeleri kapsamında suçtur; "açıkta kalmış" olması erişim için izin anlamına gelmez. TurkTeam yalnızca savunma ve eğitim amaçlı paylaşımları destekler.

Görsel: TurkTeam özgün kapak ve diyagramları

Yasal uyarı: Bu içerik eğitim amaçlıdır. Yalnızca kendi sistemlerinizde veya yazılı izin aldığınız hedeflerde uygulayın (TCK 243-245).


Ek DosyalarEkran Görüntüleri
               
Cevapla



Hızlı Menü: