अप्रभावित कंटेनर क्या है की तकनीकी व्याख्या काफी अच्छी है। हालाँकि, यह साधारण पीसी उपयोगकर्ता के लिए नहीं है। क्या एक सरल उत्तर है कि कब और क्यों लोगों को बिना पके हुए कंटेनरों का उपयोग करना चाहिए, और उनके लाभ और चढ़ाव क्या हैं?
अप्रभावित कंटेनर क्या है की तकनीकी व्याख्या काफी अच्छी है। हालाँकि, यह साधारण पीसी उपयोगकर्ता के लिए नहीं है। क्या एक सरल उत्तर है कि कब और क्यों लोगों को बिना पके हुए कंटेनरों का उपयोग करना चाहिए, और उनके लाभ और चढ़ाव क्या हैं?
जवाबों:
उत्पादन वातावरण में कंटेनरों को चलाने का सबसे सुरक्षित तरीका है अनप्राइवेटेड कंटेनर चलाना। जब सुरक्षा की बात आती है तो कंटेनरों को बुरा प्रचार मिलता है और इसका एक कारण यह है कि कुछ उपयोगकर्ताओं ने पाया है कि यदि किसी उपयोगकर्ता को कंटेनर में रूट मिलता है तो मेजबान पर भी रूट प्राप्त करने की संभावना है। मूल रूप से एक unprivileged कंटेनर क्या करता है, मेजबान से उपयोगकर्ता का मुखौटा है। अप्रभावित कंटेनरों के साथ, गैर रूट उपयोगकर्ता कंटेनर बना सकते हैं और कंटेनर में जड़ के रूप में दिखाई देंगे और दिखाई देंगे, लेकिन होस्ट पर उदाहरण के लिए उपयोगकर्ता के रूप में 10000 दिखाई देगा (जो भी आप उपयोगकर्ता के रूप में मैप करते हैं)। मैंने हाल ही में LXC पर स्टीफन ग्रेबर की ब्लॉग श्रृंखला (LXC के शानदार दिमाग / लीड डेवलपर्स में से एक और निश्चित रूप से अनुसरण करने के लिए) पर आधारित एक ब्लॉग पोस्ट लिखी । मैं फिर कहता हूं, बेहद शानदार।
मेरे ब्लॉग से:
कंटेनर से:
lxc-attach -n ubuntu-unprived
root@ubuntu-unprived:/# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 04:48 ? 00:00:00 /sbin/init
root 157 1 0 04:48 ? 00:00:00 upstart-udev-bridge --daemon
root 189 1 0 04:48 ? 00:00:00 /lib/systemd/systemd-udevd --daemon
root 244 1 0 04:48 ? 00:00:00 dhclient -1 -v -pf /run/dhclient.eth0.pid
syslog 290 1 0 04:48 ? 00:00:00 rsyslogd
root 343 1 0 04:48 tty4 00:00:00 /sbin/getty -8 38400 tty4
root 345 1 0 04:48 tty2 00:00:00 /sbin/getty -8 38400 tty2
root 346 1 0 04:48 tty3 00:00:00 /sbin/getty -8 38400 tty3
root 359 1 0 04:48 ? 00:00:00 cron
root 386 1 0 04:48 console 00:00:00 /sbin/getty -8 38400 console
root 389 1 0 04:48 tty1 00:00:00 /sbin/getty -8 38400 tty1
root 408 1 0 04:48 ? 00:00:00 upstart-socket-bridge --daemon
root 409 1 0 04:48 ? 00:00:00 upstart-file-bridge --daemon
root 431 0 0 05:06 ? 00:00:00 /bin/bash
root 434 431 0 05:06 ? 00:00:00 ps -ef
मेजबान से:
lxc-info -Ssip --name ubuntu-unprived
State: RUNNING
PID: 3104
IP: 10.1.0.107
CPU use: 2.27 seconds
BlkIO use: 680.00 KiB
Memory use: 7.24 MiB
Link: vethJ1Y7TG
TX bytes: 7.30 KiB
RX bytes: 46.21 KiB
Total bytes: 53.51 KiB
ps -ef | grep 3104
100000 3104 3067 0 Nov11 ? 00:00:00 /sbin/init
100000 3330 3104 0 Nov11 ? 00:00:00 upstart-udev-bridge --daemon
100000 3362 3104 0 Nov11 ? 00:00:00 /lib/systemd/systemd-udevd --daemon
100000 3417 3104 0 Nov11 ? 00:00:00 dhclient -1 -v -pf /run/dhclient.eth0.pid -lf /var/lib/dhcp/dhclient.eth0.leases eth0
100102 3463 3104 0 Nov11 ? 00:00:00 rsyslogd
100000 3516 3104 0 Nov11 pts/8 00:00:00 /sbin/getty -8 38400 tty4
100000 3518 3104 0 Nov11 pts/6 00:00:00 /sbin/getty -8 38400 tty2
100000 3519 3104 0 Nov11 pts/7 00:00:00 /sbin/getty -8 38400 tty3
100000 3532 3104 0 Nov11 ? 00:00:00 cron
100000 3559 3104 0 Nov11 pts/9 00:00:00 /sbin/getty -8 38400 console
100000 3562 3104 0 Nov11 pts/5 00:00:00 /sbin/getty -8 38400 tty1
100000 3581 3104 0 Nov11 ? 00:00:00 upstart-socket-bridge --daemon
100000 3582 3104 0 Nov11 ? 00:00:00 upstart-file-bridge --daemon
lxc 3780 1518 0 00:10 pts/4 00:00:00 grep --color=auto 3104
जैसा कि आप देख सकते हैं कि प्रक्रियाएं कंटेनर के अंदर रूट के रूप में चल रही हैं, लेकिन रूट के रूप में नहीं बल्कि मेजबान से 100000 के रूप में दिखाई दे रही हैं।
इसलिए योग करने के लिए: लाभ - सुरक्षा को जोड़ा गया और सुरक्षा के लिए अलगाव जोड़ा गया। डाउनसाइड - पहली बार में अपने सिर को चारों ओर लपेटने के लिए थोड़ा भ्रमित करना और नौसिखिए उपयोगकर्ता के लिए नहीं।
वे परीक्षण, सैंडबॉक्सिंग और इनकैप्सुलेशन के लिए बहुत मूल्यवान उपकरण हैं। एक वेबसर्वर चाहते हैं कि वह अपने काम के माहौल में सुरक्षित रूप से बंद हो, संवेदनशील निजी फाइलों तक पहुंचने में असमर्थ हो? एक कंटेनर का उपयोग करें। आपके पास एक ऐसा एप्लिकेशन है जिसमें लाइब्रेरी के पुराने संस्करणों और विशिष्ट कॉन्फ़िगरेशन फ़ाइलों की आवश्यकता होती है, जो अन्य अनुप्रयोगों के साथ असंगत है? एक कंटेनर भी। यह मूल रूप से चुरोट ने सही किया है। यह आपको सेवाओं को अलग-अलग बनाए रखने की अनुमति देता है, इसलिए उनमें से प्रत्येक को बनाए रखना बहुत आसान है, और उन्हें मौजूदा सिस्टम को परेशान किए बिना किसी अन्य मशीन में स्थानांतरित या कॉपी किया जा सकता है।
नकारात्मक पक्ष यह है कि आपको कंटेनर के लिए स्थानीय सब कुछ के लिए नाम स्थान को याद रखने की आवश्यकता है। आपको पता होना चाहिए कि आप कहां हैं, और कंटेनरों के बीच संचार तुच्छ नहीं है। यह एक अच्छा विचार है जब आपको प्रतिरूपकता की आवश्यकता होती है, लेकिन आभासी मशीनों के ओवरहेड नहीं चाहते हैं, और जो चीजें आप कंटेनर में रखते हैं वे वास्तव में बहुत अधिक संबंधित हैं।
"साधारण" उपयोगकर्ता के लिए, आप कंटेनर का उपयोग दो लोगों के लिए एक मशीन का उपयोग करने के लिए कर सकते हैं, जबकि वे पूरी तरह से अलग मशीनों पर हैं। उदाहरण के लिए रूममेट।
खैर, एक साझा कर्नेल के साथ, इसके बावजूद कुछ तरीकों से मुफ्त में तोड़ने के लिए विरोधी की आवश्यकताओं में वृद्धि हुई है (या इसके बजाय, यह हमले की सतह को सीमित करने में मदद करता है), अनपेक्षित कंटेनर अभी भी सीधे हैक से पूरी तरह से अलग नहीं होते हैं जो मेजबान रूट प्राप्त करते हैं, इसके बावजूद ।
उस कारण से, यह एक गलत धारणा / दावा है। यह कहते हुए कि, इंटरनेट पर कई उपयोगकर्ताओं में तकनीकी योग्यता का स्तर अभी भी inet सेवाएं चलाएगा, कई तरीकों से, जो वे वास्तव में तकनीकी रूप से सक्षम नहीं हैं, इसलिए हे। :)