English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
تكوين جدار الحماية Docker البسيط لـ CentOS7
تعطيل خدمة firewalld
systemctl disable firewalld systemctl stop firewalld
تثبيت خدمة جدار الحماية iptables
yum install iptables-services
إنشاء سكربت تكوين iptables
cat >> /usr/local/bin/fired.sh <<'EOF' #!/bin/bash iptables -F iptables -X iptables -Z iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A INPUT -i eth0 -p icmp --icmp-type 8 -j ACCEPT #iptables -A INPUT -p tcp --dport 80 -i eth0 -m state -state NEW -m recent -update -seconds 60 -hitcount 50 -j DROP #iptables -A OUTPUT -o eth0 -m owner -uid-owner vivek -p tcp --dport 80 -m state -state NEW,ESTABLISHED -j ACCEPT iptables -A INPUT -i eth0 -p tcp --sport 1:1023 --dport 1:1023 --syn -j DROP iptables -A INPUT -p tcp -i eth0 --dport 22 --sport 1024:65534 -j ACCEPT iptables -A INPUT -p tcp --dport 80 --sport 1024:65534 -j ACCEPT iptables -A INPUT -p tcp --dport 2376 --sport 1024:65534 -j ACCEPT iptables -A INPUT -p tcp --dport 3306 --sport 1024:65534 -j ACCEPT # OpenVPN Configuration # iptables -A POSTROUTING -t nat -s 10.8.0.0/24 -o eth0 -j MASQUERADE # iptables -A FORWARD -i tun+ -j ACCEPT # iptables -A INPUT -s 10.8.0.0/24 -j ACCEPT # iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # iptables -A INPUT -p TCP -i eth0 --dport 10173 --sport 1024:65534 -j ACCEPT # iptables -A INPUT -p UDP -i eth0 --dport 10173 --sport 1024:65534 -j ACCEPT EOF chmod +x /usr/local/bin/fired.sh
إضافة خيار بدء التشغيل
cat >> /etc/rc.d/rc.local <<EOF # Firewall & Docker /usr/bin/systemctl start iptables.service /usr/local/bin/fired.sh /usr/bin/systemctl start docker EOF chmod +x /etc/rc.d/rc.local
تعطيل بدء الخدمات ذات الصلة
# ملاحظة: يتم إضافة بعض الخدمات تلقائيًا عند بدء Docker systemctl disable iptables.service systemctl disable docker
العقبات التي يواجهها docker في CentOS7
عند تثبيت mysql على CentOS، يتم إظهار رسالة خطأ chown mod /var/lib/mysql permission denied، يمكن حل هذه المشكلة باستخدام الطريقة 1 التالية.
عند محاولة مونتاج مجلد البيانات على CentOS، وإجراء الوصول إلى مجلد البيانات في الصندوق، يتم إظهار رسالة خطأ permission denied، يمكن حل هذه المشكلة باستخدام الطريقة 1 التالية.
1. يمنع CentOS7 Selinux بعض الصلاحيات الأمنية، مما يؤدي إلى إظهار رسالة التشخيص التالية عند محاولة مونتاج /var/lib/mysql لمysql و mariadb:
[root@localhost mariadb]# docker run -d -v ~/mariadb/data/:/var/lib/mysql -v ~/mariadb/config/:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=‘123456‘ test01/mariadb 19c4aa113c610f53f9720ee806e3c918dd18d21dff75c043bdd6db60011a135d [root@localhost mariadb]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 19c4aa113c61 test01/mariadb "docker-entrypoint.sh" 4 seconds ago Exited (1) 1 seconds ago desperate_kelle
استخدام الأمر logs للاستطلاع، وجدت رسالة التشخيص هي: chown: changing ownership of ‘/var/lib/mysql/....‘: Permission denied
لذلك، هناك ثلاث طرق لحل المشكلة:
2. في بعض الأحيان، عند بدء تشغيل صندوق يحتوي على ت映射 للمنفذ، قد يظهر التحذير التالي:
1 فشل iptables: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 52080 -j DNAT --to-destination 192.168.20.22:52080 ! -i docker0: iptables: No chain/target/match by that name
هذا الشئ، بعد البحث والتشويش لم يقدم تفسيرًا، استشفت الموقع http://www.lxy520.net/2015/09/24/centos-7-docker-qi-dong-bao/، يقول هذا المقال يجب تعديل ملف iptables، ولكن في CentOS 7 قد لا يكون هذا الملف موجودًا أو قد لا يكون مثبت خدمة iptables، وكانت النتيجة النهائية إعادة تشغيل المضيف، واستعادة، في خلال محاولة استخدام الأمر firewall-cmd لاستعلام، وإيقاف الحماية النصية.
الخلاصة
هذا هو نهاية محتوى هذا المقال، نأمل أن يكون محتوى هذا المقال له قيمة مرجعية في تعلم أو عمل الجميع، إذا كان لديك أي أسئلة، يمكنك ترك تعليق للتفاعل، شكرًا لدعمكم لتعليم呐喊.
البيان: محتويات هذا المقال تم جمعها من الإنترنت، وتحتفظ بالحقوق القانونية للمالك الأصلي، تم جمع المحتويات بواسطة مساهمات المستخدمين عبر الإنترنت، ولا يمتلك هذا الموقع حقوق الملكية، ولا يتم تعديل المحتويات بشكل يدوي، ولا يتحمل هذا الموقع أي مسؤولية قانونية متعلقة بذلك. إذا اكتشفت محتوى يشتبه في انتهاك حقوق النسخ، فالرجاء إرسال بريد إلكتروني إلى: notice#oldtoolbag.com (الرجاء استبدال # ب @ عند إرسال البريد الإلكتروني) للإبلاغ، وتقديم الدليل على ذلك، إذا تم التحقق من ذلك، سيتم حذف المحتوى المزعوم فورًا.