문맥상 저는 기본 서버와 장애 조치 서버 간에 공유되는 NFS 마운트를 사용하는 제대로 문서화되지 않은 일부 소프트웨어를 관리하는 일을 돕고 있습니다. NFS 서버는 현재 파일 시스템의 하위 디렉터리를 내보내고 있으며 내보낼 때 no_subtree_check 옵션이 활성화되어 있습니다. 이에 대한 보안 의미와 내보낸 하위 디렉터리가 자체 파일 시스템에 있도록 내용을 다시 정렬할 가치가 있는지 이해하려고 노력 중입니다.
내보내기(5) 매뉴얼 페이지에 따르면:
하위 디렉터리 내보내기
일반적으로 파일 시스템의 루트만 내보내야 합니다. NFS 서버에서는 파일 시스템의 하위 디렉터리를 내보낼 수도 있지만 다음과 같은 단점이 있습니다.
첫째, 악의적인 사용자는 다른 파일의 파일 핸들을 추측하여 파일 시스템의 내보낸 하위 디렉터리 외부에 있는 파일에 액세스할 수 있습니다. 이를 방지하는 유일한 방법은 no_subtree_check 옵션을 사용하는 것인데, 이는 다른 문제를 일으킬 수 있습니다.
옵션에 대한 문서와 비교하면 마지막 문장이 거꾸로 보이는 것 같습니다. 그러면 안 되는가?하위 트리 검사악의적인 사용자가 내보낸 하위 디렉터리 외부의 파일 핸들을 추측하고 액세스하는 것을 방지하는 옵션이 있습니까?
이는 하위 트리 검사 문제와 관련하여 매뉴얼 페이지의 다른 곳에서 언급된 "다른 문제 발생" 줄과도 일치하는 것 같습니다.
nfs-utils 버전 1.1.0부터 기본값은 no_subtree_check입니다. 왜냐하면 subtree_checking은 가치 있는 것보다 더 많은 문제를 일으키는 경향이 있기 때문입니다.
또한 파일 핸들 추측이 어떻게 작동하는지 조금 불분명합니다. 이 공격은 테스트 명령으로 쉽게 시뮬레이션할 수 있습니까? 그렇다면 어떻게 해야 합니까? (이 작업을 수행하는 방법을 알고 있다면 subtree_check 및 no_subtree_check 동작을 직접 비교할 수 있습니다.)