Bor v0.8.0 릴리스 노트 / 새로운 내용

Bor v0.8.0은 Linux 데스크톱용 오픈 소스 정책 관리 시스템으로, 관리 기능을 확장하고 관리 인터페이스를 현대화하며 보안 태세를 강화합니다. 이번 릴리스는 관리되는 정책의 적용 범위를 확대하고 플릿 관리자의 운영 효율성을 향상하는 데 중점을 두었습니다.

새로운 정책 유형

Bor v0.8.0은 세 가지 새로운 정책 유형을 지원하여 관리자가 Linux 데스크톱 플릿 전체에 설정을 적용할 수 있게 합니다.

Thunderbird

Mozilla Thunderbird는 이제 Firefox ESR과 동일한 메커니즘으로 관리할 수 있습니다. Bor 에이전트는 모든 바인드된 정책을 병합한 관리용 policies.json 파일을 작성합니다. 마지막 정책이 제거되면 원본 파일이 복원됩니다. 이 적용 방식은 Flatpak 및 RPM/DEB 설치 모두와 호환됩니다. 무단 변경을 방지하기 위해 에이전트는 변조 감시자를 사용해 외부 편집이 감지되면 즉시 관리 파일을 복원합니다.

Microsoft Edge for Business

Linux에서 Microsoft Edge를 사용하는 플릿을 위해 Bor는 각 Edge 관리 정책 디렉터리에 bor_managed.json 파일을 생성하는 기능을 지원합니다. 웹 UI는 전체 Edge 정책 카탈로그, JSON 검증, 활성화 전 설정 미리보기를 제공하는 트리 기반 편집기를 제공합니다.

Firewalld Zones

Bor는 이제 등록된 노드에서 firewalld 영역을 관리합니다. 여기에는 서비스, 포트, 포워드 포트, 풍부한 규칙, 마스커레이드, 인터페이스, 소스 및 영역 대상이 포함됩니다. 에이전트는 영역 XML을 /etc/firewalld/zones/에 작성하고 firewall-cmd --check-config를 사용해 구성을 검증한 뒤 firewalld를 재로드합니다. 이러한 영역 파일도 변조 감시자에 의해 보호됩니다.

웹 UI 전면 개편

관리 인터페이스는 PatternFly 6을 사용해 재설계되어 사용성 및 접근성(WCAG 2.2 AA)이 향상되었습니다.

개선된 탐색 및 UX

  • 라우팅된 페이지: 모든 페이지에 고유 URL이 부여되어 브라우저 뒤로/앞으로 탐색 및 딥 링크가 가능해졌습니다. 전역 오류 경계가 화이트 스크린 충돌을 방지합니다.
  • 전체 페이지 정책 편집기: 정책 편집기가 중첩 모달에서 전용 라우팅 페이지(/policies/:id/edit)로 이동하여 트리 기반 편집기에 더 넓은 공간을 제공합니다.
  • 확장 가능한 리스트: 노드 및 컴플라이언스 리스트는 이제 서버 측 페이지네이션, 필터링 및 정렬을 활용해 수천 개 노드 플릿에서도 성능을 유지합니다.
  • 안전 레일: UI에 저장되지 않은 변경 보호, 파괴적 작업(예: 리소스 삭제) 확인 대화상자, Chrome/Edge 값에 대한 JSON 검증이 추가되었습니다.
  • 대시보드 향상: 대시보드에 그룹화된 사이드바 탐색 및 통계 타일이 추가되어 관리자가 사전 필터링된 리스트로 바로 드릴다운할 수 있습니다(예: "오프라인"을 클릭하면 필터링된 Nodes 페이지로 바로 이동).

품질 향상 기능

  • 2단계 로그인: 로그인 양식에 비밀번호 표시 토글과 실시간 Caps Lock 경고가 추가되었습니다.
  • MFA 관리: 다중 인증(MFA)용 백업 코드를 복사하거나 다운로드할 수 있습니다.
  • 정책 관리: 리스트 뷰에서 바로 정책을 릴리스하거나 언릴리스할 수 있습니다.

보안 강화

Bor v0.8.0은 서버와 에이전트를 보호하기 위한 전용 보안 패스를 포함합니다.

  • 신원 및 접근: 에이전트 신원은 이제 mTLS 클라이언트 인증서에 엄격히 바인딩됩니다. 서버의 MFA 및 RBAC 적용 경로가 강화되었습니다.
  • 암호화 업데이트: 레거시 SHA-256 암호화된 TOTP 비밀은 최초 읽기 시 HKDF 파생 암호화로 투명하게 마이그레이션됩니다.
  • 인프라 보호: Ubuntu PPA 및 Fedora COPR 저장소 가져오기 도우미가 허용된 리다이렉트 대상만 따라가도록 하여 리다이렉트 기반 SSRF를 차단합니다.
  • 감사 로그: 감사 로그 CSV 내보내기가 스프레드시트 수식 삽입으로부터 보호됩니다.
  • 자격 증명 관리: 초기 관리자 비밀번호가 서버 로그(journald)에 출력되지 않고, 루트 전용 파일에 기록됩니다.
  • TLS 관리: 서버 TLS 인증서의 주체 대체 이름(SAN)이 구성된 호스트명과 일치하지 않을 경우 자동으로 재생성됩니다.
  • 의존성 업데이트: 모든 오픈 Dependabot 알림이 해결되었으며, react-router RSC CSRF 권고(GHSA-qwww-vcr4-c8h2)도 포함됩니다.

기술 구현 및 플랫폼 업데이트

Proto 기반 카탈로그

단일 진실 소스를 유지하기 위해 Firefox, Thunderbird, Chrome, Edge의 정책 카탈로그가 이제 protobuf 주석에서 생성됩니다. 이 공유 스키마는 서버, 에이전트, 프론트엔드에서 사용됩니다.

Polkit 변수 조건

Polkit 규칙이 이제 action.lookup()을 통한 변수 조건을 지원하여, 예를 들어 이동식 드라이브에만 마운트를 허용하는 등 액션 변수에 기반한 매칭이 가능합니다. 또한 하나의 규칙에 여러 액션 ID가 포함될 경우 || 로 올바르게 결합됩니다.

플랫폼 스택

  • 프론트엔드: React 19.2 및 react-router 8.3.
  • 백엔드/에이전트: gRPC 1.82.1 및 golang.org/x/crypto 0.52.0.
  • 개발: 프론트엔드 개발에 Node.js 22.22+가 이제 필요합니다.

업그레이드 안내

관리자는 새로운 Thunderbird, Edge, Firewalld 정책 유형을 지원하기 위해 에이전트를 v0.8.0으로 업그레이드해야 합니다. 오래된 에이전트는 인식하지 못하는 정책 유형을 무시합니다. protobuf 정책 스키마가 thunderbird.protofirewalld.proto 및 polkit, edge 메시지 업데이트와 함께 확장되었으며, proto/policy/를 기반으로 구축된 외부 도구는 재생성해야 합니다.

커뮤니티 인사이트

Hacker News 사용자들은 Bor의 잠재적 활용 사례와 대안에 대해 논의했습니다. 일부 비영리 노트북을 관리하는 관리자들은 Linux Mint의 Cinnamon 데스크톱 환경 지원과 맞춤 스크립트 실행 아이디어를 찾고 있습니다.

다른 기술 질문은 정책 적용 모델에 초점을 맞추었으며, 특히 에이전트가 구성 드리프트와 소스 간 충돌 정책을 어떻게 처리하는지에 대한 것이었습니다. 한 사용자는 사용자가 눈치채기 전에 변경을 되돌리는 inotify 드리프트-캐치 메커니즘의 효과성을 언급했습니다.

"Nice work on the mTLS/gRPC push design — the inotify drift-catch on parent dirs is a clean answer to the 'revert happens before the user notices' problem, and I like that the audit trail is server-side."

프로젝트에 대한 추가 제안으로는 SCAP(Security Content Automation Protocol) 지원을 통해 DISA STIG를 적용하고, Wazuh와 같은 플릿 거버넌스 도구와의 잠재적 통합이 포함됩니다.

Sources