আমি এসএসএইচ অ্যাক্সেস পরিচালনার জন্য নীচের সেটআপটি পছন্দ করি, যা আমি সার্ভারের ছোট ছোট বহরে ব্যবহারকারীদের একটি গ্রুপকে পরিচালনা করতে কাজে ব্যবহার করি। আমার অগ্রাধিকারের তালিকায় সুরক্ষা এবং পরিচালনার স্বাচ্ছন্দ্য বেশি।
এর মূল বৈশিষ্ট্যগুলি ইউনিক্স গ্রুপের সদস্যতার মাধ্যমে এসএসএইচ অধিকারগুলি সহজেই পরিচালনা করা, কঠোরভাবে সংজ্ঞায়িত অনুমতি থাকা এবং ডিফল্টরূপে সুরক্ষিত হওয়া।
ঠিককরা
সফ্টওয়্যার ইনস্টল করুন (butচ্ছিক তবে দরকারী):
yum install members # or apt install members
গোষ্ঠী যুক্ত করুন:
addgroup --system allowssh
addgroup --system sftponly
ইন /etc/ssh/sshd_config, সেটিংসের নীচে নিম্নলিখিতগুলি নিশ্চিত করুন No:
PermitRootLogin no
PubkeyAuthentication no
PasswordAuthentication no
এবং শেষে /etc/ssh/sshd_config, এই দুটি স্তম্ভ যুক্ত করুন:
Match Group allowssh
PubkeyAuthentication yes
Match Group sftponly
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
(ফাইল সম্পাদনা করার পরে এসএসএইচ পুনরায় চালু করতে ভুলবেন না)
ব্যাখ্যা
তো, এই সব কি করে?
- এটি অতিরিক্ত সুরক্ষার ব্যবস্থা হিসাবে সর্বদা রুট লগইন অক্ষম করে।
- এটি সর্বদা পাসওয়ার্ড-ভিত্তিক লগইনগুলি অক্ষম করে (sshd চলমান সার্ভারগুলির জন্য দুর্বল পাসওয়ার্ডগুলি একটি বড় ঝুঁকি)।
- এটি কেবলমাত্র
allowsshগ্রুপের ব্যবহারকারীদের জন্য (পাবকি) লগইন করতে দেয় ।
sftponlyগ্রুপের ব্যবহারকারীরা এসএসএইচ-এর মাধ্যমে শেল পেতে পারবেন না, কেবল এসএফটিপি।
কাদের অ্যাক্সেস রয়েছে তা পরিচালনা করার পরে কেবল গ্রুপ সদস্যতার ব্যবস্থাপনার মাধ্যমে করা হয় (এই পরিবর্তনগুলি তত্ক্ষণাত্ কার্যকর হয়, এসএসএইচ পুনরায় আরম্ভের প্রয়োজন হয় না):
# adduser marcelm allowssh
# members allowssh
marcelm
# deluser marcelm allowssh
# members allowssh
#
মনে রাখবেন যে আপনার এসএফটিপি ব্যবহারকারীদের উভয় সদস্যের sftponly(তারা শেলটি পাবেন না তা নিশ্চিত করার জন্য), এবং allowssh(প্রথম স্থানে লগইন করার অনুমতি দেওয়ার) জন্য সদস্য হওয়া দরকার।
আরো তথ্য
দয়া করে নোট করুন যে এই কনফিগারেশনটি পাসওয়ার্ড লগইনগুলিকে অনুমতি দেয় না ; সমস্ত অ্যাকাউন্ট প্রয়োজন সর্বজনীন কী প্রমাণীকরণ ব্যবহার করা । এটি সম্ভবত এসএসএইচ-এর সাথে পাওয়া একমাত্র বৃহত্তম সুরক্ষা জয়, তাই আমি যুক্তি দিয়েছি যে আপনি এখনই শুরু করতে হবে এমনকি এটি প্রচেষ্টা সার্থক।
আপনি কি সত্যিই এই না চান তাহলে, তারপর এছাড়াও যোগ PasswordAuthentication yesকরার Match Group allowsshস্তবক। এটি allowsshব্যবহারকারীর জন্য পাবকি এবং পাসওয়ার্ড উভয়ই অনুমোদন দেবে ।
এই কনফিগারেশনটি কোনও sftponlyব্যবহারকারীকে তাদের হোম ডিরেক্টরিতে সীমাবদ্ধ করে । আপনি যদি এটি না চান তবে ChrootDirectory %hনির্দেশটি সরিয়ে দিন ।
আপনি যদি ক্রুটিংয়ের কাজটি করতে চান তবে ব্যবহারকারীর হোম ডিরেক্টরি (এবং এটির উপরে যে কোনও ডিরেক্টরি) মালিকানাধীন তা গুরুত্বপূর্ণ importantroot:root এবং গ্রুপ / অন্যের দ্বারা লিখিতযোগ্য নয়। হোম ডিরেক্টরিতে সাব-ডাইরেক্টরিগুলি ব্যবহারকারীর মালিকানাধীন এবং / অথবা লিখনযোগ্য হতে পারে।
হ্যাঁ, ব্যবহারকারীর হোম ডিরেক্টরিটি অবশ্যই রুট-মালিকানাধীন এবং ব্যবহারকারীর কাছে অলিখনযোগ্য। দুঃখের বিষয়, এই সীমাবদ্ধতার জন্য ভাল কারণ রয়েছে । আপনার পরিস্থিতির উপর নির্ভর করে, ChrootDirectory /homeএকটি ভাল বিকল্প হতে পারে।
sftponlyব্যবহারকারীদের শেল সেট করা /sbin/nologinএই সমাধানের জন্য প্রয়োজনীয় বা ক্ষতিকারক নয়, কারণ এসএসএইচ ForceCommand internal-sftpব্যবহারকারীর শেলকে ওভাররাইড করে।
/sbin/nologinযদিও অন্য উপায়ে (শারীরিক কনসোল, সাম্বা, ইত্যাদি) মাধ্যমে তাদের লগ ইন করা বন্ধ করতে ব্যবহার করা সহায়ক হতে পারে।
এই সেটআপটি rootএসএসএইচে সরাসরি লগইনগুলিকে অনুমতি দেয় না ; এটি সুরক্ষার অতিরিক্ত স্তর তৈরি করে। আপনি কি সত্যিই যদি না সরাসরি রুট লগইন প্রয়োজন পরিবর্তন PermitRootLoginনির্দেশ। এটা পটভূমি বিবেচনা করুন forced-commands-only, prohibit-passwordএবং (শেষ উপায় হিসাবে) yes।
বোনাস পয়েন্টগুলির জন্য, কে কারা suরুট করতে পারে তা সীমাবদ্ধ করে দেখুন ; একটি সিস্টেম গ্রুপ নামক যোগ wheel, এবং সক্ষম যোগ / auth required pam_wheel.soএ /etc/pam.d/su।