오래된 VPN 프로필의 폐기된 암호 행: 복사하기 전에 읽으세요
지시문은 버전 변경을 넘어 다른 의미로, 또는 아무 의미 없이 남습니다. 어떤 클라이언트가 프로필을 작성했는지, 터널이 실제로 무엇을 협상했는지 확인하세요.
이 프로필은 2016년에 작성되었고, 여전히 가져오기가 되고 여전히 연결됩니다. 바로 그렇기 때문에 아무도 들여다보지 않습니다. 한때 이 지시문을 읽던 클라이언트는 오래전에 사라졌고, 현재 빌드는 그중 여러 개를 다르게 해석할 수 있습니다.
파일이 살아남았다고 해서 구성이 최신이라는 뜻은 아닙니다. 이 두 가지 개념을 분리하는 것이 작업의 대부분입니다.
어떤 클라이언트가 프로필을 작성했는지 알아보세요
발행자와 버전부터 시작하세요. 지시문의 의미는 그것을 읽는 구현이 정의합니다. 한때 알고리즘을 선택하던 행이 폴백 목록, 경고 또는 강한 오류가 될 수 있습니다. 어느 릴리스가 그것을 해석하는지가 결과를 결정합니다.
OpenVPN이 가장 명확한 예입니다. 버전 2.5는 data-ciphers을 도입하고 이전 cipher 지시문이 협상에 참여하는 방식을 바꿨습니다. cipher AES-128-CBC만 담은 프로필은 이제 작성자가 의도한 것보다 훨씬 좁은 제안을 합니다.
이제 경고하거나 실패하는 설정에 대한 릴리스 노트를 읽으세요. 로그의 경고는 현재 빌드에 관한 사실이며, 그 행이 왜 추가되었는지에 대한 누군가의 기억보다 더 중요합니다.
실제로 무엇이 협상되었는지 보세요
가져오기 성공은 구문 분석을 증명할 뿐 정책을 증명하지 않습니다. 협상된 결과는 연결이 올라온 뒤 클라이언트 로그에 나타납니다. 그것은 구성 파일의 양쪽 끝과 다를 수 있습니다.
# OpenVPN: what did this session agree on?
sudo journalctl -u openvpn-client@office --since '5 min ago' | grep -i 'cipher\|Data Channel'
# which directives does the profile actually carry?
grep -n -E 'cipher|auth|tls-|dh ' office.ovpn지시문을 조용히 버리는 수용된 가져오기는 한 가지로 읽히고 다른 방식으로 동작하는 프로필을 남깁니다. 그 간극이 바로 강화되었다고 표시된 문서가 자기 텍스트가 주장하는 것보다 약한 것을 협상하는 이유입니다. 로그는 그 차이가 드러나는 유일한 곳입니다. 파일을 믿기 전에 그것을 읽으세요.
행이 아니라 구성 방식을 업그레이드하세요
가져오기가 불평을 멈출 때까지 알고리즘 이름을 모으는 대신 운영자가 유지 관리하는 프로필을 받으세요. 시행착오로 행을 추가하는 것은 수정의 방향을 거꾸로 만듭니다. 서버가 무엇을 지원하는지 확립하는 대신 클라이언트를 알 수 없는 서버에 맞춥니다.
서버도 조정된 업그레이드가 필요할 수 있습니다. 현재 클라이언트는 상대편이 결코 제공하지 않는 제안에 대한 지원을 만들 수 없습니다. 클라이언트 측의 어떤 옵션도 업데이트되지 않은 게이트웨이를 대신하지 못합니다.
희생해서는 안 되는 것은 검증입니다. 인증서 검사를 제거하고, 호스트 이름 검사를 끄거나, 오래된 프로필을 살리기 위해 업데이트를 끄는 것은 호환성 문제를 신뢰 문제로 바꿉니다. 보통 한 번에 하나의 작은 편집으로 일어납니다.
결과를 확인하고 예외를 기록하세요
변경 후 협상된 집합을 다시 검사하고 터널이 존재하는 목적의 리소스를 테스트하세요. 의도한 대로 협상했지만 여전히 서비스에 도달하지 못하는 프로필은 라우팅이나 신원 문제가 있습니다. 암호 문제는 없습니다.
이전에 정상임을 확인한 구성을 보호된 곳에 보관하세요. 이전 파일이 남아 있는 동안에만 비교가 가능합니다.
호환성 예외는 소유자와 검토 날짜와 함께 문서화하세요. 누구도 소유하지 않는 임시 조치는 영구 정책이 됩니다. 다음에 파일을 읽는 사람은 그것이 의도적으로 선택되었다고 가정할 것입니다.