ليرة تركية ؛ الدكتور يحاول تنكر كل شيء من Docker
مع firewalld
يدويا.
لقد بدأت للتو في استخدام firewalld
على جهاز ديبيان 10 الخاص بي لأنني أريد أن أتعلم كيف يعمل.
لدي Docker
مثبتة على المضيف وأريد إدارة جدار الحماية بنفسي لمعرفة المزيد حول ما يفعله عامل الميناء ، وما هي القواعد وما إلى ذلك. وهو ينطبق عندما يتم إنشاء الحاويات وكيف يعمل فيريوال.
منذ استخدامات دبيان 10 nftables
بشكل افتراضي واستخدام نوع من iptables
المجمع لتكون قادرة على استخدام iptables
أوامر لإنشاء قواعد جدار الحماية. Docker
يعمل على ما يرام عندما --iptables
تم تمكين.
ومع ذلك أريد استخدام firewalld
مع nftables
الخلفية وتخطي كل ما له علاقة مع iptables
لأنه مجرد مربكة. حتى في /etc/systemd/system/multi-user.target.wants/docker.service
أضفت --iptables=false
حتى عامل الميناء لا تعبث مع جدار الحماية.أنا مسح جميع قواعد إيبتبلس الخ. وكل شيء جيد حتى الآن.
الآن لمشكلتي.
يمكن لجميع الحاويات الوصول إلى المضيف وبعضها البعض ولكن ليس الإنترنت.نظرا لأنهم جميعا يعملون على 172.17.0.0/16 ومضيفي على 192.168.9.0 / 24 ، أحتاج إلى تنكر حركة المرور من الحاويات.
لا أستطيع العثور على الكثير من المعلومات حول إدارة جدار الحماية يدويا عند استخدام عامل الميناء وبما أنني جديدة ل فيريوال أنا نوع من مجرد التخمين.
واجهات بلدي هي كما يلي:
eno1 (main interface)docker0 (docker bridge)veth******* (one for each container)
كل ال veth
واجهات في docker0
الجسر.
لذا اعتقدت أنه يمكنني إنشاء منطقة جديدة تسمى docker
وتنكر كل شيء من docker0
الجسر.
~# firewall-cmd --permanent --new-zone=docker~# firewall-cmd --permanent --zone=docker --change-interface=docker0~# firewall-cmd --permanent --zone=docker --add-rich-rule='rule family="ipv4" source address=172.17.0.0/16 masquerade'~# firewall-cmd --reload
سرد المناطق النشطة يعطيني هذا:
~# firewall-cmd --get-active-zonesdocker interfaces: docker0public interfaces: eno1
ما زلت لا أستطيع الوصول إلى الإنترنت من الحاويات.ليس لدي أي فكرة إذا كان هذا هو الطريق الصحيح للذهاب أو ما أنا في عداد المفقودين.هو موضع تقدير أي مساعدة.