보안을 위해 *** 시스템을 다시 시작해야합니까? 그래도 궁금한 점은 99.9999etc %의 웹

약간의 서버 관리를 배우기 위해 개인 웹 사이트를 실행하는 간단한 Ubuntu 14.04 서버를 설정했습니다. 보안 업데이트를 자동으로 설치하도록 설정했지만 다른 업데이트는 제외합니다. 이것은 꽤 잘 작동하는 것 같습니다. 때때로 서버에 로그인 할 때 (ssh로) 메시지가 나타납니다.

*** 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

하지만 업데이트를 다시 시작하지 않으면 심각한 보안 취약점이 있는지 여부를 어떻게 알 수 있습니까?

[EDIT2] 자, 이제 내가 찾은 명령을 하나로 결합했습니다.

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

이것이 출력되지 않으면 긴급 성이 높은 보안 문제가없는 것 같습니다.

마지막 질문 불구하고 : 있습니다 low, medium그리고 high유일한 긴급 가능성, 또는 더 이상 예를 들어 같은있다 critical거나 extremelyimportant?



답변

업데이트 된 내용에 따라 간단한 대답은 없습니다. 커널에 심각한 보안 문제가 있으면 가능한 빨리 다시 시작하는 것이 좋습니다. 커널에 사소한 수정 사항 만있는 경우 재시작이 연기 될 수 있습니다.

99.9 % 이상의 가용성을 보장하는 경우 거의 항상 서비스를 중단하지 않고 노드를 하나씩 재부팅 할 수있는 클러스터형 시스템이 있습니다.

따라서 첫 번째 시스템을 재부팅하고 클러스터에 다시 연결하십시오. 그런 다음 두 번째 등등. 그러면 서비스를 사용할 수 없게됩니다.


답변

주제 솔루션을위한 애드온

zabbix 모니터링 시스템의 ‘재부팅 요구 사항’에 대해 유사한 검사를 수행합니다.

‘Topic’솔루션에 2 가지 문제가 있습니다.

  1. 적성은 대개 스크립트에서 제대로 작동하지 않습니다. 나는 몇 시간을 죽 였지만 여전히 zabbix와 작동하지 않았습니다.
  2. 1 개의 변경 로그에 긴급 업데이트가 포함 된 경우 수표에 항상 긍정적 인 결과가 표시됩니다

내 논리는 :

  1. 시스템 재부팅이 필요한 모든 패키지에 대해 changelog에서만 마지막 변경 사항 확인
  2. 출력이 가장 높은 우선 순위 업데이트 만 표시

데비안 문서를 사용하여 ‘긴급’에 5 가지 가능한 값을 발견했으며 그 뒤에 equal ( “=”) 또는 semicolon ( “:”) 문자가 올 수 있다는 사실을 발견했습니다. 또한 대문자와 소문자가있을 수 있습니다

그래서 나는 다음과 같이 끝냈습니다 :

#!/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을 반환
  • reboot_required_check.sh urgency 가장 높은 ‘긴급’수준을 반환하거나 재부팅이 필요하지 않은 경우 ‘0’을 반환

누군가가 시간을 절약하는 데 도움이되기를 바랍니다.)


답변

그래도 궁금한 점은 99.9999etc %의 웹 서버에서 어떻게 작동합니까? 보안 업데이트가 설치되지 않아서 보안이 다시 시작되지 않고 보안이 침해 될 위험이 있습니까? 아니면 다운 타임을 당연한 것으로 생각합니까?

보안상의 이유로 * 시스템을 다시 시작해야합니다 * 가 나타나면 큰 웹 서버가 다시 시작됩니다 .

그러나 이것은 사용자에게 투명하며 큰 서버는 종종 동일한 파일을 저장하고 동일한 사이트를 표시하는 두세 개의 서버를 실행하기 때문에 사이트가 다운되지 않습니다. 첫 번째 서버는 주 서버이고 다른 두 서버는 보조 서버이며 주 서버가 다운 된 경우에만 사용됩니다.


답변