ডকার এবং শোরওয়াল


17

আমি ব্যবহার করছি Shorewall সহজ হিসাবে আমার সার্ভারে স্বতন্ত্র ফায়ারওয়াল এবং ব্যবহার করতে চান সেটি Docker পাশাপাশি।

ডকার কনটেইনার ব্যবহার করে এবং এর বন্দর পুনর্নির্দেশ ডকার তার নিজস্ব iptables নিয়ম / চেইন সেট করে যা শোরওয়াল পুনরায় চালু করা হলে নিহত হবে। সুতরাং ধারকটি অ্যাক্সেসযোগ্য হয়ে উঠবে ।

কি কেউ শোরওয়াল পুনরায় চালু হওয়ার পরে ডকার নিয়মগুলি সংরক্ষণ / পুনরুদ্ধার করতে সক্ষম হয়েছে বা কারও সাথে অন্য কোনও কাজ আছে?

আরো দেখুন:

উত্তর:


19

নিম্নলিখিত কনফিগারেশন পরিবর্তনগুলি ডকার এবং শোরওয়াল হোস্টের মধ্যে ট্র্যাফিক প্রবাহকে নিশ্চিত করা উচিত। শোরওয়াল ৪.৪.২.১-এ পরীক্ষিত কিন্তু সাম্প্রতিকতম সংস্করণগুলিতে প্রয়োগ করা উচিত:

/etc/shorewall/shorewall.conf

আইপি ফরওয়ার্ডিং সক্ষম হয়েছে কিনা তা নিশ্চিত করুন (বেশিরভাগ কনফিগার আইটেমগুলি হ্যাঁ / না হয় তবে এটি একটি "চালু"):

IP_FORWARDING=On

জন্য / etc / shorewall / masq

আপনার প্রাইভেট ডকার নেটওয়ার্কের জন্য মাস্ক্রেডিং (NAT) সক্ষম করুন (যদি আপনি কোনও আলাদা নেটওয়ার্ক ব্যবহার করেন, অর্থাত আপনি ডকারকে দিয়ে চালু করেন --bip=#.#.#.#/#, তবে সেই অনুযায়ী পরিবর্তন করুন)। eth0বাহ্যিক সংযোগ সহ হোস্ট মেশিনের যে কোনও ইন্টারফেসে পরিবর্তন করুন:

#INTERFACE:DEST         SOURCE
eth0                    172.17.0.0/16

জন্য / etc / shorewall / ইন্টারফেসগুলি

একটি ইন্টারফেস এন্ট্রি যুক্ত করুন যাতে শোরওয়াল dockজোনটি কোন ইন্টারফেসের সাথে সম্পর্কিত তা জানে :

#ZONE           INTERFACE               OPTIONS
dock            docker0

জন্য / etc / shorewall / অঞ্চল

একটি নতুন অঞ্চল তৈরি করুন; দ্রষ্টব্য, dockerখুব দীর্ঘ এবং একটি "অবৈধ অঞ্চল নাম" ত্রুটির সৃষ্টি করবে।

#ZONE   INTERFACE
dock    ipv4

জন্য / etc / shorewall / নীতি

আপনি সম্ভবত ডকারের পাত্রে হোস্ট মেশিন এবং ইন্টারনেটের সাথে কথা বলার অনুমতি দিতে চান , সুতরাং এটি একটি ভাল সূচনা পয়েন্ট:

#SOURCE         DEST            POLICY
# ...(other policies)...
dock            all             ACCEPT
# ...(other policies, catch-all)...

এছাড়াও আপনি একটি অনুরূপ প্রয়োজন হতে পারে ACCEPTথেকে ট্রাফিক এর জন্য পলিসি fwথেকে dockযদি আপনি ইতিমধ্যে এটি খুলুন করা হয়নি সঙ্গে, fwথেকে all

আপনি নীতিতে আরও জোরদার করতে পারেন বা প্রয়োজন অনুযায়ী ফাইলগুলিকে নিয়ম করুন । উদাহরণস্বরূপ, উপরেরগুলি বাহ্যিক ট্র্যাফিকগুলি আপনার ডকারের ধারকগুলিতে স্পষ্টভাবে মঞ্জুরি দেয় না; তার জন্য আপনার অন্যান্য অঞ্চল / নীতি / বিধিগুলি পরীক্ষা করে দেখুন।


1
IP_FORWARDING=Yesএবং IP_FORWARDING=Trueপাশাপাশি কাজ। আমার কাছে এটি বেশ কয়েকটি প্রোডাকশন রাউটারে রয়েছে তবে আপনার উত্তরটি আমার চেয়ে অনেক পরিষ্কার। মহান কাজ.
অ্যারন সি ডি ব্রুইন

আমার অজ্ঞতাটি ক্ষমা করুন - প্রদত্ত বিধিগুলি যোগ করার পরে আমি যখন শোরওয়ালটি পুনরায় চালু করি তখন আমি একটি সতর্কতা পেয়েছি যে ডকটি একটি "নিখরচায় ইন্টারফেস" ... এবং প্রকৃতপক্ষে, উপরের পড়াটি, আমার কাছে স্পষ্ট নয় যে কীভাবে শোরওয়াল তার মধ্যে সংযোগ স্থাপন করতে পারে? 172.17 ঠিকানা এবং অঞ্চলটি 'ডক' শোরওয়াল কীভাবে কাজ করে সে সম্পর্কে আমি কি স্পষ্ট কিছু অনুভব করছি?
জন ক্লিমেটস

এর জন্য দুঃখিত, আমি ইন্টারফেস ফাইলটিতে একটি পরিবর্তন মিস করলাম। আমি উত্তর সম্পাদনা করেছি, নতুন বিভাগ দেখুন /etc/shorewall/interfaces
fazy

ধন্যবাদ. হোস্টকে তার পাত্রে যোগ দেওয়ার জন্য এটি শোরওয়াল ৫ (যা ডকার-সচেতন) এর সাথেও ভালভাবে কাজ করছে।
ড্রসিল

মাস্ক সেটিংস অত্যন্ত গুরুত্বপূর্ণ, অন্যথায় একটি ডকার-ধারক একটি বাহ্যিক আইপি ব্যবহার করে অন্য ধারক অ্যাক্সেস করতে সক্ষম হবে না - এটি ব্লক হয়ে যাবে
ইউজান মেয়ার

6

যেহেতু ডকার তার নেটওয়ার্ক বিচ্ছিন্ন বৈশিষ্ট্যটি চালু করেছে, তাই আপনি এখানে কাস্টম নেটওয়ার্ক ব্যবহার করতে চাইলে এখানে উল্লিখিত অন্যান্য সমাধানগুলি এখন আর পর্যাপ্ত নয়। শোরওয়াল 5.0.6 ডকার নেটওয়ার্কগুলি সহ ডকারের জন্য সমর্থন প্রবর্তন করে। এই:

  • শোরওয়াল এবং ডকারকে কোনও ক্রমে শুরু / থামানো / পুনঃসূচনা করার অনুমতি দেয়
  • একটি এক্সটেনশন স্ক্রিপ্ট বজায় রাখার প্রয়োজনীয়তা এড়ায়

2

আমার বাক্সে স্রেফ এটি বের করা। নিশ্চিত করুন /etc/Sorewall.conf রয়েছে:

IP_FORWARDING=Yes

ডকার ফরওয়ার্ডিংয়ের উপর নির্ভর করে এবং আমি 'পুতুল' এটি আমার সমস্ত সার্ভারে 'না' তে সেট করে রেখেছি।

আপডেট: আপনার সম্ভবত আপনার WAN ইন্টারফেসটি ডকার থেকে আসা ট্র্যাফিককে মাস্ক্রেড করতে হবে।

সম্পাদনা করুন /etc/shorewall/masqএবং আপনার অনুরূপ একটি লাইন প্রয়োজন:

br0 172.17.0.0/12

এই ক্ষেত্রে, আমার WAN ইন্টারফেসটি আসলে br0 (একটি সেতু), তবে আপনার সম্ভবত এথ 0 এর মতো কিছু হবে। ( ifconfigআপনার ইন্টারফেস এবং তাদের আইপি ঠিকানাগুলি দেখতে ব্যবহার করুন )। আমার মেশিনে ডকার 172.17.0.0/24 ব্যবহার করে যা একটি আরএফসি 1918 ব্যক্তিগত ঠিকানা রেঞ্জ। এটি অন্যান্য সিস্টেমে পৃথক হতে পারে ifconfigতবে ইন্টারফেসটি সন্ধান করার জন্য আপনি আবার একবার ব্যবহার করে ব্যাপ্তিটি দেখতে পাচ্ছেন docker0


2

আপনি নিশ্চিত করতে পারেন যে ডকার রুলসেট পুনঃসূচনা DOCKERহওয়ার আগে চেইন সংরক্ষণ করে এমন এক্সটেনশান স্ক্রিপ্ট তৈরি করে একটি তীরে ওয়াল পুনরায় চালু থেকে বেঁচে আছে এবং তারপরে এটি আবার পুনরুদ্ধার করতে পারে। কীভাবে এটি করা যায় তার একটি উদাহরণ সহ আমি একটি পোস্ট রেখেছি, যদিও আমি নিশ্চিত যে এটি একমাত্র সম্ভাব্য পদ্ধতি থেকে অনেক দূরে।


0

চলমান ধারকগুলিকে প্রভাবিত না করে ডকার পরিষেবাটি আবার চালু করা যেতে পারে এবং ডকার নির্দিষ্ট নিয়মগুলি পুনরায় লোড করার জন্য শোরওয়াল পুনরায় চালু হওয়ার পরে চালানো যেতে পারে। স্পষ্টতই অল্প সময় আসবে যেখানে ধারকগুলিতে নেটওয়ার্কিং ব্যাহত হয়।

এটি আমার কয়েকটি আর্চলিনাক্স ইনস্টলের ক্ষেত্রে সত্য।


0

রিফ্রেশ অ্যাকশনটি iptable শুদ্ধ করে না তাই আপনি যদি নিয়ম বা নীতিগুলি সতেজ করতে চান তবে আপনি পুনরায় চালু করার পরিবর্তে রিফ্রেশ চালাতে পারেন:

sudo shorewall refresh

স্পষ্টতই, আপনার যদি সত্যই শোরওয়াল পুনরায় চালু করার দরকার হয় তবে সমস্যাটি এখনও থেকেই যায়। তারপরে, আপনাকে ডকার পুনরায় চালু করতে হবে এবং আপনার ধারকগুলি পুনরায় আপ করতে হবে।


0

একটি সম্ভাব্য বিকল্প হ'ল - নেট = হোস্ট বিকল্পের সাহায্যে ডকার চালানো, আইপি ফরওয়ার্ডিং এবং NAT ছাড়াই ধারক অ্যাপ্লিকেশন অ্যাক্সেস হোস্ট নেটওয়ার্কের অনুমতি দেওয়া।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.