İçeriğe geç
Tüm yazılar

Docker'da ports: kullanmadan önce iki kez düşünün

Docker yayınladığı portları UFW kurallarını atlayarak açar. Güvenlik duvarınız size yalan söylüyor olabilir.

Taha Bayar1 dk okuma 314
İçindekiler

Sunucuda UFW'yi kurdunuz, sadece 22, 80 ve 443'ü açtınız. Sonra bir veritabanı konteynerini -p 5432:5432 ile çalıştırdınız. Sizce 5432 dışarıdan erişilebilir mi?

Evet. Ve bu birçok kişinin canını yaktı.

Neden oluyor?

Docker, port yayınlarken doğrudan iptables üzerinde kendi zincirlerini oluşturur. Bu kurallar UFW'nin kurallarından önce işlenir. Yani ufw status çıktısı size güvende olduğunuzu söylerken port internete açıktır.

Çözüm: port yayınlamayın

Konteynerleri ortak bir Docker ağına bağlayın ve sadece reverse proxy'nin portlarını açın:

services:
  app:
    image: traefik/whoami
    networks: [web]

networks:
  web:
    external: true

Caddy de aynı ağda olduğu için app:80 adresine erişebilir. Dışarıdan ise hiçbir yol yoktur.

Gerçekten yayınlamanız gerekiyorsa

Sadece localhost'a bağlayın:

ports:
  - "127.0.0.1:5432:5432"

Böylece SSH tüneliyle erişebilir, internete kapalı tutabilirsiniz.

Yöntem Dışarıdan erişim Önerilir mi?
5432:5432 Açık Hayır
127.0.0.1:5432:5432 Kapalı Gerekirse
Ortak ağ, port yok Kapalı Evet
Paylaş

Yazar

Taha Bayar

Bu blogun sahibi. Sunucular, yazılım ve öğrendiklerim üzerine yazıyorum.

Yorumlar2

  • Zeynep Demir

    Performans farkını ölçtünüz mü? Rakam görmek ilginç olurdu.

  • Can Arslan

    Tam aradığım yazıydı, elinize sağlık. Özellikle örnek komutlar çok işime yaradı.

Benzer yazılar