লিনাক্স: রিমোট সিসাদমিনের জন্য সেট আপ করুন


51

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

বড় সংস্থাগুলি প্রায়শই বিক্রেতাদের / সরবরাহকারীদের দূরবর্তী অ্যাক্সেস সরবরাহের জন্য ইতিমধ্যে ভাল ব্যবস্থাপনার ব্যবস্থা করেছে এবং আমার কেবলমাত্র সেগুলি মেনে চলতে হবে। (ভাল বা খারাপ.)

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

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

  • একটি অ্যাকাউন্ট সেট আপ করুন এবং সুরক্ষিতভাবে শংসাপত্রগুলি বিনিময় করুন
  • রুট (sudo) অ্যাক্সেস সেট আপ করুন
  • আমার অ্যাকাউন্টে অ্যাক্সেস সীমাবদ্ধ করুন
  • নিরীক্ষণের ট্রেইল সরবরাহ করুন

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

নীচের পদক্ষেপগুলিতে কী উন্নতি করা যায়?


আমার বর্তমান নির্দেশ সেট:

একটি অ্যাকাউন্ট সেট আপ করুন এবং সুরক্ষিতভাবে শংসাপত্রগুলি বিনিময় করুন

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

sudo useradd -p '$1$********' hbruijn

আমি একটি সর্বজনীন কী এসএসএইচ সরবরাহ করি (প্রতি ক্লায়েন্টের জন্য নির্দিষ্ট কী-জুটি) এবং তারা কীটি দিয়ে আমার অ্যাকাউন্ট সেট আপ করতে বলে:

sudo su - hbruijn
mkdir -p ~/.ssh
chmod 0700 ~/.ssh
echo 'from="10.80.0.0/14,192.168.1.2" ssh-rsa AAAAB3NzaC1y***...***== hbruijn@serverfault' >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys 

রুট (sudo) অ্যাক্সেস সেট আপ করুন

আমি ক্লায়েন্টকে sudo sudoeditতাদের প্রিয় সম্পাদকটি ব্যবহার করে বা তার মাধ্যমে আমার জন্য সুডো সেট আপ করতে বলি এবং এতে যুক্ত করতে /etc/sudoers:

hbruijn ALL=(ALL) ALL

আমার অ্যাকাউন্টে অ্যাক্সেস সীমাবদ্ধ করুন

সাধারণত ক্লায়েন্টটি এখনও পাসওয়ার্ড ভিত্তিক লগইনগুলিকে অনুমতি দেয় এবং আমি /etc/ssh/sshd_configকমপক্ষে কেবলমাত্র আমার অ্যাকাউন্টকে এসএসএইচ কী-তে সীমাবদ্ধ রাখতে নিম্নলিখিত দুটি লাইন যুক্ত করতে বলি:

Match user hbruijn
PasswordAuthentication no

ক্লায়েন্টের উপর নির্ভর করে আমি আমার সমস্ত এসএসএইচ অ্যাক্সেসটি সর্বদা একক স্থিতিশীল আইপি-ঠিকানা প্রদানের জন্য (উদাহরণস্বরূপ 192.168.1.2) সরবরাহ করতে এবং / অথবা আমার আইএসপি-র ব্যবহারের আইপি-ঠিকানা পরিসীমা সরবরাহ করি (উদাহরণস্বরূপ 10.80)। 0.0 / 14)। এসএসএইচ অ্যাক্সেস নিষিদ্ধ থাকলে (এসএসএস না থাকলেও বেশিরভাগ ক্ষেত্রেই ছাঁটাই না করা) ক্লায়েন্টকে ফায়ারওয়াল শ্বেত তালিকাতে এগুলি যুক্ত করতে হবে।

আপনি ইতিমধ্যে সেই আইপি-ঠিকানাগুলিকে ফাইলের from=সীমাবদ্ধতা হিসাবে দেখেছেন ~.ssh/authorized_keysযা হোস্টগুলি সীমাবদ্ধ করে যার থেকে আমার কীগুলি তাদের সিস্টেমে অ্যাক্সেস করতে ব্যবহার করা যেতে পারে।

নিরীক্ষণের ট্রেইল সরবরাহ করুন

এখনও অবধি কোনও ক্লায়েন্ট আমাকে এর জন্য জিজ্ঞাসা করেনি, এবং আমার গাধাটি coverাকতে আমি নীচের বাইরে সুনির্দিষ্ট কিছু করি নি:

আমি sudoস্বতন্ত্র কমান্ডগুলির সাথে ধারাবাহিকভাবে ব্যবহার করার চেষ্টা করি এবং ব্যবহার sudo -iবা রোধ করার চেষ্টা করি sudo su -। আমি চেষ্টা না করে ব্যবহার sudo vim /path/to/file করার sudoeditপরিবর্তে ব্যবহার করব ।

ডিফল্টরূপে সমস্ত সুবিধাযুক্ত ক্রিয়াগুলি তখন সিসলগে (এবং /var/log/secure) লগ করা হবে :

Sep 26 11:00:03 hostname sudo:  hbruijn : TTY=pts/0 ; PWD=/home/hbruijn ; USER=jboss ; COMMAND=sudoedit /usr/share/jbossas/domain/configuration/domain.xml  
Sep 26 11:00:34 hostname sudo:  hbruijn : TTY=pts/0 ; PWD=/home/hbruijn ; USER=root ; COMMAND=/usr/bin/tail -n 5 /var/log/messages

আমি বেশিরভাগ ক্ষেত্রে আমার কাজের পরিবেশকে অনুকূলিতকরণে ছেড়ে দিয়েছি, কেবলমাত্র আমি যা করি তা হ'ল আমার ~/.bash_profileবাশের ইতিহাস বাড়ানোর জন্য এবং টাইম স্ট্যাম্পগুলি অন্তর্ভুক্ত করার জন্য নিম্নলিখিতটি সেট করা হয় :

export HISTSIZE=99999999999
export HISTFILESIZE=99999999999
export HISTIGNORE="w:ls:ls -lart:dmesg:history:fg"
export HISTTIMEFORMAT='%F %H:%M:%S  '
shopt -s histappend

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

আপনি যদি আরও ভাল নিরীক্ষণের ট্রেইল যুক্ত করতে চান তবে তাদের সম্ভাবনা থাকলে দূরবর্তী লগিং সক্ষম করার জন্য তাদের তাদের নির্দেশ দেওয়া উচিত
ফ্রেডি

উত্তর:


24

শুধু মনে আসে যোগ করার জন্য হবে --expiredateথেকে adduserকল।
এটির সাথে গ্রাহক জানেন যে আপনার অ্যাক্সেস একটি নির্দিষ্ট তারিখে স্বয়ংক্রিয়ভাবে শেষ হবে।

আপনার কাছে রুট অ্যাক্সেস থাকার কারণে তাঁকে এখনও আপনার বিশ্বাস করা দরকার এবং এখনও মেয়াদ শেষ হওয়া পতাকাটি সরিয়ে ফেলতে পারে।


15

আপনি স্ক্রিপ্ট (1) ইউটিলিটি সহ আপনার সেশনগুলি রেকর্ড করতে পারেন ।

$ script session.log
Script started, file is session.log
$ ls
file1  session.log
exit
Script done, file is session.log

তারপরে সবকিছু সেশন.লগে রয়েছে।


দূরবর্তী সিস্টেমে ssh সেশন শুরু করার আগে, আপনি কি এটি আপনার নিজের হোস্টে চালানোর পরামর্শ দিবেন, না দূরবর্তী সিস্টেমে এটি আমার প্রোফাইলের অংশ হিসাবে অন্তর্ভুক্ত করবেন?
এইচবিউইজন

1
আমি অনুমান করি আপনিও করতে পারেন - আমি এটি একবার ব্যবহার করেছি বেশিরভাগ লোকেরা সত্যিই যত্ন নেয় না।
ব্যবহারকারী 9517 GoFundMonica

7

যেহেতু আপনি ইতিমধ্যে কোনও এসএসএইচ পাবলিক কী দিয়ে লগ ইন করছেন, আপনি যদি পাসওয়ার্ড হ্যাশ সরবরাহ না করেন তবে এটি কিছুটা শক্ত করে তুলবে; পরিবর্তে তাদের বলুন adduser --disabled-password(সমতুল্যভাবে, useradd -p '!'আমি মনে করি), যা কার্যকরভাবে PasswordAuthentication noসেই অ্যাকাউন্টের সমতুল্য , এবং আপনার ইমেলটিতে স্নুপিং কেউ পাসওয়ার্ড হ্যাশটিকে নষ্ট করতে পারে এবং আপনার হিসাবে লগ ইন করার কোনও সম্ভাবনা নেই।


3
যোগে Match user hbruijn \n PasswordAuthentication nosshd_config আমার ডিক্রিপ্ট পাসওয়ার্ড দিয়ে দূরবর্তী অবস্থান থেকে লগ-ইন করা থেকে আটকাতে উচিত (সম্ভাব্য স্থানীয় ব্যবহারকারী সঙ্গে এটি ব্যবহার করতে পারে su - hbruijn) কিন্তু যতদূর আমি জানি আমি এখনও জন্য একটি বৈধ পাসওয়ার্ড থাকতে হবে sudoযদিও উদ্দেশ্যের। লগ ইন করার পরে আমার কেবল পাসওয়ার্ডটি পুনরায় সেট করা উচিত?
এইচবিউইজন

ওহ, সুডো সম্পর্কে ভাল পয়েন্ট। আমি নিশ্চিত না যে --disabled-passwordরাজ্যে কোনও অ্যাকাউন্ট passwdthat অ্যাকাউন্ট থেকে চালিয়ে একটি পাসওয়ার্ড দেওয়া যায় কিনা ।
zwol

এছাড়াও আপনার প্রদত্ত পাসওয়ার্ডের হ্যাশটিতে কারও কথা শুনে কী থামবে? এই অংশটি একটি দুর্বল লিঙ্ক যা ssh কীগুলি ব্যবহার করে যেখানে আপনার পাবলিক কী বাধা দিচ্ছে তা বিবেচনা করে না।
জেমসআরয়ান

3
ক্লায়েন্টের মতো sudoers ফাইলের মতো একটি লাইন যুক্ত করে কি এই দুর্বল লিঙ্কটি সমাধান করা যেতে পারে hbruijn ALL=(ALL) NOPASSWD: /usr/bin/passwd hbruijn?
Dezza

2

আপনি যখন সরকারী / ব্যক্তিগত কী ব্যবহার করতে যাচ্ছেন তখন কেন কোনও পাসওয়ার্ড সরবরাহ করবেন না।

পাবলিক কীগুলি ভাগ করে নেওয়া বোঝানো হয়, তাই এটি হ্যাশ পাসওয়ার্ড নয়, সুরক্ষিতভাবে শংসাপত্র বিনিময় করতে আপনার ব্যবহার করা উচিত।

sudo useradd --disabled-password hbruijn

আপনার সর্বজনীন কী প্রেরণ করার সময়, একটি ফোন কলের মতো দ্বিতীয় চ্যানেলে ফিঙ্গারপ্রিন্টটি যাচাই করুন, যাতে আপনি জানেন যে কেউ এটিকে প্রবেশের পথে পরিবর্তন করেনি।

যেহেতু সুডো ব্যবহারের জন্য আপনার এখন পাসওয়ার্ড নেই, তাই sudoers ফাইলটিতে আপনার লাইনটিও পরিবর্তন করতে হবে

hbruijn ALL=(ALL) NOPASSWD:ALL

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

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