मैं सोच रहा हूं कि क्या एक उत्तरदायी कार्य के दौरान कमांड लाइन कार्य में प्रमाण-पत्र (पासवर्ड, एपीआई कुंजी) भेजना सुरक्षित है?

रिमोट सर्वर पर किसी को भी कमांड लाइन (और इससे भी कम क्रेडेंशियल) नहीं देखनी चाहिए।

धन्यवाद।

0
Ardinis 13 अप्रैल 2017, 22:30

2 जवाब

सबसे बढ़िया उत्तर

यदि आप रिमोट सर्वर पर भरोसा नहीं कर रहे हैं - आपको कभी भी संवेदनशील क्रेडेंशियल्स को उजागर नहीं करना चाहिए, क्योंकि उस सर्वर पर रूट एक्सेस रखने वाला कोई भी व्यक्ति उस सर्वर पर आपके द्वारा आवंटित ट्रैफ़िक, फ़ाइलों और मेमोरी को आसानी से रोक सकता है। किसी के लिए आपको रहस्य प्राप्त करने का सबसे आसान तरीका अस्थायी फ़ाइलों को डंप करना होगा जो इसे दूरस्थ सर्वर पर काम करने के लिए बनाते हैं, क्योंकि इसके लिए केवल उस उपयोगकर्ता के विशेषाधिकारों की आवश्यकता होती है जिसे आप कनेक्ट कर रहे हैं!

समस्याओं का निवारण करने के लिए ANSIBLE_KEEP_REMOTE_FILES=1 नामक एक विशेष पर्यावरण चर का उपयोग किया जाता है। यह आपको इस बारे में एक विचार देना चाहिए कि दूरस्थ डिस्क पर वास्तव में कौन सी जानकारी संग्रहीत की जाती है, यहां तक ​​​​कि कुछ सेकंड के लिए भी। मैंने निष्पादित किया है

ANSIBLE_KEEP_REMOTE_FILES=1 ansible -m command -a "echo 'SUPER_SECRET_INFO'" -i 127.0.0.1, all

मेरी मशीन पर कमांड दूरस्थ मशीन पर बनाता है फ़ाइलों को देखने के लिए। इसके निष्पादन के बाद मुझे अपनी होम निर्देशिका में अस्थायी फ़ाइल दिखाई देती है, जिसका नाम ~/.ansible/tmp/ansible-tmp-1492114067.19-55553396244878/command.py है

तो चलिए गुप्त जानकारी निकालते हैं:

grep SUPER_SECRET ~/.ansible/tmp/ansible-tmp-1492114067.19-55553396244878/command.py

नतीजा:

ANSIBALLZ_PARAMS = '{"ANSIBLE_MODULE_ARGS": {"_ansible_version": "2.2.2.0", "_ansible_selinux_special_fs": ["फ्यूज", "nfs", "vboxsf", "ramfs"], "_ansible_no_log": झूठा, "_ansible_module_name" : "कमांड", "_raw_params": "इको \'SUPER_SECRET_INFO\'", "_ansible_verbosity": 0, "_ansible_syslog_facility": "LOG_USER", "_ansible_diff": false, "_ansible_debug": false, "_ansible_check_mode": false, "_ansible_check_mode" }'

जैसा कि आप देख सकते हैं - चुभती आँखों से कुछ भी सुरक्षित नहीं है! इसलिए यदि आप वास्तव में अपने रहस्यों के बारे में चिंतित हैं - संदिग्ध मेजबानों पर कुछ भी महत्वपूर्ण उपयोग न करें, इस समस्या को कम करने के लिए वन टाइम पासवर्ड, कुंजी या रद्द करने योग्य टोकन का उपयोग करें।

1
BMW 15 अप्रैल 2017, 01:12

यह इस बात पर निर्भर करता है कि आप इस साख के बारे में कितने पागल हैं। सामान्य तौर पर: नहीं, यह सुरक्षित नहीं है।

मुझे लगता है कि रिमोट होस्ट पर रूट उपयोगकर्ता कुछ भी देख सकता है।
उदाहरण के लिए, दूरस्थ होस्ट पर strace -f -p$(pidof -s sshd) चलाएं और ssh के माध्यम से किसी भी कमांड को निष्पादित करने का प्रयास करें।

डिफ़ॉल्ट रूप से Ansible दूरस्थ होस्ट पर syslog के लिए सभी आमंत्रणों को लिखता है, इससे बचने के लिए आप कार्य के लिए no_log: no सेट कर सकते हैं।

0
Konstantin Suvorov 13 अप्रैल 2017, 23:11