English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

دليل بسيط لضبط جدار الحماية Docker في CentOS7

تكوين جدار الحماية 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

لذلك، هناك ثلاث طرق لحل المشكلة:

  • في docker run يضاف --privileged=true لإضافة صلاحيات محددة إلى الصندوق
  • إغلاق selinux
  • إضافة قاعدة للselinux، تعديل مسار التثبيت de

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 (الرجاء استبدال # ب @ عند إرسال البريد الإلكتروني) للإبلاغ، وتقديم الدليل على ذلك، إذا تم التحقق من ذلك، سيتم حذف المحتوى المزعوم فورًا.

توصياتك المفضلة