첫 징후는 보통 장애가 아니라 경고입니다. 파일이 그룹이나 모든 사람에게 읽히기 때문에 클라이언트가 키 로드를 거부하거나, 보안 검토에서 내보낸 번들도 들어 있는 프로필 디렉터리의 client.key가 644 모드로 남아 있는 것을 발견합니다. 아직 아무것도 실패하지 않았고, 바로 그래서 경고가 무시됩니다. 키는 작동하고 터널은 올라오며, 파일은 머신의 모든 계정에서 읽힙니다.

증상은 권한 경고이지 중단이 아닙니다

Unix 계열 시스템에서 개인 키는 서비스를 실행하는 계정만 읽을 수 있어야 합니다. 올바른 소유자와 600 모드가 일반적인 구성입니다. 644 모드는 모든 로컬 사용자가 키를 복사할 수 있다는 뜻이며, 공유 빌드 호스트에서는 그것이 실제 독자층입니다.

이것을 확인하는 클라이언트는 친절한 것입니다. 확인하지 않는 클라이언트는 파일이 안전하다는 증거가 아니며, 성공한 연결은 그것을 가능하게 한 자료를 또 누가 읽을 수 있는지에 대해 아무 말도 하지 않습니다. 경고 자체를 전체 발견으로 취급하십시오. 경고는 정확하며 누군가 파일을 복사하기 전에 도착했습니다.

모드를 서비스 신원에 맞추십시오

소유자 전용 접근은 그 소유자가 사용하는 키에 적합합니다. 의도적으로 공유 그룹이 있는 서비스에는 서비스 계정이 소유한 키에 대한 그룹 읽기 같은 다른 통제된 구성이 필요할 수 있습니다. 모든 파일을 무작정 하나의 숫자 모드로 설정하면 지원되는 클라이언트가 깨지고, chmod -R 777은 어떤 것의 해결책도 아닙니다.

무엇이든 바꾸기 전에 소유자와 서비스 계정을 확인하십시오. 공개 CA 인증서와 개인 신원 키는 같은 디렉터리에 있어도 비밀 유지 요구가 다르므로, 폴더 전체에 적용되는 재귀 모드는 둘을 같은 객체로 취급합니다.

ls -l /etc/openvpn/client/
stat -c '%U %G %a %n' /etc/openvpn/client/*.key
id openvpn

다른 플랫폼에서는 Unix 모드를 추측으로 번역하는 대신 문서화된 키 저장소나 접근 제어 모델을 사용하십시오. private로 끝나는 파일 이름은 라벨이지 강제 메커니즘이 아닙니다.

모드가 다루지 않는 복사본을 찾으십시오

편집기, 백업 아카이브, 내보낸 프로필, 임시 번들은 각각 같은 신원을 보유할 수 있습니다. 그 복사본은 내용에 따라 보호해야 하며, 원본 파일을 강화해도 지난달 tar에 있는 복사본에는 아무 효과가 없기 때문입니다.

키 파일의 암호 구문 구문은 저장된 자료에 유용하며 암호화된 파일을 비밀번호 옆에 공개하는 것을 정당화하지 않습니다. 권한은 현재 파일 시스템 객체를 보호하며, 이미 다른 곳에 복사된 자격 증명에 대해서는 아무 말도 하지 않습니다.

작업을 끝났다고 선언하기 전에 복사본을 찾으십시오: grep -rl 키의 헤더 줄을 가능성 있는 디렉터리에서, 그리고 백업 제외 항목을 살펴보십시오. 결과는 보통 처음 시작한 파일보다 흥미롭습니다.

수정 후 검증하고 교체하십시오

의도한 서비스가 여전히 인증하는지 테스트하고, 불필요한 계정이 접근권을 얻지 않았는지 확인하십시오. 진단 출력은 메타데이터로 제한하십시오, 왜냐하면 파일을 읽을 수 있음을 증명하는 데 키를 인쇄할 필요가 없으며, 자료를 로그에 남기기 때문입니다.

키가 노출되었다면 모드를 강화한 다음 자격 증명을 교체하고 이전 것을 폐기하십시오. POSIX chmod 명세는 각 모드 비트의 의미를 설명하며, 다음 검토에서 선택한 숫자를 정당화하라고 요구하기 전에 알아 둘 가치가 있습니다.

관련 글