Konteyner güvenliğine giriş: Docker
Konteynerin sanal makineden farkını, yalıtımın neye dayandığını ve Docker imajlarında en sık görülen güvenlik hatalarını adım adım öğrenirsin.
Seviye 101 · 16 ders · 15 pratik lab
Dersler
Konteyner nedir
- Konteyner ve sanal makine: aynı çekirdeği paylaşmak
- Yalıtımın temeli: ad alanları ve cgroups
- İmajlar ve katmanlar: bir imajın içine bakmak
- Docker hizmeti ve soketi: kim yönetici sayılır
- Kısa görev: bir imajın katmanlarında unutulmuş dosyaları bul
Güvenli imaj
- Güvenilir temel imaj seçmek ve sürümü sabitlemek
- Dockerfile’da USER: root olmadan çalışmak
- .dockerignore ile gizli dosyaları imajın dışında tutmak
- İlk imaj taraması: bilinen açıkları görmek
- Kısa görev: hatalı bir Dockerfile’ı düzelt ve yeniden tara
Güvenli çalıştırma
- Portları dikkatle yayınlamak: 0.0.0.0 ve 127.0.0.1
- --privileged neden tehlikeli
- Bellek, işlemci ve süreç sınırları
- Konteyner loglarını okumak ve saklamak
- Kısa görev: bir servisi sınırlı yetki ve kaynakla çalıştır
Bitirme
- Bitirme görevi: küçük bir web uygulamasını güvenli bir konteynere taşı
Pratik lablar
- Bir imajın katmanlarını ve geçmişini incele: docker history ile katmanları listele ve en büyük katmanı hangi komutun oluşturduğunu yaz.
- İmaj katmanlarında unutulan dosyayı bul: Sonraki katmanda silinmiş görünen yapılandırma dosyasını imajı dışa aktararak eski katmandan çıkar.
- Konteyner ile ana makinenin neyi paylaştığını kanıtla: Ad alanlarını ve cgroup ayarlarını inceleyerek çekirdeğin ortak, süreç ve ağ görünümünün ayrı olduğunu gösteren üç kanıt topla.
- Dockerfile’a ayrıcalıksız bir kullanıcı ekle: USER satırını ekle, imajı yeniden oluştur ve sürecin root olmadığını doğrula.
- Temel imajı güvenilir kaynağa ve sabit sürüme çek: latest etiketi kullanan Dockerfile’ı resmi ve sürümü sabitlenmiş bir taban imaja geçir ve .dockerignore ile gizli dosyaları dışarıda bırak.
- Hatalı Dockerfile’ı düzelt ve yeniden tara: Root kullanıcı, gömülü parola, sabitlenmemiş taban ve gereksiz paketleri gider, imajı tara ve açık sayısındaki düşüşü raporla.
- İmajı tara ve kritik açıkları say: Trivy ile imajı tara ve önem derecesine göre açık sayılarını yaz.
- Düzeltmesi olan açıkları olmayanlardan ayır: Tarama çıktısını düzeltilmiş sürümü olanlara süz ve taban imajı güncelleyerek kaç tanesinin kapandığını göster.
- İki taban imajı açık sayısı ve boyuta göre karşılaştır: Aynı uygulamayı tam ve ince taban imajla oluştur, tara ve hangisini neden seçtiğini sayılarla açıkla.
- Portu yalnızca yerel adreste yayınla: Tüm arayüzlerde yayınlanan portu 127.0.0.1’e çek ve dışarıdan erişilemediğini göster.
- Konteynere bellek, işlemci ve süreç sınırı koy: Sınırsız çalışan servisi sınırlarla yeniden başlat ve sınırın uygulandığını docker stats ile doğrula.
- Ayrıcalıklı kipte çalışan servisi en az yetkiyle yeniden çalıştır: --privileged ile başlatılmış konteynerin gerçekte neye ihtiyaç duyduğunu belirle, yalnızca o yeteneği vererek çalıştır ve işlevini doğrula.
- Konteyner loglarını oku ve saklama ayarını kontrol et: Servisin son hata kaydını bul ve log sürücüsünün boyut sınırının olup olmadığını yaz.
- Docker soketine kimin eriştiğini denetle: docker grubunun üyelerini ve soketi bağlayan konteynerleri bul, gereksiz erişimi kaldır.
- Küçük bir web uygulamasını güvenli bir konteynere taşı: Ayrıcalıksız kullanıcı, sabit taban, sınırlar ve yerel port ile çalışan imajı oluştur, tara ve uygulamanın yanıt verdiğini göster.
Kurs hakkında
Konteynerin sanal makineden farkını, yalıtımın neye dayandığını ve Docker imajlarında en sık görülen güvenlik hatalarını adım adım öğrenirsin.
Ne öğreneceksin
- Konteyner nedir
- Güvenli imaj
- Güvenli çalıştırma
- Bitirme
Ön koşullar
Ön bilgi gerekmez; kurs sıfırdan başlar.
Lab ortamı
Dersler, tarayıcında açılan sana özel bir Kali Linux terminalinde ve ona bağlı özel bir lab ağında geçer. Kurulum gerekmez.
Sık sorulan sorular
- Bu kurs benim düzeyime uygun mu?
- Kurs başlangıç düzeyindedir; her terim ilk geçtiği yerde açıklanır.
- Kurulum gerekir mi?
- Hayır. Her ders tarayıcında açılan sana özel bir lab ortamında geçer.
- Dersler nasıl işleniyor?
- Her ders 8 ile 10 adımdan ve bir kısa sınavdan oluşur. İlk adımlarda yazman gereken komut gösterilir, sonraki adımlarda yardım azalır; iki denemede takılırsan çözüm açılır.
- Ücretsiz deneyebilir miyim?
- Evet. Her kursun ilk üç dersi ücretsizdir.