मेरा लक्ष्य सिर्फ कुछ सार्वजनिक आईपी पतों के लिए डॉकटर कंटेनरों तक पहुंच को सीमित करना है। क्या मेरे लक्ष्य को पूरा करने के लिए एक सरल, दोहराने योग्य प्रक्रिया है? डॉकर के डिफ़ॉल्ट विकल्पों का उपयोग करते समय केवल iptables की मूल बातें समझना, मुझे बहुत मुश्किल लग रहा है।
मैं एक कंटेनर चलाना चाहता हूं, इसे सार्वजनिक इंटरनेट पर दृश्यमान बना सकता हूं, लेकिन केवल चयनित होस्ट से कनेक्शन की अनुमति देता हूं। मैं REJECT की डिफ़ॉल्ट INPUT नीति सेट करने की अपेक्षा करूंगा और उसके बाद ही अपने मेजबानों से कनेक्शन की अनुमति दूंगा। लेकिन डॉकर के NAT नियम और श्रृंखलाएं रास्ते में आती हैं और मेरे INPUT नियमों की अनदेखी की जाती है।
क्या कोई व्यक्ति इस बात का उदाहरण दे सकता है कि निम्नलिखित मान्यताओं को देखते हुए मेरे लक्ष्य को कैसे पूरा किया जाए?
- Eth0 पर सार्वजनिक आईपी 80.80.80.80 होस्ट करें
- Eth1 पर निजी IP 192.168.1.10 होस्ट करें
docker run -d -p 3306:3306 mysql
- मेजबान 4.4.4.4 और 8.8.8.8 को छोड़कर होस्ट / कंटेनर 3306 के सभी कनेक्शन को अवरुद्ध करें
मुझे कंटेनर को केवल स्थानीय आईपी पते से बांधने में खुशी हो रही है, लेकिन यह सुनिश्चित करने के लिए निर्देशों की आवश्यकता होगी कि कैसे iptables को नियमों को ठीक से स्थापित करने के लिए जो डॉक प्रक्रिया और होस्ट पुनरारंभ हो।
धन्यवाद!
--ctdir
? मैं उपयोग करता हूं-m conntrack --ctstate NEW --ctorigdstport 3306 --ctdir ORIGINAL