ত্রি-পদক্ষেপের প্রমাণীকরণ?


9

আমি উবুন্টু ব্যবহার করছি

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

আমি উভয়েই স্বতন্ত্রভাবে কাজ করতে পেরেছি তবে কখনই তাদের একসাথে কাজ করতে সক্ষম হতে পারি নি। আমি নিশ্চিত যদিও একরকম এটি সম্ভব।

ধন্যবাদ।


সাধারণত আপনি সদৃশ কারণের মাধ্যমে খুব বেশি লাভ করেন না। একটি শংসাপত্র এবং কোড জেনারেটর 'আপনার কিছু আছে' ফ্যাক্টরটি ফিট করে। একটি পাসওয়ার্ড 'আপনি জানেন এমন কিছু' ফিট করে। অন্যান্য সাধারণ উপাদানটি হ'ল 'আপনি কিছু হ'ল' (বায়োমেট্রিক্স)।
জোরডাচ

উত্তর:


8

একসাথে পিএএম মডিউলগুলি শৃঙ্খলাবদ্ধ করে এটি করা সম্ভব। তবে আমি কোনও বিশদে যাওয়ার আগে:

ভুলভাবে PAM কনফিগার করা আপনার সিস্টেমে লগইন করতে বাধা দিতে পারে W

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

যাই হোক, এটা পিছনে ধারণা এটি নিশ্চিত করতে যে সারিবদ্ধ পিএএম মডিউল ব্যবহার করা সম্ভব হয় pam-google-authenticator, pam_unix(এই চেক আপনার পাসওয়ার্ড) এবং সার্টিফিকেট মডিউল আপনাকে অ্যাক্সেসের মঞ্জুরি দিতে সফল করতে হবে। ডিফল্টরূপে, পিএএম কনফিগার করা হয়েছে যে কোনও প্রমাণীকরণ মডিউল আপনাকে প্রমাণীকরণের অনুমতি দেয়, অন্যদের এড়িয়ে চলে।

/Etc/pam.d/common-auth এ, আপনি উপরের কাছাকাছি একটি লাইন দেখতে পাবেন যা নীচের মত দেখাচ্ছে:

auth    [success=2 default=ignore]  pam_unix.so nullok_secure try_first_pass

এটি পামকে জানিয়েছে যে pam_unix.soসফল হওয়া উচিত , এটি পরবর্তী দুটি নিয়ম (যা সাধারণত অন্য প্রমাণীকরণ মডিউল এবং তারপরে pam_deny.so) এড়িয়ে যায় এবং alচ্ছিক মডিউলগুলিতে এগিয়ে যায়। যাইহোক, মডিউলটি যদি ব্যর্থ হয় তবে তা উপেক্ষা করা হবে এবং নিয়ন্ত্রণটি চেইনের পরবর্তী মডিউলে চলে যাবে। এটি প্রতিটি প্রমাণীকরণের মডিউল অবিরত অবিরত অবধি অবধি অবধি অবধি চালু থাকে না যে পর্যন্ত না হয় কন্ট্রোলটি alচ্ছিক ব্লকে চলে যায়, বা PAM পাম_ডেনি.কে আঘাত করে এবং ঠিক সেখানে ব্যর্থ হয়।

এই নিশ্চিত করার leveraged যাবে pam-google-authenticator, pam_unix.soএবং আপনার শংসাপত্র পিএএম মডিউল আপনাকে অ্যাক্সেসের মঞ্জুরি দিতে সফল করতে হবে। আমি গুগল প্রমাণীকরণকারী মডিউল বা আপনি যে শংসাপত্রের মডিউলটি ব্যবহার করছেন তার নাম জানি না, তবে আপনার সেগুলি আপনার সাধারণ-প্রমাণীকরণের ফাইলটিতে সন্ধান করতে সক্ষম হওয়া উচিত। সুতরাং শীর্ষে এই জাতীয় কিছু রেখে:

auth    requisite   pam_unix.so nullok_secure
auth    requisite   pam_google_authenticator.so
auth    requisite   pam_certificate_auth.so
auth    [success=<n>]   pam_permit.so

<n>এখানে pam_permit.so মডিউল এবং পরবর্তী মডিউলগুলির মধ্যে মডিউলগুলির সংখ্যার সাথে প্রতিস্থাপন করা pam_permit.so- অন্য কথায় এটি শীর্ষস্থানীয় লেখক মডিউলের [সাফল্য = এন ডিফল্ট = উপেক্ষা করুন] কোড + 1 তে সেট করা উচিত This এই বাক্য গঠনটি খানিকটা মজার , তবে উপরোক্ত মডিউলগুলি সাফল্যের পরে মূলত অ্যাথ মডিউলগুলি এড়িয়ে যায়।

অবশ্যই, আপনি কীভাবে কেবল আপনার ব্যবহারকারী অ্যাকাউন্টে এই তিন-পদক্ষেপের প্রমাণীকরণকে সীমাবদ্ধ করবেন তা ভাবতে পারেন। এটি একটি pam_succeed_if.soমডিউল দিয়ে সম্পন্ন করা যেতে পারে এবং উপরে বর্ণিত তিন-ধাপের লেখক ব্লকের উপরে সন্নিবেশ করা উচিত:

auth    [success=ignore default=4]  pam_succeed_if.so user = <username>

যেখানে <username>আপনার ব্যবহারকারীর নাম দ্বারা প্রতিস্থাপন করা হয়। এই লাইনটি সহজভাবে বলেছে যে পাম_সুসিড_আইফ.সেই সফল হওয়া উচিত (ওরফে আপনার ব্যবহারকারী নামটি সেই লাইনের সাথে ব্যবহারকারীর সাথে মেলে) তবে পামের পরবর্তী মডিউলগুলি নিয়ে এগিয়ে যাওয়া উচিত, যা তিন ধাপের লেখার মডিউল। অন্যথায়, পিএএমের আসল মডিউলগুলিতে ঝাঁপ দেওয়া উচিত, যা এটির থেকে 4 মডিউল দূরে।

একাধিক জিনিস মেলাতে উদাহরণস্বরূপ একটি নির্দিষ্ট ব্যবহারকারীর নাম সহ একটি গোষ্ঠীর সদস্যতার জন্য, একাধিক লাইন অবশ্যই ব্যবহার করা উচিত, উদাহরণস্বরূপ:

auth    [success=1 default=ignore]  pam_succeed_if.so user = <username>
auth    [success=ignore default=4]  pam_succeed_if.so user ingroup <group>

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

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

pam_succeed_if.soমডিউলটির সম্পূর্ণ ডকুমেন্টেশনগুলি http://linux.die.net/man/8/pam_succeed_if এ পাওয়া যাবে


দুর্দান্ত উত্তর! আমি যদি একাধিকবার এটি উত্সাহ দিতে পারতাম তবে আমি করতাম।
অ্যারন মিলার

ধন্যবাদ! যদিও - শংসাপত্র লগইনের জন্য আমি আমার পাবলিক কীটি .ssh / অনুমোদিত_keys (sshd_config- এ আরএসএএথেন্টিকেশন এবং পাবকিআউটেনটিকেশন সেটিংস ব্যবহার করে) এবং ওটিপি কোডের জন্য আমি পাম_গ্লগ_আউটিক্যান্টিকর - google-authenticator.googlecode.com/hg ব্যবহার করছি । সুতরাং কিভাবে যে কাজ করবে?
জেসি ডাব্লু

@ জেসব্লিউ এই কাজ করার জন্য আপনাকে পিএএম পাশাপাশি একটি পাবলিক কী ব্যবহার করতে এসএসএইচডি সেট করতে হবে। যদিও আমি নির্দিষ্ট বিষয়ে নিশ্চিত নই, আপনাকে অবশ্যই অবশ্যই সেট করতে হবে ChallengeResponseAuthenticationএবং UsePAM'হ্যাঁ' করতে হবে, তারপরে আমার উত্তরটিতে বিস্তারিত রেখাগুলি /etc/pam.d/sshd বা /etc/pam.d/common এ সেট করুন -উথ, আপনি যদি সমস্ত লগইনগুলির জন্য এটি সম্পাদন করতে চান বা কেবল এসএসএইচ করতে চান তার উপর নির্ভরশীল। 'পাম_সেসিটারিটি_আউথ.সো' ফিলার লাইনটি সরিয়ে ফেলুন এবং ফলস্বরূপ [সাফল্য = <n> লাইনটি পরিবর্তন করুন।
জেনোপ্যাথিক

2

আমি এই পোস্টটি পড়েছি এবং ভেবেছিলাম এটি দুর্দান্ত লাগছে - আমি এখানে কাজ করার জন্য ত্রি-গুণক প্রমাণীকরণ পেয়েছি। আমি এটি সম্পর্কে একটি ব্লগ পোস্ট এখানে লিখেছিলাম ।

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

/ Etc / ssh / sshd_conf থেকে

PubkeyAuthentication yes
ChallengeResponseAuthentication yes
PasswordAuthentication no
UsePAM yes
AuthenticationMethods publickey,keyboard-interactive

1

আপনাকে কেবল আপনার /etc/pam.d/sshd শীর্ষে যোগ করতে হবে পাবকি + গুগলঅথ

#auth    requisite    pam_unix.so nullok_secure #if you want password, too :)
auth    requisite    pam_google_authenticator.so
auth    [success=2]  pam_permit.so

আমি ধরে নিলাম আপনার কাছে OpenSSH> = 6.2 এবং sshd_config সম্পাদিত আছে

আরও ভৌতিক সুরক্ষার জন্য কিছু অতিরিক্ত কনফিগার যুক্ত করুন: ডি

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.