একটি দলে এসএসএইচ কী পরিচালনার জন্য সেরা অনুশীলনগুলি কী কী?


42

আমি নীচের বৈশিষ্ট্যগুলি সহ ছোট দলগুলির (<10) বিকাশকারী এবং প্রশাসকদের সাথে কাজ করি:

  • দলের বেশিরভাগ সদস্যের> 1 টি ব্যক্তিগত কম্পিউটার রয়েছে, যার বেশিরভাগই বহনযোগ্য
  • টিম সদস্যদের 10-50 সার্ভারে অ্যাক্সেস থাকে, সাধারণত সুডো সহ

আমি মনে করি এটি বেশিরভাগ প্রারম্ভকালে এবং ছোট থেকে মাঝারি আকারের কর্পোরেট আইটি গ্রুপগুলির পক্ষে বেশ সাধারণ।

এই জাতীয় দলে এসএসএইচ কী পরিচালনার জন্য সেরা অনুশীলনগুলি কী কী?

আপনি কি পুরো দলের জন্য একটি একক চাবি ভাগ করা উচিত?

শেয়ার্ড অ্যাকাউন্টে প্রতিটি ব্যক্তির নিজস্ব কী থাকা উচিত (প্রতিটি সার্ভারে "উবুন্টু")?

অ্যাকাউন্ট আলাদা করবেন?

প্রতিটি দলের সদস্যকে তাদের প্রতিটি ল্যাপটপ বা ডেস্কটপ কম্পিউটারের জন্য আলাদা কী রাখতে হবে?

উত্তর:


33

আমার সংস্থায় আমরা সমস্ত মেশিনে একত্রে একাউন্টের সেট রাখতে LDAP ব্যবহার করি এবং তারপরে authorized_keysসমস্ত সার্ভারের মধ্যে প্রতিটি ব্যবহারকারীর জন্য ফাইল বিতরণ করতে একটি কনফিগারেশন ম্যানেজমেন্ট সরঞ্জাম (আমাদের ক্ষেত্রে বর্তমানে সিএফিনজিন) ব্যবহার করি। মূল ফাইলগুলি নিজেরাই (অন্যান্য সিস্টেম কনফিগারেশন তথ্যের সাথে) গিট সংগ্রহস্থলে রাখা হয় যাতে কীগুলি কখন আসে এবং যায় তা আমরা দেখতে পারি। সিএফেনিজিন এমন একটি sudoersফাইল বিতরণ করে যা নিয়ন্ত্রণ করে যে প্রতিটি হোস্টে রুট হিসাবে কী চালাতে অ্যাক্সেস রয়েছে, ব্যবহারকারী এবং এলডিএপি ডিরেক্টরি থেকে গ্রুপগুলি ব্যবহার করে।

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

আমাদের কাছে একটি বেসিক হোস্টও রয়েছে যা উত্পাদন নেটওয়ার্কে হোস্টগুলিকে অ্যাক্সেস করতে ব্যবহৃত হয়, যা আমাদের সেই নেটওয়ার্কের চারপাশে খুব সীমাবদ্ধ ফায়ারওয়াল নিয়ম করতে দেয়। বেশিরভাগ প্রকৌশলীদের এটিকে স্বচ্ছ করতে কিছু বিশেষ এসএসএইচ কনফিগারেশন রয়েছে:

Host prod-*.example.com
     User jsmith
     ForwardAgent yes
     ProxyCommand ssh -q bastion.example.com "nc %h %p"

একটি নতুন কী যুক্ত করা বা একটি পুরাতন মুছে ফেলার জন্য এই সেটআপটিতে কিছুটা অনুষ্ঠানের প্রয়োজন। আমি যুক্তি দিয়েছিলাম যে একটি নতুন কী যুক্ত করার জন্য এটি একটি অপারেশন হওয়া বাঞ্ছনীয় যা নিরীক্ষার পথ ছেড়ে দেয় এবং সবার কাছে দৃশ্যমান। যাইহোক, ওভারহেড জড়িত থাকার কারণে আমি মনে করি যে লোকেরা কখনও কখনও কোনও পুরানো কীটি যখন প্রয়োজন হয় না তখন এটি মুছে ফেলতে অবহেলা করে এবং কোনও কর্মচারী যখন সংস্থাটি ছেড়ে যায় তখন পরিষ্কার করার ব্যতীত আমাদের এটি অনুসরণ করার কোনও সত্যিকারের উপায় নেই। নতুন ইঞ্জিনিয়ারকে ऑन-বোর্ডিং করার সময় এটি কিছু অতিরিক্ত ঘর্ষণও তৈরি করে, যেহেতু তাদের জন্য একটি নতুন কী তৈরি করা দরকার এবং তারা পুরোপুরি উত্পাদনশীল হওয়ার আগে এটি সমস্ত হোস্টের সামনে ফেলে দেওয়া হয়েছে।

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

এই সেটআপের অধীনে স্বয়ংক্রিয় সিস্টেমগুলি যা প্রোডাকশন হোস্টের বিরুদ্ধে ব্যবস্থা গ্রহণ করে, তা তাদের বিরক্তিকর, যেহেতু তাদের "সুপরিচিত" এসএসএইচ কীগুলি বিকল্প অ্যাক্সেসের পথ হিসাবে কাজ করতে পারে। এখনও অবধি আমরা এই স্বয়ংক্রিয় সিস্টেমগুলির ব্যবহারকারীর অ্যাকাউন্টগুলিতে কেবলমাত্র তাদের কাজ করার জন্য প্রয়োজনীয় ন্যূনতম অ্যাক্সেস পেয়েছি এবং স্বীকার করেছি যে কোনও দূষিত ব্যবহারকারী (যা ইতিমধ্যে উত্পাদন অ্যাক্সেস সহ প্রকৌশলী হতে হবে) সেগুলি একই কাজগুলিও করতে পারে আধা- বেনামে অ্যাপ্লিকেশন কী ব্যবহার করে।


এটি সত্যিই ভাল উত্তর! ফলো-আপ প্রশ্ন: আপনি .Authorised_keys বিতরণ করার জন্য cfengine ব্যবহার করেন। আপনি কি সরাসরি আপনার এলডিএপি সার্ভারে এসএসএইচ পাবলিক কীগুলি সংরক্ষণ করার কোনও উপায় অনুসন্ধান করেছেন? তাদের বেশিরভাগ ক্ষেত্রে প্যাচিং এসএসডি প্রয়োজন, যা ভঙ্গুর মনে হয়।
ইভান প্রোড্রমো

আমি শেফের সাথেও তেমন কিছু করেছি।
gWaldo

1
@ ইভানপ্রড্রোম আমি এলডিএপিতে এসএসএইচ পাবলিক কীগুলি স্থাপন করেছি, তবে এটি মূল্য নির্ধারণের তুলনায় অনেক বেশি ঝামেলা ছিল, আমাকে নিজেরাই আপ টু ডেট এসএসএইচ প্যাকেজ বজায় রাখতে হয়েছিল এবং এটি কয়েকটা এসএসএইচ দুর্বলতার সময়ে ছিল
ড্যানিয়েল লসন

1
সুডোর নিয়ম এবং এসএসএইচ কীগুলিও এলডিএপিতে রাখা যেতে পারে, এসএসএসডি এটি সেট আপ করতে ব্যবহার করা যেতে পারে। লিঙ্ক: sudo.ws/sudoers.ldap.man.html এবং access.redhat.com/knowledge/docs/en-US/Red_Hat_Enterprise_Linux/...
fuero

আমি আপনার ProxyCommand ssh -qবিট পছন্দ ! কখনই দেখেনি। আমি একটি ঘাঁটি সার্ভার স্থাপন করতে দ্বিধা বোধ করি তবে যদি এটি শেষ ব্যবহারকারীদের কাছে স্বচ্ছ হতে পারে তবে আমি তার পক্ষে সবই হতে পারি। ধন্যবাদ মার্টিন!
the0th

6

ব্যক্তিগতভাবে আমি কর্মীদের প্রত্যেক সদস্যের একটি ডেডিকেটেড এসএসই বাশান মেশিনে একটি কী রয়েছে যার উপর তাদের একটি বেসিক ব্যবহারকারী অ্যাকাউন্ট রয়েছে তার ধারণাটি পছন্দ করি। এই ব্যবহারকারীর অ্যাকাউন্টে 1 টি এসএস কী রয়েছে যা তাদের ব্যবহার করা প্রয়োজন এমন সমস্ত সার্ভারগুলিতে অ্যাক্সেস দেয়। (এই অন্যান্য সার্ভারগুলিকেও ফায়ারওয়াল করা উচিত তাই কেবল বেসশন মেশিন থেকে এসএসএস অ্যাক্সেস সক্ষম করা হয়)

তারপরে তাদের প্রতিদিনের কাজের মেশিন, ল্যাপটপ, ট্যাবলেট ইত্যাদিতে তারা তাদের নিজের বা একাধিক কীগুলির মধ্যে একটি কী রাখার নিজস্ব পছন্দ করতে পারেন।

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


5

আমার এমন পরিস্থিতি হয়েছিল যেখানে আমার 40 টি বিকাশকারীকে ~ 120 রিমোট গ্রাহক সার্ভারের একটি দলের জন্য এসএসএইচ কী অ্যাক্সেস সরবরাহ করতে হবে।

আমি বিকাশকারীদের একটি একক "জাম্প হোস্ট" এর মাধ্যমে সংযোগ করতে বাধ্য করে অ্যাক্সেস নিয়ন্ত্রণ করেছিলাম। এই হোস্ট থেকে, আমি ব্যক্তিগত / পাবলিক কী উত্পন্ন করেছি এবং তাদের গ্রাহক সার্ভারে ঠেলা দিয়েছি। বিকাশকারীদের যদি কোনও ল্যাপটপ থেকে অ্যাক্সেসের প্রয়োজন হয় তবে তারা তাদের স্থানীয় সিস্টেমে একই কীপায়ারটি ব্যবহার করতে পারেন।


2

আমি ব্যক্তিগতভাবে প্রতিটি ব্যবহারকারীর সাথে যাব তবে তাত্ক্ষণিকভাবে আপনার দায়বদ্ধতা থাকবে এবং আরও সহজেই বিধিনিষেধ নির্ধারণ করা হবে - আমি জানি না অন্যান্য লোকেরা কী মনে করেন?


2

আমি যে পদ্ধতিটি শুনেছি, কিন্তু নিজেকে ব্যবহার করি নি, তা প্রতিটি ব্যবহারকারীর জন্য একটি প্যাকেজ (উদাহরণস্বরূপ, .deb, .rpm) থাকে যা তাদের ssh পাবলিক কী কনফিগারেশন এবং সেইসাথে তারা কাস্টমাইজ করতে পছন্দ করে এমন কোনও ডটফিল ()। ,। প্রোফাইল, .vimrc ইত্যাদি)। এটি স্বাক্ষরিত এবং কোনও কোম্পানির ভাণ্ডারে সংরক্ষণ করা হয়। এই প্যাকেজটি ব্যবহারকারীর অ্যাকাউন্ট তৈরির জন্যও দায়ী হতে পারে, বা এটি অ্যাকাউন্ট তৈরি করতে অন্য কিছু পরিপূরক করতে পারে (সিফেনিজিন / পুতুল ইত্যাদি) বা এলডিএপি জাতীয় কেন্দ্রীয় লেখক সিস্টেম।

এই প্যাকেজগুলি আপনার পছন্দমতো যেকোন প্রক্রিয়া (সিফেনজিন / পুতুল ইত্যাদি, ক্রোন জব) এর মাধ্যমে হোস্টগুলিতে ইনস্টল করা হবে। একটি পদ্ধতির একটি মেটাপ্যাকেজ থাকা যা প্রতি ব্যবহারকারী প্যাকেজগুলির উপর নির্ভরশীলতা রয়েছে।

আপনি যদি কোনও সর্বজনীন কী মুছে ফেলতে চান তবে ব্যবহারকারী নয়, তবে প্রতি ব্যবহারকারী প্যাকেজ আপডেট হয় updated আপনি যদি কোনও ব্যবহারকারীকে সরাতে চান তবে আপনি প্যাকেজটি সরিয়ে ফেলবেন।

আপনার যদি ভিন্ন ভিন্ন সিস্টেম থাকে এবং .rpm এবং .deb ফাইল উভয়ই বজায় রাখতে হয় তবে আমি এটিকে কিছুটা বিরক্তিকর দেখতে পাচ্ছি, যদিও এলিয়েনের মতো সরঞ্জামগুলি এটিকে কিছুটা সহজ করে তুলতে পারে।

আমি যেমন বলি, আমি নিজে এটি করি নি। আমার কাছে এই পদ্ধতির সুবিধাটি হ'ল এটি একটি কেন্দ্রীয় এলডিএপি সিস্টেম এবং ব্যবহারকারীর অ্যাকাউন্টগুলির কেন্দ্রীয় পরিচালনার পরিপূরক, যাতে এটি কোনও ব্যবহারকারীকে তার .vimrc ফাইল অন্তর্ভুক্ত করার জন্য সহজেই তার প্যাকেজ আপডেট করতে দেয়, উদাহরণস্বরূপ, ফাইলটি পরিচালনা না করেই পুতুলের মতো সরঞ্জাম দ্বারা, যা ব্যবহারকারীর অ্যাক্সেস নাও পেতে পারে।


1

আপনার নিরাপদ রুট নেওয়া উচিত এবং প্রতিটি ব্যবহারকারীর পৃথক কী এবং সম্ভবত প্রতিটি ডিভাইসের জন্য বাধ্য করা উচিত।

আপনার কাছে যদি ছোট দল হয়ে থাকে তবে --- যদি আপনি একটি ছোট দল হয়ে থাকেন তবে কীগুলি প্রত্যাহার করা অন্য সবার অসুবিধা।

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


1

কয়েক বছর আগে Enর্ষা ল্যাবগুলি উন্নয়ন দলগুলির জন্য এই জাতীয় কিছু পরিচালনা করার জন্য কীমাস্টার (ক্লায়েন্ট গেটকিপারের সাথে অংশীদারিত্ব) নামে একটি সরঞ্জাম লিখেছিল।

এই প্রকল্পটির গত দু'বছর ধরে খুব বেশি ভালবাসা নেই, তবে সম্ভবত এটি এমন কিছু যা আপনি ঝুঁকি দিয়েছিলেন, এবং সম্ভবত জীবনে ফিরিয়ে আনতে পারেন?

রেপোটি গিথুবে উপলভ্য: https://github.com/envylabs/keymaster


-4

একটি অ্যাপ্রোচ এনএফএসের সাথে / হোম শেয়ারের সাথে এনআইএস সার্ভার স্থাপন করতে পারে। এটি সার্ভারে সুডোর সাথে একত্রিত হয়েছে এবং কেবলমাত্র ব্যবহারকারীদের ssh কনফিগারেশনের মাধ্যমে আপনি প্রতিটি সার্ভারে যেতে চান।

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

শুভেচ্ছা সহ,

রাফায়েল


1
1) এনআইএস সক্ষম করা একটি সুরক্ষা গর্ত। ২) একটি পাসওয়ার্ড এবং অ্যাকাউন্ট থাকা সন্ধানের এবং জবাবদিহিতার বিপরীত।
হরিণ হান্টার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.