OpenBSD, FreeBSD : 업데이트 철학?


14

나는 약 5 년 동안 서버 / 데스크톱을 FreeBSD를 사용해 왔으며, apt-get / yum 업그레이드와 함께 모든 습관을 가져가는 경향이있었습니다. (데비안 / RHEL / 센트 박스도 관리합니다. 저는 알고 있습니다. 알고 계십니까 ... 플랫폼에 관계없이 더 신중해야합니다). 따라서 일반적으로 다음과 같습니다.

portsnap fetch
portsnap update
portmanager -u

포트

때로는 뒤에 :

freebsd-update fetch
freebsd-update install

시스템의 경우 ... 등. 그런 다음 나중에 발생하는 엉망을 정리하십시오.

이것은 내가 작업을 수행하는 상당히 과도한 un-BSD 방법입니다. BSD 박스에 대한 당신의 철학은 무엇입니까? portaudit / portversion을 실행합니까? 신중하게 고려한 후 출력을 확인한 다음 업데이트 (설치 제거 등)하십시오.

저는 OpenBSD를 처음 접했고 고백합니다. 필자는 포트 트리를 cvsupping하고 "오래된"스크립트를 실행 한 다음 중요한 포트만 업그레이드하지만 커널 / 바이너리 만 남겨두고 6 개월마다 업그레이드하는 것을 본다. 커널 바이너리를 패치 / 재 컴파일 / 재 구축합니까 --- 왜 그렇습니까?

BSD 박스에서 중요한 서비스 (합리적으로 중요한-이것은 은행이나 병원이 아닙니다)에 대한 보수적 인 접근 방식은 무엇입니까? 리눅스 박스에서 비슷한 접근법을 사용하고 있습니까? 보안 경고가 내 영혼에 공포를 일으키지 않는 한 일반적으로 서버의 커널을 만지지 않습니다.

예, 많은 문서와 책이 있습니다. 사람들은 실제로 무엇을합니까? 우리가 기본을 알고 있다고 가정하면-지혜는 무엇입니까? 스테이크 / 이해 관계자 / 사용자와 마찬가지로 사용 사례 / 환경 및 시나리오는 다양합니다. 책과 매뉴얼 페이지는 도구와 사용법을 다루지 만 실용성이 부족합니다. 당신이 그것을 커버하는 것을 알고 있다면 책을 추천하십시오!

읽어 주셔서 감사합니다!

Bubnoff

결론 ~ 시간을내어이 게시물에 답변 해 주신 모든 분들께 감사드립니다. 필자의 전략은 이제 두 BSD 모두의 메일 링리스트를 따르고 과거에 비해 업데이트에 대해 선택 / 배려하는 것입니다.

FreeBSD ~ Portaudit가 좋은 대답입니다. 메일 링리스트와 부지런한 감사를 통해 이것이 잘 될 것이라고 생각합니다. OpenBSD와 FreeBSD 사이의 포트에 대한 다른 강조가 흥미 롭습니다.

OpenBSD ~ 메일 링리스트를 따라 가고 중요하다고 생각되는 패키지 툴 (pkg_info 및 pkg_add -u)을 사용합니다. 업그레이드 : 1 년에 한 번 이상 업그레이드해야합니다. 최신 릴리스와 하나의 백을 지원하므로 지금은 4.8과 4.7입니다.

다시 감사합니다.

답변:


9

설치된 포트에서 취약한 패키지가 있는지 자주 확인하십시오. portaudit -Fda


1
이것은 * BSD의 필수 아이템입니다. 매일 밤 crontab에 이것을 던져 보안 수정 사항이있는 포트로 이메일을 보내도록 권장합니다.
Andrew M.

1
그러나 그것은 Portaudit의 조언에 따라 행동하는 문제입니다. 여기서 답을 읽음으로써, 대부분의 사람들은 꼭 필요한 경우가 아니면 물건을 내버려 두는 것이 좋습니다. 일부 관리자는 모든 것이 지속적으로 최신 상태 여야한다고 주장하는 것을 들었습니다.
Bubnoff

FreeBSD에 대해서는이 조언을하겠습니다. 감사합니다. OpenBSD를 떠난
Bubnoff

4

이런 종류의 작업을 수행하는 특정 "BSD 방식"이 있는지 확실하지 않습니다. 모든 것이 업데이트되고 테스트되는 내용을 알 수 있습니다. 일반적인 sysadmin입니다. 다행스럽게도 freebsd-updateportsnap 은 "무엇을 알고 있는지"를 상당히 사소하게 만듭니다.

그러나, 당신이 세부 사항을 요구했기 때문에, 많은 수의 FreeBSD 머신을 받았을 때, 그것들은 모두 클러스터의 노드였습니다. 독립형 머신은 이것과 전혀 다르지 않지만 프로덕션 서비스와 같이 모호하게 '개발자'로 만들 수 있다고 생각합니다. 결국 별도의 테스트 및 프로덕션 환경을 갖는 것이 좋습니다.

클러스터 상황에서 :

  • 각 머신 은 NFS를 통해 / usr / src , / usr / obj/ usr / ports 를 마운트했습니다.
  • 예산에 따라 스테이징 / 빌드 머신이 있거나 클러스터 노드를 스테이징 / 빌드 노드로 지정할 수 있습니다.
  • 스테이징 노드의 / usr / ports 사본이 다릅니다
  • 스테이징 노드는 매일 밤 cvsup을 통해 src-allports-all 을 업데이트합니다.
  • 필요한 업데이트가있는 경우 스테이징 노드가 회전하지 않고 buildworld , installworldportupgrade 가 실행됩니다.
  • 준비 노드는 철저하게 테스트됩니다.
  • / usr / ports 는 NFS 호스트에서 교환 될 것입니다
  • 각 클러스터 노드는 installworldportupgrade를 실행 하고 테스트 한 다음 다시 회전합니다.

분명히 이것은 시스템 및 포트 업데이트의 경우이지만 패키지 또는 시스템 만 업데이트하는 절차는 비슷했습니다.

두 대의 컴퓨터로이 작업을 수행하면 각 작업을 프로덕션 또는 스테이징으로 바꾸거나 스테이징에서 프로덕션을 업데이트 할 수 있습니다.

cvs 로그에서 변경 사항을 추적하고 / usr / src / UPDATING/ usr / ports / UPDATING 에서 특정 업데이트를 받았는지 확인할 수 있습니다.이 둘 다 cvsup 에서 자동으로 업데이트됩니다 .

cvsup을 사용하지 않는 경우 (그리고 요즘에는 이유가 적음) 원하는 업데이트를 추적하는 다른 방법을 찾아야합니다. freebsd-update가 원하는 변경 사항 목록을 메일로 보내 보안 정오표 페이지를 주시 할 수 있습니다.


나는 '스테이징'구절 '생산'이라는 아이디어를 좋아합니다. 가상화를 통해 오늘날에는 변명의 여지가 거의 없습니다. 답변 주셔서 감사합니다.
Bubnoff

네, 그리고 그것을 다루어야한다면 'devops'유형에 잘 맞습니다 (내가 이해 한 것).
DF

4

OpenBSD 업데이트 철학

이것이 OpenBSD를 업데이트하기위한 나의 접근법입니다

보안 릴리스 / 패치에 대한 최신 정보 :

  • BASE (즉, OpenBSD 개발자 팀이 소스 트리에서 유지하는 것들)
  • 패키지 / 포트 (즉, BASE 위에 설치된 소프트웨어 응용 프로그램)

업데이트 절차 :

  • 동일한 OS 버전
  • 새로운 OS 버전

베이스

ㅏ. 관련 메일 링리스트를 따르십시오 -squish.net 일일 다이제스트와 Tech 및 Misc 메일 링리스트에 표시된 일반적인 지침을 봅니다.

비. 유닉스 관련 보안 공지 웹 사이트 / 메일 목록을 따르십시오.

씨. cvsync 사용에 대한 로컬 CVS 사본 유지

디. 위의 STABLE 릴리스 빌드

보안 업데이트가 게시되면 해당 버전의 OS / 취약성이있는 컴퓨터 프로필의 실제 보안 문제를 평가합니다. 취약점이 관련된 경우 "동일 버전 업그레이드 절차"를 수행합니다.

패키지 / 포트

포트 / 패키지에 대한 보안 업데이트를 추적하는 것이 더 어렵지만 인프라에 있어야 할 정도로 중요한 경우 BASE와 유사한 방식으로 추적을 유지하는 것이 중요합니다.

  • 특정 응용 프로그램의 메일 링리스트에 올라 오십시오 (OpenBSD 프로젝트와 독립적으로 업스트림 변경 사항을 관리하는 것은 우리의 책임입니다).

  • 보안 배포 목록을 CERT처럼 사용하여 앱 등의 취약점에 대한 결과를 게시합니다.

업그레이드 절차

프로덕션 시스템에서 수행하기 전에 별도의 하드웨어 (또는 VM)에서 설치 절차를 작성하고 테스트하십시오. 다행스럽게도 많은 것들을위한 여분의 호스트가 있으므로 최소한의 서비스 중단 시간으로 롤아웃 할 수 있습니다. OpenBSD는 광범위한 하드웨어를 지원하기 때문에 기본 컴퓨터 및 하위 데스크톱을 예비 호스트로 서버급 장비를 롤아웃 할 수 있습니다 (또는 업데이트주기 동안 기본 컴퓨터를 채우기 위해 임시 상자를 작성하기 만하면됩니다).

당사의 업데이트 절차는 비 BASE 소프트웨어에 포트 / 패키지 시스템을 사용하는 데 크게 좌우됩니다. 소스에서 소프트웨어를 설치하는 두 개의 호스트는 OS의 버전 업데이트간에 업데이트하기가 쉽지 않습니다.

동일한 OS 업데이트

BASE OS의 경우 기존 바이너리 위에 새 바이너리를 설치하는 것만으로도 계속 성공할 수 있습니다. 바람직하게는 모든 OS 및 응용 프로그램 구성 / 데이터 파일을 백업하고 패치 된 OS를 포맷 및 재설치하고 패키지를 다시 설치합니다 (원래 데이터 유지)

배포 된 OpenBSD 호스트 (30+) 및 경험에서 구성 및 데이터 백업은 어렵지 않습니다. 방화벽의 경우 모든 데이터는 구성 및 로그 파일에 있습니다.

포트 / 패키지의 경우 변경이 간단한 경우 자체 포트를 수정하고 해당 포트에서 패키지를 빌드합니다. 포트를 업데이트하면 위의 프로세스가 간단 해집니다.

새로운 OS 업데이트

OS 릴리스 간에는 스케치에서 모든 것을 설치합니다.

프로세스에 대한 문서가 충분하다고 확신하지만 본질적으로 "교체"할 시스템과 동일한 구성으로 참조 시스템을 구축합니다. 호스트를 배포하기 전에 필요한 동일한 테스트를 수행하십시오.

참조 호스트에서 구성을 백업하고 프로덕션 호스트에 OpenBSD를 설치하여 그 위에 "확인 된"구성을 복원합니다 (나중에 동일한 유효성 검사 테스트를 다시 실행).


감사! 그것이 내가 향하는 방향입니다. 목록을 따르고 중복 호스트를 사용하십시오.
Bubnoff

3

OpenBSD의 경우 최소한 :

  • 패키지는 포트 시스템의 최종 제품입니다. 포트로 돌아다녀야 할 필요가 거의 없습니다.
  • -release 및 -stable은 수시로 업데이트되며, 대부분 업데이트됩니다.
  • -전류가 정기적으로 업데이트됩니다. 최신 패키지가 실제로 필요한 경우이 방법을 사용하십시오.
  • 일관성 유지 :-릴리스 / 안정 시스템은-릴리스 / 안정 패키지를 사용합니다 ...- 현재 시스템 실행-현재 패키지

포트 및 패키지에 관한 FAQ 15


그렇습니다. OpenBSD의 개발자 / 관리자는 포트가 패키지를 생성하기 때문에 포트를 통한 패키지 사용을 권장합니다. 그러나 포트 트리에는 감사 스크립트 (./out_of_date)가 있습니다 ... 패키지에 대한 아날로그는 무엇입니까? OpenBSD를위한 portaudit ... 또는 당신은 메일 링리스트를 따라 수동으로 패키지를 업그레이드합니까?
Bubnoff

개인적으로 -current를 사용하면 ~ pmonth_add -u -Dupdate, updatedepends입니다. 나는 그런 포트를 완전히 사용하지 않았다는 것을 인정한다. 일반적으로 cvs입니다. 필요한 경우 업데이트하십시오. 다른 스크립트가 포터 용이라는 인상을 받았지만 다시는 포트 시스템을 거의 사용하지 않았습니다. 감사에 관해서는 모든 것이 포트 팀과 물론 기여하는 다른 사람에 의해 수행됩니다.
lonerman

@Bubnoff -stable에서 최신 버전으로 업데이트하면 해당 릴리스에 대해 출시 된 모든 보안 패치가 제공됩니다. (비보안 업데이트도 포함하는 -current와 달리).
WhyNotHugo 2016 년

@ 휴고-감사합니다! 그건 좋은 지적이야. 서버 빌드 문서에 작성해야합니다.
Bubnoff

2

보안 문제가 없거나 기능을 방해하는 버그가 없으면 그대로 두십시오. 3-6 개월마다 업데이트를 확인하여 너무 늦지 않게하고 그렇지 않은 경우에는 그대로 두십시오.

고장 나지 않았다면 고치지 마십시오.


4
3-6 개월? Apache / lighttp 또는 CMS와 같은 전면 웹 앱은 어떻습니까? 걱정하지 않습니까? 그렇지 않으면 ... 나는 당신의 요점을 참조하십시오.
Bubnoff

@Bubnoff OpenBSD는 Apache 1.x에서 파생 된 사용자 정의 httpd와 함께 제공됩니다. Apache에서 제공하는 대부분의 업데이트는 적용되지 않습니다.
Benoit

나는 이해. 그러나 OpenBSD는 현재의 업데이트를 제공하여 나중에 안정적으로 이동합니다. 그리고 여전히 패키지 자체를 남겨 둡니다 ... Apache를 사용하는 앱에는 업데이트가 필요할 수 있습니다. 아니면 6 개월마다 전체를 업그레이드합니까?
Bubnoff

이것이 나의 접근법이다. 프로덕션 시스템의 포트에서 아무것도 설치하지 않기 때문에 기본 설치와 패키지 만 있으면됩니다. 나는 정오표 ( openbsd.org/errata.html )와 내가 설치 한 패키지에 대한 관련 메일 링리스트를 따른다 . CMS 시스템과 같은 다른 장치를 설치 한 경우 별도로 추적하고 유지 관리합니다. 중요한 패치가 필요한 경우 테스트 시스템에서 패치를 작성한 다음 복사합니다.

1

portupgrade포트 업그레이드 에 사용하는 것을 선호하며 포트 에 취약점이 있거나 새로운 기능이 필요한 경우와 같이 꼭 필요한 경우 에만이 작업을 수행하십시오 .

시스템 업그레이드에 관해서는 일반적으로로 소스를 재구성합니다 make buildworld. 나는이 접근법에 아무런 문제가 없었습니다.


1
많은 사람들이 portmanager보다 portupgrade를 선호하는 것 같습니다. 포트 업그레이드가 둘 중 더 성숙한가요? 포트 관리자가 아직 1.0에 도달하지 않은 것 같습니다.
Bubnoff

1
예, portupgrade는 끔찍하게 오랫동안 사용되어 왔으며 가장 활발한 개발 및 지원을 받고있는 것 같습니다. 다른 포트 관리 도구가 있다는 것을 알고 있지만 포트 업그레이드는 목록에서 가장 일관되게 언급 된 도구입니다. '04. list.freebsd.org/pipermail/freebsd-questions/2004-December/… 에서 발견 된 두 가지 사이에 토론이 있지만 현재는 확실하지 않습니다.
DF

나는이 같은 접근 방식을 사용하며 buildworld와 portupgrade가 최고의 / 유일한 옵션이었던 4.x 일 이후로 FreeBSD를 사용했기 때문입니다. 그것들을 실행할 시간과 프로세스를 배울 시간이 있다면 오늘날에도 여전히 훌륭하게 작동합니다. 또한 항상 -Os최적화, 작고 빠른 시스템으로 구축합니다.
Chris S
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.