ক্লাউড সার্ভারে পাসওয়ার্ডহীন `sudo` সেট আপ করা কি ঠিক আছে?


58

আমি কীগুলির মাধ্যমে সার্ভার অ্যাক্সেস করার ধারণাটি পছন্দ করি, যাতে প্রতিবার sshবাক্সে আমার পাসওয়ার্ডটি টাইপ করতে না হয় , এমনকি আমি আমার ব্যবহারকারীর (নয় root) পাসওয়ার্ডও লক করে রাখি ( passwd -l usernameতাই) কী না থাকলে লগ ইন করা অসম্ভব

sudoকমান্ডের জন্য যদি আমার পাসওয়ার্ড প্রবেশ করতে হয় তবে এই সমস্ত বিরতি । সুতরাং আমি পাসওয়ার্ডহীন লগইনের সাথে জিনিসগুলিতে পাসওয়ার্ডহীনsudo সেট আপ করতে প্রলুব্ধ হই ted

যাইহোক, আমি একটি অন্ত্র অনুভূতি বজায় রাখছি যে এটি আমার উপর কিছু অপ্রত্যাশিতভাবে আগুন লাগতে পারে, এটি কেবল কোনওরকম নিরাপত্তাহীন বলে মনে হয়। এই ধরনের সেট আপ সঙ্গে কোন সতর্কতা আছে? আপনি কি কোনও সার্ভারে ব্যবহারকারীর অ্যাকাউন্টের জন্য এটি করার পরামর্শ / পরামর্শ দিবেন না?

ব্যাখ্যা

  1. আমি এখানে sudoএকটি ইন্টারেক্টিভ ব্যবহারকারী সেশনে ব্যবহারের কথা বলছি , পরিষেবা বা প্রশাসনিক স্ক্রিপ্টগুলির জন্য নয়
  2. আমি ক্লাউড সার্ভার ব্যবহার করার বিষয়ে কথা বলছি (সুতরাং কোনও মেশিনে আমার কোনও শারীরিক স্থানীয় অ্যাক্সেস নেই এবং কেবলমাত্র দূরবর্তীভাবে লগইন করতে পারি)
  3. আমি জানি যে sudoএর একটি টাইমআউট হয়েছে যার সময় আমাকে আমার পাসওয়ার্ডটি পুনরায় প্রবেশ করতে হবে না। তবে আমার কনসার্টটি শারীরিকভাবে একটি পাসওয়ার্ড টাইপ করার জন্য অতিরিক্ত সময় নষ্ট করার বিষয়ে নয়। যদিও আমার ধারণাটি ছিল যে কোনও পাসওয়ার্ডকে মোটেও ডিল করতে হবে না, কারণ আমি ধরে নিই যে:
    • যদি আমি এটিকে কিছুটা মুখস্থ করতে পারি তবে সুরক্ষিত বা পুনঃব্যবহার করা খুব কমই
    • আমি যদি আমার দূরবর্তী অ্যাকাউন্টের জন্য একটি দীর্ঘ এবং অনন্য পাসওয়ার্ড তৈরি করি তবে আমাকে এটি অন্য কোথাও (একটি স্থানীয় পাসওয়ার্ড ম্যানেজার প্রোগ্রাম বা একটি ক্লাউড পরিষেবা) সংরক্ষণ করতে হবে এবং প্রতিবার ব্যবহার করতে চাইলে এটি আনতে হবে sudo। আমি আশা করি আমি তা এড়াতে পারব।

সুতরাং এই প্রশ্নের সাহায্যে আমি অন্যগুলির তুলনায় একটি সম্ভাব্য কনফিগারেশনের ঝুঁকি, ক্যাভেটস এবং ট্রেড অফগুলি আরও ভালভাবে বুঝতে চেয়েছিলাম।

অনুসরণ করুন 1

সমস্ত উত্তর বলে যে পাসওয়ার্ডহীন sudoনিরাপত্তাহীন, কারণ এটি যদি আমার ব্যক্তিগত ব্যবহারকারীর অ্যাকাউন্টে আপস করে তবে সুবিধাগুলি "সহজ" বাড়ানোর অনুমতি দেয়। আমি বুঝতে পারি যে. তবে অন্যদিকে, আমি যদি কোনও পাসওয়ার্ড ব্যবহার করি তবে আমরা পাসওয়ার্ড সহ সমস্ত ক্লাসিক ঝুঁকি নিয়ে থাকি (খুব সংক্ষিপ্ত বা সাধারণ স্ট্রিং, বিভিন্ন পরিষেবা জুড়ে পুনরাবৃত্তি করা ইত্যাদি)। তবে আমি অনুমান করি যে আমি যদি পাসওয়ার্ড প্রমাণীকরণটি অক্ষম করে রাখি /etc/ssh/sshd_configযাতে আপনার এখনও লগ ইন করতে একটি চাবি থাকতে হয় তবে আমি sudoটাইপ করা সহজতর জন্য একটি সহজ পাসওয়ার্ড ব্যবহার করতে পারি ? এটি কি বৈধ কৌশল?

অনুসরণ করুন 2

আমার কাছে rootযদি এসএসএসের মাধ্যমে লগ ইন করার কী থাকে তবে যদি কেউ আমার কম্পিউটারে অ্যাক্সেস পান এবং আমার কীগুলি চুরি করে (তারা এখনও ওএস'র কীরিং পাসওয়ার্ড দ্বারা সুরক্ষিত আছে!), তারাও rootঅ্যাকাউন্টে সরাসরি অ্যাক্সেস পেতে পারে , sudoপথকে বাইপাস করে । rootঅ্যাকাউন্টটি অ্যাক্সেস করার জন্য নীতিটি কী হওয়া উচিত ?


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

দয়া করে আমার ফলো-আপ প্রশ্নগুলি দেখুন
দিমিত্রি পশকভিচ

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

@ স্নেকডোক ধন্যবাদ, এটি এমন এক ধরণের জবাব যা আমি প্রত্যাশা করছিলাম। একটি বিস্তারিত উত্তর লিখতে যত্ন? আমি শিখতে খুশি!
দিমিত্রি পস্কেভিচ

2
@EEAA এটি লিনাক্সে আসলে বেশ সহজ। Sudo- তে পাসওয়ার্ডবিহীন থাকার একমাত্র অ্যাকাউন্টগুলি হ'ল সিস্টেম অ্যাকাউন্ট যা কোনও লগইন করতে পারে না এবং সেই কারণে সেই অ্যাকাউন্টে উন্নীত করতে পারে না এবং সেই অনুমতিগুলি আপনার বিরুদ্ধে ব্যবহার করতে পারে না। অ্যাকাউন্টের জন্য বোগাস শেল /etc/passwdযেমন নোলোগিন সেট করুন, কোনও পাসওয়ার্ড সেট না করুন এবং তারপরে ভিসুডোতে পাসওয়ার্ডহীন সেট করুন। আপনি যদি এটি করেন তবে আপনার অবশ্যই নিশ্চিত করা উচিত যে সিস্টেম অ্যাকাউন্টটি একেবারে প্রয়োজন কেবলমাত্র ভিজুডো সেটিংটি, এটি এটিকে চালিত হওয়া কেবলমাত্র আদেশে লক করে রাখুন।
স্নেকডোক

উত্তর:


48

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

আপনি পাসওয়ার্ড-ভিত্তিক লগইনগুলি ভুল উপায়ে অক্ষম করতে চলেছেন। ব্যবহারকারীর অ্যাকাউন্ট লক করার পরিবর্তে PasswordAuthentication noআপনার মধ্যে সেট করুন /etc/ssh/sshd_config

এই সেটটি দিয়ে, পাসওয়ার্ড প্রমাণীকরণ ssh এর জন্য অক্ষম করা হয়েছে, তবে আপনি এখনও sudo এর জন্য একটি পাসওয়ার্ড ব্যবহার করতে পারেন।

আমি কেবলমাত্রNOPASSWD sudo এ সেট করার পরামর্শ দিই কেবল সেবার অ্যাকাউন্টগুলির জন্য, যেখানে প্রক্রিয়াগুলি সুডোর মাধ্যমে কমান্ড চালাতে সক্ষম হয় processes এই পরিস্থিতিতে, নিশ্চিত হয়ে নিন যে অ্যাকাউন্টটি চালানো দরকার এমন নির্দিষ্ট কমান্ডগুলি আপনি স্পষ্টভাবে শ্বেত তালিকাভুক্ত করেছেন । ইন্টারেক্টিভ অ্যাকাউন্টগুলির জন্য, আপনার সর্বদা পাসওয়ার্ড সক্ষম থাকা উচিত ।

আপনার ফলোআপ প্রশ্নগুলির প্রতিক্রিয়া:

তবে আমি অনুমান করি যে আমি যদি / etc / ssh / sshd_config এ পাসওয়ার্ড প্রমাণীকরণটি অক্ষম করে রাখি যাতে আপনার এখনও লগ ইন করতে একটি চাবি থাকতে হয় তবে আমি টাইপ করা সহজতর সুডোর জন্য একটি সহজ পাসওয়ার্ড ব্যবহার করতে পারি? এটি কি বৈধ কৌশল?

হ্যাঁ, এটা সঠিক। আমি এখনও তুলনামূলকভাবে শক্তিশালী স্থানীয় অ্যাকাউন্ট পাসওয়ার্ড ব্যবহার করার পরামর্শ দিচ্ছি, তবে হাস্যকর-শক্তিশালী নয়। Rand 8 টি অক্ষর, এলোমেলোভাবে উত্পন্ন যথেষ্ট।

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

Ssh এর মাধ্যমে রুট অ্যাক্সেস অক্ষম করা উচিত। সময়কাল। PermitRootLogin noআপনার সেট করুন sshd_config

রুট অ্যাকাউন্ট অ্যাক্সেস করার জন্য নীতিটি কী হওয়া উচিত?

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


2
+1 এর পাসওয়ার্ড ছেড়ে দেওয়া উচিত ...
ক্রিস এস

6
+1 sudo পাসওয়ার্ডটি সত্যিকারের জন্য সত্যই নেই (যতদূর আমি দেখতে পাচ্ছি) তবে একটি নির্বোধ চেক হিসাবে আরও কিছু। সেখানে না থাকার কারণে অযাচিত হুবহু হতে পারে।
বোরিস দ্য স্পাইডার

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

1
আপনার শেষ অনুচ্ছেদের দিকে একটি মন্তব্য এবং যে কোনও ভিপিএসের জন্য সাধারণভাবে অ্যাক্সেস হ্রাস করার বিষয়ে ... কিছু ভিপিএস সরবরাহকারী আপনাকে লক আউট হয়ে গেলে আসলে আপনাকে সাহায্য করবে। আমি আমার ভিএম কে একক সিঙ্গল ইউজার মোডে বুট করেছিলাম এবং যখন আমি নিজেকে লক আউট করি তখন আমার জন্য কিছু কাজ করে (এটি ঘটে ... খারাপ ফায়ারওয়াল নিয়ম লোল) আপনার হোস্টের উপর নির্ভর করে তারা আপনাকে পরিষেবার জন্য চার্জ দিতে পারে; তারা হ'ল সর্বোপরি, আপনার প্রতি বিশেষ মনোযোগ উত্সর্গ করে। এছাড়াও, কিছু ব্যাকআপ / স্ন্যাপশট অল্প দামে বা কখনও কখনও নিখরচায় করবে, আপনি যদি একটি বৃহত্তর, সম্ভবত বিঘ্নিত পরিবর্তন করতে
চলেছেন

1
@ দিমিত্রিপাশকভিচ - PasswordAuthenticationসমস্ত ব্যবহারকারীকে প্রভাবিত করার বিষয়ে আপনি Matchনির্দিষ্ট ব্যবহারকারী বা গোষ্ঠীগুলির জন্য এটি আবার চালু করার জন্য sshd_config এর বিভাগগুলি সর্বদা ব্যবহার করতে পারেন ।
ম্যাট থমসন

11

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

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

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


8

আমি এটি কেবল দুটি পরিস্থিতিতে ব্যবহার করব:

  • যখন এটি কোনও নির্দিষ্ট ব্যবহারকারী হিসাবে চলমান একটি স্বয়ংক্রিয় স্ক্রিপ্টের জন্য একেবারে প্রয়োজন হয়
  • নির্দিষ্ট অ্যাডমিন টাস্কের জন্য (কেবলমাত্র প্রশাসনিক কাজগুলি পড়ুন, যারা সিস্টেমটি পরিবর্তনের জন্য পদক্ষেপ নেয়) এবং তারপরে কেবল নির্দিষ্ট ব্যবহারকারীদের জন্য

ডিফল্টরূপে বেশিরভাগ sudoকনফিগারেশন আপনাকে একই অধিবেশনটির জন্য আবার জিজ্ঞাসা করবে না (যদি আপনি কোনও নতুন শেল খোলেন যা কোনও প্রভাব ফেলবে না)। আপনি এই আচরণটি timestamp_timeoutসেটিংসের সাথে একটি পরিমাণে নিয়ন্ত্রণ করতে পারেন ।

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

অনুসরণ 2 সম্পর্কে:

Ssh এর মাধ্যমে রুট হিসাবে লগ ইন করতে আমার যদি একটি কী থাকে

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


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

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

7

আপনার উভয় বিশ্বের সেরা থাকতে পারে: লগইন এবং sudo উভয়ের জন্য এসএসএইচ প্রমাণীকরণ। আপনি যদি pam_ssh_agent_auth মডিউলটি সংহত করেন তবে আপনি যখন sudo করবেন তখন আপনি পাসওয়ার্ড না দিয়ে প্রমাণীকরণের জন্য SSH কী ব্যবহার করতে পারেন।

আমি এটি পাঁচ বছরেরও বেশি সময় ধরে উত্পাদনে ব্যবহার করছি।

এটি কনফিগার করতে, পাম মডিউলটি ইনস্টল করুন এবং তারপরে /etc/pam.d/sudoআপনার সিস্টেমের সমতুল্য একটি লাইন যুক্ত করুন :

auth    sufficient     pam_ssh_agent_auth.so file=~/.ssh/authorized_keys

আপনি যদি এটি করেন তবে আপনার কম্পিউটারে পাসফ্রেজের সাহায্যে আপনার কীগুলি সুরক্ষিত করতে ভুলবেন না। এইভাবে, কাউকে আপনার কম্পিউটারে প্রবেশ করতে হবে এবং কীগুলি প্রবেশ করার জন্য চুরি করতে হবে They তারা আপনার অ্যাকাউন্টে অ্যাক্সেস পেয়ে থাকলে আনলক করা অবস্থায় মেমরি থেকে এগুলি টেনে, আপনার পাসফ্রেজটি ক্র্যাক করে বা আপনার পাসফ্রেজের মাধ্যমে চুরি করতে পারে আপনি এটি টাইপ করার সময় একটি কীলগার বা কাঁধটি সার্ফিং করে (আপনার পিছনে দেখুন!)।

আপনি লগইন করার জন্য একই এসএসএইচ কীটি ব্যবহার করতে পারেন বা আপনি যখন sudo করবেন তখন আপনি কেবল নিজের এজেন্টে যুক্ত একটি পৃথক কী সেট আপ করতে পারেন। সুতরাং আপনি যদি অতিরিক্ত সতর্কতা অবলম্বন করতে চান তবে আপনি পৃথক অনুমোদিত_কিস ফাইলটি বজায় রাখতে পারবেন যার একটি পৃথক এসএসএইচ কী রয়েছে যা আপনি কেবলমাত্র আপনার এজেন্টের সাথে যুক্ত করতে হবে যখন আপনার সুডো প্রয়োজন:

auth    sufficient     pam_ssh_agent_auth.so file=~/.ssh/authorized_keys_sudo

বাহ, দুর্দান্ত লাগছে! সুতরাং আমি কি sudoআদেশগুলি সম্পাদন করার জন্য একটি পৃথক কী উত্পন্ন করব বা আমি এসএসএইচ প্রমাণীকরণের জন্য ব্যবহৃত একই ব্যবহার করব?
দিমিত্রি পশকভিচ

1
এটা চমৎকার. আমি পারলে একাধিকবার আপনাকে উজ্জীবিত করতাম।
nyuszika7h

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

6

যেহেতু আপনি জিজ্ঞাসা করেছেন, sudoসমস্যাটি কীভাবে সমাধান করবেন সে সম্পর্কে আমার সাধারণ পরামর্শ ।

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

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

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

আমি কীভাবে আমার বাক্সগুলিকে সুরক্ষিত করব:

এসএসএইচ পোর্টটি ডিফল্ট ব্যতীত অন্য কিছুতে পরিবর্তন করুন। এটি বোবা-বটগুলি এড়ানোর জন্য যা বন্দর সংখ্যাগুলি সন্ধান করে তারপরে প্রবেশ না করে (বা না) পাউন্ড দূরে।

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

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

ভিসুডোর মাধ্যমে সুডোয়ারগুলি সম্পাদনা করুন এবং কেবলমাত্র ব্যবহারকারীর প্রয়োজনীয় আদেশগুলি মঞ্জুরি দিন। এটি কীভাবে করা যায় সে সম্পর্কে অনেক গভীরতার গাইড রয়েছে, সুতরাং আমি এখানে বিশদ বিবরণ দেব না। এখানে একটি স্টার্টার রয়েছে: http://ubuntuforums.org/showthread.php?t=1132821

এর সংক্ষিপ্তসারটি হ'ল কোনও আপোসযুক্ত অ্যাকাউন্টটিকে আপনার মেশিনকে ক্ষতিগ্রস্থ করা থেকে বিরত রাখা। অর্থাত। যদি স্যালির অ্যাকাউন্টটি বিভক্ত হয়ে যায় এবং স্যালি কেবল ওয়েব সার্ভারটি পুনঃসূচনা করতে সুডো ব্যবহার করতে পারে, তবে আক্রমণকারী আপনার ওয়েব সার্ভারটিকে একটি লুপে পুনরায় চালু করতে মজা করতে পারে তবে কমপক্ষে তারা rm -rf /your/webserver/directoryআপনার ফায়ারওয়াল পোর্টগুলি ইত্যাদি খুলতে পারে না ইত্যাদি can't

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

# Generated by iptables-save v1.4.7 on Mon Mar  3 17:55:02 2014
*filter
:INPUT DROP [4528:192078]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [39845:27914520]
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 4254 -m state --state NEW -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8080 -m state --state NEW -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8443 -m state --state NEW -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 11 -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
COMMIT
# Completed on Mon Mar  3 17:55:02 2014

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


একটি বিস্তৃত উত্তরের জন্য ধন্যবাদ! আমার বাক্সগুলিকে সুরক্ষিত করতে আমার অবশ্যই এই সমস্ত পরামর্শ ব্যবহার করা দরকার। আমি এখনও EEAA এর উত্তর গ্রহণ করব যদিও এটি আমি যা চেয়েছিলাম তার থেকে এটি আরও কিছুটা নির্দিষ্ট।
দিমিত্রি পশকিভিচ

1
@ দিমিত্রিপাস্কিভিচ যে ঠিক আছে, EEAA একটি ভাল এবং মানানসই উত্তর আছে। আপনি আমার উপরে আমার মন্তব্য সম্পর্কে বিস্তারিত জিজ্ঞাসা করেছিলেন, তাই আমি করেছি। কোনও উদ্বেগ নেই :)
স্নেকডক

হিসাবে sudo su -এবং বিভিন্নতা, sudoreplayকাজে আসতে পারে।
nyuszika7h

3

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

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

এছাড়াও আপনি যদি অনেকগুলি রুট সুবিধাযুক্ত কমান্ড লিখতে থাকেন এবং আপনি যে কোনও সময় suবা sudo -sযেকোন রুট শেল পেতে পারেন তার সামনে সুডো রাখতে চান না । আপনি একবার আপনার পাসওয়ার্ড লিখবেন এবং তারপর এটি।


2

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

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

আমি আবার কখনও NOPASSWD ব্যবহার না করার প্রতিশ্রুতি দিয়েছি এবং সময়সীমার সেটিংটি 0 তে পরিবর্তন করে দিয়েছি।


1

আপনার প্রশ্নের কঠোর উত্তর না দেওয়ার সময়, আরেকটি বিকল্প হতে পারে দীর্ঘতর সেট করা timestamp_timeoutযাতে আপনার পাসওয়ার্ডটি প্রায়শই টাইপ করতে হবে না। এটি কেবলমাত্র প্রশাসনিক সুবিধাগুলি অর্জনের প্রতিরোধ করবে, তবে আপনার বিরক্তি হ্রাস করবে।

থেকে sudoers man পৃষ্ঠা :

timestamp_timeout

মিনিটের সংখ্যা যা sudo এর আগে কেটে যেতে পারে আবার পাসওয়ার্ড জিজ্ঞাসা করবে। সময়সীমাটিতে একটি ভগ্নাংশ উপাদান অন্তর্ভুক্ত থাকতে পারে যদি মিনিটের গ্রানুলারিটি অপর্যাপ্ত হয়, উদাহরণস্বরূপ 2.5 2.5 ডিফল্টটি হ'ল সর্বদা পাসওয়ার্ডের জন্য অনুরোধ করতে 0 এ এটি সেট করুন। যদি 0 এর চেয়ে কম মান সেট করা থাকে তবে ব্যবহারকারীর টাইম স্ট্যাম্পের মেয়াদ কখনই শেষ হবে না। এটি ব্যবহারকারীদের যথাক্রমে "sudo -v" এবং "sudo -k" এর মাধ্যমে নিজস্ব টাইম স্ট্যাম্পগুলি তৈরি করতে বা মুছতে দেয়।

এই ব্লগ পোস্ট কিছু উদাহরণ দেখায় ব্যবহার visudoযেমন মিনিট, মধ্যে সময়সীমার সেট করতে:

Defaults timestamp_timeout=60

সুরক্ষা এবং সহজেই ব্যবহারের মধ্যে এটি একটি সুখী মাঝারি স্থল?


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

1

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

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

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