Gereksinimler: Docker konteynerleri kullanılarak özel bir ev albümü sistemi oluşturuldu, bu da ev LAN üzerinden erişim ve görüntüleme ile sınırlıdır, çünkü Docker görüntüsü üçüncü taraf bir geliştirici tarafından geliştirilmiştir ve bunun bir güvenlik durumu olup olmayacağını bilmiyorumGizlilik ihlalleri oluşturunBu sorunu daha iyi çözmek için, Docker konteynerlerinin İnternet'e (dış ağ) erişmesini yasaklayarak gizlilik garantisi eklemek istiyoruz.
Bu makale, CentOS7 sistemi, Docker sürümü: 20.10.20 kullanır ve testler için nginx görüntüleri kullanır.
İnternet erişimi (ekstranet) varsayılan olarak izin verilir
Erişilebilen web servisleri sağlayan yeni bir nginx konteyneri oluşturun18080 Port erişimi, konteyner varsayılan olarak İnternet'e (dış ağ) erişebilir, komut şu şekildedir:
Konteynere girin ve aşağıdaki şekilde gösterildiği gibi normalde elde edilebilen curl komutuyla bu sitenin kaynaklarını talep edin:
Docker konteynerlerinin internete erişimini engellemek (extranet)
İlk olarak, docker üzerinden özel bir ağ oluşturmamız ve aşağıdaki komutla sanal bir ağ kartı oluşturmamız gerekiyor:
Sanal NIC üzerinde iptables üzerinden aşağıdaki komutla internete erişimi yasaklamak için bir kural belirleyin:
iptables servisi mevcut olup olmadığına bakılmaksızın, güvenlik duvarı açık olup olmamasından bağımsız olarak,Komutla eklenen iptables kuralları hemen yürürlüğe girer!!!
Not: Bu plan uygundurFarklı konteynerler aynı ağa bağlanırsa, konteynerler birbirleriyle iletişim kuramaz!!!!
Aşağıda gösterildiği gibi DOCKER-KULLANICI kuralına bakın:
Tekrar yeni bir nginx konteyneri oluşturun, konteyner web servisini sağlar ve18081 Port dış dünyaya hizmet sağlar ve konteynerin İnternet'e (kamu ağına) erişmesi yasaklanmıştır, komut şu şekildedir:
Hedefimize ulaştık, ama,Sunucuyu yeniden başlattıktan sonra, iptables içinde oluşturduğumuz kurallar kaybolurSunucu yeniden başlatıldıktan sonra özel kurallarımızı otomatik olarak nasıl yükleyebiliriz?
iptables-save komutu, Linux çekirdeğindeki iptables tablosunu standart bir çıktı sağlayıcıya aktarmak için kullanılır; genellikle shell'deki I/O yönlendirme fonksiyonu kullanılarak çıktı belirli bir dosyaya kaydedilir. Mevcut iptables kuralını kaydet
Boot boot'a restore iptables kuralı ekleyin, boot boot dosyası /etc/rc.d/rc.local olur, dosyayı düzenleyin ve sonuna aşağıdaki komutu ekleyin:
Son olarak, aşağıdaki komutla yürütme iznini ekleyin:
Ayarlar tamamlandıktan sonra, iptables kuralları sunucu yeniden başlatılmış olsa bile hâlâ geçerli olur.
Docker'daki tüm konteynerlerin İnternet'e (extranet) erişmesi yasaktır,Test edilmedi, komut şöyledir:
(Son)
|