সুরক্ষার জন্য *** সিস্টেম পুনঃসূচনা কতটা জরুরি?


56

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

*** System restart required ***

এই বার যখন ঘটেছিল তখন আমি সহজভাবে উবুন্টুকে রিবুট করলাম এবং সব ঠিক আছে। এটি ঠিক আছে কারণ এটি একটি সাধারণ ব্যক্তিগত ওয়েবসাইট। যদিও আমি অবাক করে যাচ্ছি, এটি কীভাবে ওয়েবসার্সগুলির জন্য কাজ করে যা সময়ের 99.9999etc% হওয়া উচিত? সুরক্ষা আপডেট ইনস্টল না হওয়ায় (যা আমি কল্পনাও করতে পারি না) সেগুলি কি পুনরায় চালু না করে এবং সুরক্ষা লঙ্ঘনের ঝুঁকিপূর্ণ নয়? অথবা তারা ডাউনটাইম গ্রহণের জন্য গ্রহণ করে (যা আমিও ভাবতে পারি না)?

এটি কীভাবে পরিচালনা করতে হবে যদি এটি একটি খুব গুরুত্বপূর্ণ প্রোডাকশন সার্ভার ছিল যা আমি চালিয়ে যেতে চাই? সমস্ত টিপস স্বাগত!

[সম্পাদনা] আমি জানি যে আমি cat /var/run/reboot-required.pkgsযে প্যাকেজগুলি পুনরায় বুটের কারণ হ'ল তার তালিকা তৈরি করতে পারি । কমান্ডটি বর্তমানে নিম্নলিখিতটি প্রদান করে:

linux-image-3.13.0-36-generic
linux-base
dbus
linux-image-extra-3.13.0-36-generic
linux-base

তবে আমি কীভাবে জানব যে আপডেটগুলি যদি আমি পুনরায় চালু না করি তবে আমার একটি গুরুতর সুরক্ষা দুর্বলতা আছে কিনা তা সম্পর্কে সামান্য জিনিস রয়েছে?

[সম্পাদনা 2] ঠিক আছে, আমি এখন যে কমান্ডগুলি কার্যকর বলে মনে করেছি সেগুলি একত্রিত করেছিলাম:

xargs aptitude changelog < /var/run/reboot-required.pkgs | grep urgency=high

এটি যদি কোনও ফলাফল না দেয় তবে উচ্চ জরুরি হিসাবে নিরাপত্তার সমস্যা বলে মনে হচ্ছে না।

একটা শেষ প্রশ্ন যদিও: হয় low, mediumএবং highশুধুমাত্র জরুরি সম্ভাবনার, বা কোনো আরো উদাহরণস্বরূপ মত আছে criticalবা extremelyimportant?


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

14
আমি আশ্চর্য হয়েছি যে কত লোক এখানে এসেছিল কারণ তারা "হট নেটওয়ার্ক প্রশ্নগুলি" তালিকায় প্রশ্নটি দেখে এবং অবাক করেছে যে এক্সপ্লোরেশনগুলি কী ছিল ... * হাত
তোলেন

6
@ র্যামহাউন্ড: এহম, না, রক্ষণাবেক্ষণের সময়কালের জন্য তারা স্বচ্ছভাবে একটি গৌণ সার্ভারে স্যুইচ করে।
মনিকার সাথে লাইটনেস রেস

1
পুনরায় শেষ প্রশ্ন: আমি ফিল্টার করার জন্য মনের মধ্যে হচ্ছে কম এবং মাঝারি জরুরী এবং অন্যান্য / অজানা মাত্রা বিবেচনা করুন: | grep 'urgency=' | egrep -v '=(low|medium)'
KajMagnus

উত্তর:


45

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

আপনি যদি কোনও প্রাপ্যতা> 99.9% গ্যারান্টি দেন তবে আপনার কাছে প্রায়শই একটি ক্লাস্টারড সিস্টেম থাকবে যেখানে আপনি পরিষেবাগুলিকে ব্যাহত না করে একের পর এক নোডগুলি রিবুট করতে পারবেন।

সুতরাং আপনি প্রথম সিস্টেমটি পুনরায় বুট করুন এবং এটি ক্লাস্টারে পুনরায় সংযুক্ত করুন। তারপরে দ্বিতীয় এবং তাই। তাহলে পরিষেবাটি কখনই অনুপলব্ধ হবে না।


2
আপনার উত্তরের জন্য ধন্যবাদ. আমি আমার প্রাথমিক প্রশ্নে একটি সামান্য টুকরো যুক্ত করেছি; আমি জানি cat /var/run/reboot-required.pkgsযে প্যাকেজগুলি পুনরায় বুট করার দরকার তা পেতে আমি করতে পারি । তবে আমি কীভাবে জানব যে এগুলি কেবলমাত্র সামান্য সংশোধন, বা এটি গুরুতর সুরক্ষার দুর্বলতা কিনা?
kramer65

2
@ kramer65 প্রতিটি প্যাকেজের একটি পরিবর্তন আছে। যেমন কার্নেলের জন্য চ্যাংলগটি এখানে পাওয়া যাবে
উয়েউ প্লোনাস

2
ঠিক আছে, তাহলে সিসাদমিনের (যেমন: এই ক্ষেত্রে আমি নিজেই) এই পরিবর্তনগুলি গুরুত্বপূর্ণ কিনা তা নির্ধারণ করা উচিত? লিনাক্স কার্নেলের জন্য এটি নির্ধারণ করার জন্য আমার কাছে খুব কম জ্ঞান আছে, অন্য সমস্ত জিলিয়ন প্যাকেজগুলির জন্য ছেড়ে দিন। কোনও কেন্দ্রীয় জায়গা নেই যেখানে আমি কোনও দৃ determination় সংকল্প পেতে পারি যে সুরক্ষার জন্য আপডেটটি একেবারেই প্রয়োজন কিনা?
kramer65

8
@ ক্রেমার Run৫ রান aptitude changelog <package>, এখানে একটি উদাহরণ আউটপুট: পেস্ট.বুন্টু.com / 8410798 (এটি উবুন্টু নয়, একটি ডেবিয়ান সিস্টেমে রয়েছে, তবে উবুন্টুতেও এটি কাজ করবে))
nyuszika7h

5
এখানে সমস্ত সহায়তার জন্য ধন্যবাদ। অবশেষে আমি এখানে শিখেছি এমন সমস্ত জিনিসকে একটি কমান্ডের সাথে সংযুক্ত করেছি: xargs aptitude changelog < /var/run/reboot-required.pkgs | grep urgency=high(এটি প্রাথমিক প্রশ্নের সাথে যোগ করেছে) যা কিছু আউটপুট দেয় যা প্যাকেজগুলিতে অত্যন্ত জরুরি প্যাচ রয়েছে। এর পরে, পৃথক প্যাকেজগুলি অবশ্যই পরিদর্শন করা যেতে পারে। সমস্ত উত্তর এবং ধারণা জন্য একটি মিলিয়ন ধন্যবাদ!
kramer65

3

বিষয় সমাধানের জন্য অ্যাডন

আমি জাবিবিক্স মনিটরিং সিস্টেমের জন্য 'রিবুট প্রয়োজনীয়তা' এর জন্য অনুরূপ চেক সম্পাদন করি

আমি 'বিষয়' সমাধানে 2 টি সমস্যা দেখছি:

  1. প্রবণতা সাধারণত স্ক্রিপ্টগুলিতে খারাপ কাজ করে। আমি কয়েক ঘন্টা মেরে ফেলি কিন্তু এখনও এটি জাবিক্স দিয়ে কাজ করতে পারি নি
  2. যদি কেবল 1 চেঞ্জলগে জরুরী আপডেট অন্তর্ভুক্ত থাকে - আপনার চেকটি সর্বদা ইতিবাচক ফলাফল প্রদর্শন করবে

আমার যুক্তিটি হ'ল:

  1. প্রতিটি প্যাকেজের জন্য শুধুমাত্র চেঞ্জলগে শেষ পরিবর্তনটি পরীক্ষা করে দেখুন যার জন্য সিস্টেম পুনরায় বুট দরকার
  2. একটি আউটপুট কেবল সর্বোচ্চ অগ্রাধিকার আপডেট হিসাবে দেখায়

ডেবিয়ান ডকুমেন্টেশন ব্যবহার করে আমি 'জরুরি' জন্য 5 টি সম্ভাব্য মান খুঁজে পেয়েছি এবং এটিও সমান ("=") বা সেমিকোলন (":") অক্ষর দ্বারা অনুসরণ করা যেতে পারে fact এছাড়াও উচ্চ এবং নিম্ন কেস অক্ষর থাকতে পারে

সুতরাং আমি নিম্নলিখিত দিয়ে শেষ:

#!/bin/bash
##################################
# Zabbix monitoring script
#
# Checking urgency in changelog 
# for updates which require system restart
#
##################################
# Contact:
#  anton.lugovoi@yandex.ru
##################################
# ChangeLog:
#  20151205    initial creation
#  20151208    check uniq packages only 
##################################

case "$1" in

status)
    if [ -f /var/run/reboot-required ]; then
      echo 1
    else
      echo 0
    fi 
    ;;

urgency)
    if [ -f /var/run/reboot-required.pkgs ]; then
      while read pkg; do
        tmp=`/usr/bin/apt-get changelog $pkg | \
             /bin/grep -m1 -ioP '(?<=[Uu]rgency[=:])(low|medium|high|emergency|critical)' | \
             tr '[:upper:]' '[:lower:]'`
        if [ -n $tmp ]; then
          if   [ "$tmp" == "low" ] && \
               [ "$urgency" != "medium" ] && \
               [ "$urgency" != "high" ] && \
               [ "$urgency" != "emergency" ] && \
               [ "$urgency" != "critical" ]; then 
            urgency=low
          elif [ "$tmp" == "medium" ] && \
               [ "$urgency" != "high" ] && \
               [ "$urgency" != "emergency" ] && \
               [ "$urgency" != "critical" ]; then 
            urgency=medium
          elif [ "$tmp" == "high" ] && \
               [ "$urgency" != "emergency" ] && \
               [ "$urgency" != "critical" ]; then 
            urgency=high
          elif [ "$tmp" == "emergency" ] && \
               [ "$urgency" != "critical" ]; then 
            urgency=emergency
          elif [ "$tmp" == "critical" ]; then 
            urgency=critical
            break
          fi
        fi 
      done < <(sort -u /run/reboot-required.pkgs)
    else
      urgency=none
    fi

    case "$urgency" in
        none)      urgency=0 ;;
        low)       urgency=1 ;;
        medium)    urgency=2 ;;
        high)      urgency=3 ;;
        emergency) urgency=4 ;;
        critical)  urgency=5 ;;
        *)         urgency=42 ;;
    esac

    echo $urgency
    ;;
esac
exit 0

ফলস্বরূপ:

  • reboot_required_check.sh status রিবুট প্রয়োজন হলে 1 প্রদান করে, 0 না হলে 0 প্রদান করে
  • reboot_required_check.sh urgency রিবুট প্রয়োজন না হলে সর্বোচ্চ 'জরুরি অবস্থা' স্তর বা '0' প্রদান করে

আশা করি এটি কারও একটি সময় বাঁচাতে সহায়তা করে;)


0

যদিও আমি অবাক করে যাচ্ছি, এটি কীভাবে ওয়েবসার্সগুলির জন্য কাজ করে যা সময়ের 99.9999etc% হওয়া উচিত? সুরক্ষা আপডেট ইনস্টল না হওয়ায় (যা আমি কল্পনাও করতে পারি না) সেগুলি কি পুনরায় চালু না করে এবং সুরক্ষা লঙ্ঘনের ঝুঁকিপূর্ণ নয়? অথবা তারা ডাউনটাইম গ্রহণের জন্য গ্রহণ করে (যা আমিও ভাবতে পারি না)?

সুরক্ষার কারণে * সিস্টেম পুনঃসূচনা আবশ্যক * উপস্থিত হলে বড় ওয়েব সার্ভারগুলি আবার শুরু হয়

তবে এটি ব্যবহারকারীর কাছে স্বচ্ছ এবং সাইটটি কখনই ডাউন হয় না কারণ বড় সার্ভারগুলি প্রায়শই দুটি বা তিনটি সার্ভার চালায় যা ঠিক একই ফাইলগুলি সঞ্চয় করে এবং একই সাইটটি প্রদর্শন করে। প্রথমটি হ'ল প্রধান সার্ভারটি যখন অন্য দু'জন গৌণ হয় এবং কেবল তখনই ব্যবহৃত হয় যখন প্রধান সার্ভারটি ডাউন থাকে।


1
এটি তাত্ত্বিকভাবে সঠিক হলেও Big web serversলিনাক্সের কাস্টম সংস্করণগুলি চালান। তারা কোনও System restart requiredকথোপকথন দেখতে পাবে না , সুরক্ষিত থাকার জন্য তাদের প্রয়োজনীয় আপডেট করে। বেশিরভাগ ক্ষেত্রে, সিস্টেমটি চলাকালীন সমস্ত আপডেট না করা গেলেও (অনেকে বিশ্বাস করি যে রিবুট ছাড়াই চলমান সিস্টেমে লিনাক্স কার্নেলটি আপডেট করা এমনকি সম্ভব) even
joeeey

মজাদার. আমাজনে আমার একটি সার্ভার রয়েছে এবং আমি এই বার্তাটির কারণে প্রায়শই এটি পুনরায় চালু করি ... আমি আমার সার্ভারে উবুন্টু চালিয়ে যাচ্ছি। কীভাবে এটি কাস্টমাইজ করা যায় যাতে আমাকে এখন থেকে আর কখনও এটি পুনরায় চালু করতে হবে না?
রোম

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

হ্যাঁ রুট অ্যাক্সেস পাওয়া সম্ভব।
রোম

তারপরে প্যাকেজগুলি ম্যানুয়ালি আপডেট করা, এবং তার পরে প্রভাবিত পরিষেবাদি পুনরায় চালু করা এবং কার্নেল আপডেটের জন্য Ksplice এর মতো কিছু ব্যবহার করা এক উপায় হতে পারে। এটি freezes execution of a computer so it is the only program runningএকটি প্যাচ প্রয়োগ করার সময় Ksplice লক্ষণীয় যে তাই কিছুটা ডাউনটাইম এখনও থাকতে পারে (ওয়েব সার্ভার প্রক্রিয়াটি 'হিমায়িত' হওয়ার কারণে)। এখানেই @Wwe প্লোনাসের উত্তর আসে
জোয়াই
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.