লিনাক্স সিস্টেমগুলিতে দূরবর্তী সমর্থন, সমস্যা সমাধান এবং / অথবা পারফরম্যান্স টিউনিং সরবরাহ করার জন্য আজ এবং পরে আমি বিজোড় অনুরোধটি পাই।
বড় সংস্থাগুলি প্রায়শই বিক্রেতাদের / সরবরাহকারীদের দূরবর্তী অ্যাক্সেস সরবরাহের জন্য ইতিমধ্যে ভাল ব্যবস্থাপনার ব্যবস্থা করেছে এবং আমার কেবলমাত্র সেগুলি মেনে চলতে হবে। (ভাল বা খারাপ.)
অন্যদিকে ছোট সংস্থাগুলি এবং ব্যক্তিরা আমাকে সেট আপ করার জন্য তাদের যা করা উচিত তা নির্দেশ দেওয়ার জন্য অবিচ্ছিন্নভাবে আমার দিকে ফিরে আসে। সাধারণত তাদের সার্ভারগুলি সরাসরি ইন্টারনেটের সাথে সংযুক্ত থাকে এবং বিদ্যমান সুরক্ষা ব্যবস্থাগুলিতে তাদের লিনাক্স বিতরণ যাই হোক না কেন তার ডিফল্ট থাকে।
প্রায় সর্বদা আমার রুট স্তরের অ্যাক্সেসের প্রয়োজন হবে এবং যে কেউ আমার জন্য অ্যাক্সেস সেট করবে সে বিশেষজ্ঞ সিসাদমিন নয়। আমি তাদের মূল পাসওয়ার্ড চাই না এবং আমি এটিও নিশ্চিত যে আমার ক্রিয়াকলাপগুলি দূষিত হবে না, তবে আমার কী যুক্তিযুক্ত সরল নির্দেশাবলীর দেওয়া উচিত:
- একটি অ্যাকাউন্ট সেট আপ করুন এবং সুরক্ষিতভাবে শংসাপত্রগুলি বিনিময় করুন
- রুট (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
screen
, সুতরাং চরম ক্ষেত্রে আপনার ক্লায়েন্ট আপনি যা করছেন তা সরাসরি দেখতে পারবেন।