Podman nedir?
Podman, konteyner ve pod çalıştırmak, imaj oluşturmak ve yönetmek için kullanılan, Docker ile büyük ölçüde komut uyumlu açık kaynaklı bir araçtır. Docker'dan temel farkı, her zaman çalışan bir arka plan servisine (daemon) ihtiyaç duymaması ve konteynerleri root olmayan kullanıcı olarak çalıştırabilmesidir.
docker yerine podman yazarak çoğu komut aynı biçimde kullanılabilir. Red Hat tabanlı dağıtımlarda yaygındır ve SELinux ile uyumlu çalışacak şekilde tasarlanmıştır.
Nasıl çalışır?
Podman, konteynerleri doğrudan çalıştırır; her konteyner, kendini başlatan kullanıcının bir alt süreci olur. Kullanıcı kimlik alanı eşlemesi sayesinde konteyner içindeki root, ana makinede yetkisiz bir kullanıcıya karşılık gelir (rootless mod). Böylece konteynerden kaçış durumunda saldırganın elde edeceği yetki sınırlı kalır.
Podman aynı zamanda Kubernetes mantığındaki pod kavramını destekler; birden çok konteyner ortak ağ ve kaynaklarla birlikte çalıştırılabilir. systemd ile entegrasyon sayesinde konteynerler servis olarak yönetilebilir.
Sunucu ve hosting ortamında
Sunucularda Podman, özellikle güvenlik hassasiyeti olan ortamlarda ve RHEL ailesi dağıtımlarda tercih edilir. Konteyner servisleri systemd birimi (örneğin Quadlet ile) olarak tanımlanıp açılışta otomatik başlatılabilir. Rootless modda 1024 altındaki portlar varsayılan olarak bağlanamaz; bu durum bir ters vekil ile aşılır.
Nasıl korunulur?
- Mümkün olduğunda rootless modu kullanın; her uygulama için ayrı bir sistem kullanıcısı tanımlayın.