আমার অবশ্যই স্বীকার করতে হবে যে আমি কিছু ক্ষেত্রে পাসওয়ার্ড ছাড়াই সার্ভার পছন্দ করি। একটি সাধারণ সার্ভার যার কাছে এতে শারীরিক অ্যাক্সেস রয়েছে তার পক্ষে দুর্বল। তাই কিছু ক্ষেত্রে এটি শারীরিকভাবে লক করা ব্যবহারিক এবং তারপরে যে কোনও শারীরিক অ্যাক্সেসকে বিশ্বাস করুন ।
মৌলিক ধারণা
তত্ত্ব অনুসারে, আমি যখন শারীরিকভাবে এই জাতীয় সার্ভারে পৌঁছে যাই, তখন আমাকে root
লগইন হিসাবে টাইপ করে পাসওয়ার্ড ছাড়াই প্রশাসনিক কার্য সম্পাদন করতে সক্ষম হওয়া উচিত এবং আমাকে পাসওয়ার্ডের জন্য জিজ্ঞাসা করা উচিত নয়। একই ব্যবহারকারীর অ্যাকাউন্টগুলিতে প্রয়োগ হতে পারে তবে তাদের বাস্তবিকভাবে কোনও শারীরিকভাবে অ্যাক্সেস করতে পারে না। সুতরাং (মাঝে মধ্যে) স্থানীয় অ্যাক্সেসের জন্য কোনও সিস্টেমের পাসওয়ার্ডের প্রয়োজন হয় না।
সার্ভারকে দূর থেকে অ্যাক্সেস করার সময় প্রশাসনের জন্য, বা ব্যবহারকারীর অ্যাকাউন্টের জন্য, আমি সর্বদা একটি এসএসএইচ ব্যক্তিগত কী ব্যবহার করার প্রত্যাশা করি। কেবলমাত্র তৈরি করা অ্যাকাউন্টের জন্য একটি এসএসএইচ কী স্থাপন করা খুব সহজ এবং এইভাবে (নিয়মিত) দূরবর্তী অ্যাক্সেসের জন্য কোনও সিস্টেম পাসওয়ার্ডের প্রয়োজন হয় না।
# user=...
#
# useradd -m "$user"
# sudo -i -u "$user"
$ keyurl=...
$
$ mkdir -p .ssh
$ curl -o .ssh/authorized_keys "$keyurl"
উপসংহারে, তাত্ত্বিকভাবে, আমরা এর মতো ব্যবহারের ক্ষেত্রে কোনও সিস্টেমের পাসওয়ার্ডের দরকার নেই। সুতরাং প্রশ্নটি হল, আমরা কীভাবে সিস্টেম এবং ব্যবহারকারী অ্যাকাউন্টগুলিকে এটি একটি সামঞ্জস্যপূর্ণ এবং সুরক্ষিত উপায়ে তৈরি করতে কনফিগার করব।
স্থানীয় অ্যাক্সেসের বিশদ
আমরা কীভাবে নিশ্চিত করব যে কোনও পাসওয়ার্ড ছাড়াই রুট অ্যাকাউন্টটি স্থানীয়ভাবে অ্যাক্সেস করা যায়? আমি মনে করি না যে আমরা এটি ব্যবহার করতে পারি passwd -d
যা এর ফলে রুট অ্যাক্সেসকে খুব অনুমতি দেওয়া হবে এবং একটি অনিবদ্ধ ব্যবহারকারী বিনা মূল্যে রুটে যেতে পারেন , যা ভুল। passwd -l
এটি আমাদের লগ ইন করা থেকে বাধা দেওয়ার কারণে আমরা ব্যবহার করতে পারি না ।
দ্রষ্টব্য যে স্থানীয় অ্যাক্সেস কেবল স্থানীয় কীবোর্ড ব্যবহারের অ্যাক্সেস সম্পর্কে। অতএব একটি বৈধ সমাধান অবশ্যই কোনও ব্যবহারকারীর স্যুইচিং (ব্যবহার করা su
বা নাও sudo
) মঞ্জুরি দেয় না ।
রিমোট অ্যাক্সেসের বিশদ
সাম্প্রতিক অবধি উপরের সমাধানটি কাজ করবে তবে এখন এসএসএইচ লক ব্যবহারকারীদের অ্যাকাউন্টগুলি পরীক্ষা করতে শুরু করেছে। আমরা সম্ভবত passwd -d
একই কারণে ব্যবহার করতে পারি না । আমরা passwd -u
এটি ব্যবহার করতে পারি না কারণ এটি কেবল অভিযোগ করে যে এটি যা করে তার দিকে পরিচালিত passwd -d
করে।
এই অংশটির জন্য ডামি পাসওয়ার্ড সহ একটি চুক্তি রয়েছে।
user=...
echo -ne "$user:`pwgen 16`\n" | chpasswd
সম্পূর্ণ এসএসএইচে লক করা অ্যাকাউন্ট চেকিং বন্ধ করাও সম্ভব হতে পারে তবে লক করা অ্যাকাউন্টগুলির সমর্থন ধরে রাখা এবং সেগুলি আনলক করতে সক্ষম হওয়া ভাল।
চূড়ান্ত নোট
আমি যা আগ্রহী তা হ'ল এমন একটি সমাধান যা আপনাকে স্থানীয়ভাবে রুট অ্যাকাউন্টে এবং কোনও পাসওয়ার্ড ছাড়াই দূরবর্তীভাবে রুট সহ সমস্ত অ্যাকাউন্টগুলিতে লগ ইন করতে দেয়। অন্যদিকে, কোনও সমাধান অবশ্যই স্পষ্টভাবে বর্ণিত উপায়ে ব্যতীত সুরক্ষাকে প্রভাবিত করবে না, বিশেষত দূরবর্তী ব্যবহারকারীদের রুট অ্যাকাউন্ট বা অন্যান্য ব্যবহারকারীর অ্যাকাউন্টে অ্যাক্সেস না দিয়ে। সমাধানটি পর্যাপ্ত শক্তিশালী হওয়া উচিত যাতে এটি অপ্রত্যক্ষভাবে সুরক্ষা সমস্যার কারণ না ঘটে।
একটি গৃহীত এবং পুরষ্কার প্রাপ্ত উত্তর পৃথক সরঞ্জামগুলির বিশদ কনফিগারেশন বর্ণনা করতে পারে বা নাও করতে পারে তবে বর্ণিত লক্ষ্যে পৌঁছানোর জন্য মূল পয়েন্ট থাকতে হবে। নোট যে এই সম্ভবত মত সরঞ্জাম প্রচলিত ব্যবহারের মাধ্যমে সমাধান করা যায় না passwd
, ssh
, su
, sudo
কথা বলা ইত্যাদি।
প্রথম উত্তরগুলি পড়ার পরে আরও ধারণা
কেবল একটি ধারণা - স্থানীয় রুট অ্যাক্সেস লগইন প্রক্রিয়াগুলির পরিবর্তে রুট শেল শুরু করে অর্জন করা যেতে পারে। তবে এখনও কেবল পাসওয়ার্ড প্রমাণীকরণ লক করার প্রয়োজন আছে, পাবলিক কী প্রমাণীকরণ নয়।