OpenVPN 서버 - 권한 삭제가 런타임 시 파일 액세스에 영향을 미치나요?

OpenVPN 서버 - 권한 삭제가 런타임 시 파일 액세스에 영향을 미치나요?

~ 안에OpenVPN의 강화 기사, Linux에서 시작한 후 서버 데몬이 권한을 삭제하는 것이 좋습니다.

OpenVPN은 초기화 후 루트 권한을 삭제할 수 있도록 매우 신중하게 설계되었으며 이 기능은 항상 Linux/BSD/Solaris에서 사용해야 합니다. 루트 권한이 없으면 실행 중인 OpenVPN 서버 데몬은 공격자에게 훨씬 덜 매력적인 대상을 제공합니다.

그들은 다음 지시문을 설정할 것을 권장합니다.

user nobody
group nobody

nobody이는 시작이 완료된 후 데몬이 실행된다는 의미라고 가정합니다 .

그러나 OpenVPN이 런타임에 액세스하는 파일은 여러 가지가 있습니다.특히 CRL 파일:

OpenVPN에서 crl-verify 옵션을 사용하면 새 클라이언트가 연결되거나 기존 클라이언트가 SSL/TLS 연결을 재협상할 때마다(기본적으로 시간당 한 번) CRL 파일을 다시 읽습니다. 이는 OpenVPN 서버 데몬이 실행되는 동안 CRL 파일을 업데이트하고 새로 연결하는 클라이언트에 대해 새 CRL이 즉시 적용되도록 할 수 있음을 의미합니다.

따라서 당연히 이 두 기능이 호환되지 않는지 걱정됩니다. 데몬이 시작 후 권한을 삭제하면 런타임에 어떻게 읽을 수 있습니까 /etc/openvpn/server/crl.pem(owner root:root, mode 0600; SELinux enforcing)?

  • 실제로 데몬이 런타임 시 CRL 파일에 액세스할 수 없는 경우 이 문제를 피할 수 있는 좋은 방법이 있습니까?
  • 데몬이 런타임에 CRL 파일에 액세스할 수 있다면 이것이 어떻게 가능한지 알고 싶습니다.

해당하는 경우 OS는 RHEL8.5 x86_64입니다.

답변1

권한을 떨어뜨리는 많은 애플리케이션과 마찬가지로 OpenVPN은 루트가 있는 동안 다양한 파일 핸들을 열어 지속됩니다. privs를 삭제한 후에도 프로세스는 열려 있는 동안 열린 모드에서 해당 핸들에 계속 액세스할 수 있습니다.

이 경우 프로세스가 손상되어도 openvpn파일이 변경 사항에 노출되지 않습니다. 왜냐하면 파일이 (아마도 확인하지 않았음) 읽기 전용으로 열렸기 때문입니다. 쓰기 모드로 열려면 새 파일 핸들이 필요하며 프로세스가 더 이상 파일 핸들을 생성할 수 없으므로 실패합니다.

관련 정보