الموانئ المعرضة عامل الميناء يمكن الوصول إليها من الخارج-قواعد إيبتبلس تجاهلها

لدي حاوية عامل ميناء تعمل مثل:

 docker run --name some_container_1 -p 8080:80 -d some_image

الذي يعمل بشكل جيد. تعرض الحاوية المنفذ 80 إلى 8080 ويمكن الوصول إليه من المضيف المحلي.

لسبب ما ومع ذلك فإنه تجاهل قواعد إيبتبلس المدخلات تماما وأيضا أسيسيبل من الخارج.

كيف يمكنني تقييد الوصول إلى حاوية عامل الميناء للسماح فقط أي إب 123.456.789.0 للوصول إليه من خارجي?

شكرا.


أرقام الأسطر

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)num   pkts bytes target     prot opt in     out     source               destination         1        0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           2      365 23380 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED3        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:224        7   788 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0            limit: avg 5/min burst 5 LOG flags 0 level 7 prefix "iptables denied: "5        7   788 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)num   pkts bytes target     prot opt in     out     source               destination         1       24  1524 DOCKER     all  --  *      docker0  0.0.0.0/0            0.0.0.0/0           2        0     0 ACCEPT     all  --  *      docker0  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED3       15 13320 ACCEPT     all  --  docker0 !docker0  0.0.0.0/0            0.0.0.0/0           4        0     0 ACCEPT     all  --  docker0 docker0  0.0.0.0/0            0.0.0.0/0           Chain OUTPUT (policy ACCEPT 204 packets, 21792 bytes)num   pkts bytes target     prot opt in     out     source               destination         Chain DOCKER (1 references)num   pkts bytes target     prot opt in     out     source               destination         1       24  1524 ACCEPT     tcp  --  !docker0 docker0  0.0.0.0/0            172.17.0.2           tcp dpt:80

سودو إيبتبلس-حفظ

# Generated by iptables-save v1.4.21 on Wed Apr  8 23:37:43 2015*filter:INPUT ACCEPT [0:0]:FORWARD ACCEPT [0:0]:OUTPUT ACCEPT [100:16642]:DOCKER - [0:0]-A INPUT -i lo -j ACCEPT-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7-A INPUT -j DROP-A FORWARD -o docker0 -j DOCKER-A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT-A FORWARD -i docker0 ! -o docker0 -j ACCEPT-A FORWARD -i docker0 -o docker0 -j ACCEPT-A DOCKER -d 172.17.0.2/32 ! -i docker0 -o docker0 -p tcp -m tcp --dport 80 -j ACCEPTCOMMIT# Completed on Wed Apr  8 23:37:43 2015# Generated by iptables-save v1.4.21 on Wed Apr  8 23:37:43 2015*nat:PREROUTING ACCEPT [13:2206]:INPUT ACCEPT [1:64]:OUTPUT ACCEPT [4:268]:POSTROUTING ACCEPT [4:268]:DOCKER - [0:0]-A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER-A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER-A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE-A POSTROUTING -s 172.17.0.2/32 -d 172.17.0.2/32 -p tcp -m tcp --dport 80 -j MASQUERADE-A DOCKER ! -i docker0 -p tcp -m tcp --dport 8080 -j DNAT --to-destination 172.17.0.2:80COMMIT# Completed on Wed Apr  8 23:37:43 2015

معلومات عامل الميناء

Containers: 1Images: 25Storage Driver: aufs Root Dir: /var/lib/docker/aufs Backing Filesystem: extfs Dirs: 27Execution Driver: native-0.2Kernel Version: 3.16.0-4-amd64Operating System: Debian GNU/Linux 8 (jessie)CPUs: 4Total Memory: 7.746 GiBName: nuc-001ID: WCMU:MN3T:VFKR:IU42:6423:OEI6:IB5Q:WBNV:K75H:JZDS:UWU5:57WDWARNING: No memory limit supportWARNING: No swap limit support

داخليا عامل الميناء يستخدم إيبتبلس لإعادة توجيه الاتصالات إلى المضيف عامل الميناء على المنفذ 8080 إلى خدمة الاستماع على المنفذ 80 على الحاوية. المفتاح في التكوين الخاص بك هو هذا الخط -

-A DOCKER ! -i docker0 -p tcp -m tcp --dport 8080 -j DNAT --to-destination 172.17.0.2:80

عن طريق إدخال (-I) خط أمامي جديد ، يمكنك منع الاتصالات من إعادة توجيهها إلى إب الحاوية ، في هذه الحالة 172.17.0.2. جرب هذه القاعدة -

/sbin/iptables -I FORWARD '!' -s 123.456.789.0 -d 172.17.0.2 -p tcp --dport 80 -j DROP

يمكنك ربط المنفذ بالجهاز المحلي. ثم عامل الميناء لن يعرض المنفذ إلى الخارج. (آي بي تي)

docker run -p 127.0.0.1:8080:8080 some_image

لم يكن لي ، ولكن أعتقد أن من فعل ذلك يعتقد أن هذا هو أكثر من سؤال سيرفيرفولت من سؤال البرمجة. ربما يكونون على حق ؛ قد ترغب في ترحيله.

يمكنك إظهار إخراج ‘إيبتبلس-حفظ’? أظن أن الطريقة التي يقوم بها عامل الميناء بترجمة المنفذ هي مع قاعدة إيبتبلس عبر حفلة تنكرية/ نات ، لكنني لا أعرف في الواقع

قد يشرح النازل?