OpenVPN 리플레이 역추적이 기록된 로그: 그 줄이 증명하지 않는 것
역추적 메시지는 수락 또는 거부 결정보다 먼저 기록됩니다. 여섯 지점을 따르십시오. 줄을 식별하고, 결과를 찾은 다음, 앱 경로를 시험하십시오.
그 줄에는 PID_ERR replay-window backtrack occurred라고 적혀 있고, 검색 결과는 모두 이것을 버려진 패킷과 끊어진 터널로 설명합니다. Community OpenVPN 2.6의 UDP 경로에서 이 메시지는 수신 함수가 아직 패킷을 어떻게 처리할지 결정하는 중에 기록됩니다. 새로운 최대 역추적을 기록한 뒤, 같은 함수가 수락 또는 거부하기 전에 거리를 윈도와 기록된 상태와 비교합니다. 로그 레이블을 판결로 읽는 것이 이 체크리스트가 막으려는 실수입니다.
첫 번째 지점: 그 줄이 무엇인지 식별하십시오
이것은 시퀀스 거리에 대한 진단이며, 연결에 대한 결정이 아닙니다. 패킷 ID 구현에서 새로 관측된 최대 역추적이 기록되는 지점에 나타납니다. 그 지점은 수락 또는 거부 분기보다 앞에 있으므로, 그것을 유발한 패킷도 여전히 전달될 수 있습니다.
어떤 호스트가 어떤 상세 수준으로 기록했는지 확인하십시오. 서버와 클라이언트가 모두 패킷 ID 메시지를 내보낼 수 있으며, 한쪽의 메시지는 다른 쪽의 수신 상태에 대해 아무것도 말해 주지 않습니다.
두 번째 지점: 그 패킷의 결과를 찾으십시오
진단만이 아니라 그 뒤의 줄들을 읽으십시오. 같은 함수가 윈도와 중복 검사로 이어지므로, 그 특정 패킷의 결과는 몇 개의 명령 뒤에 결정되며 수락일 수도 있습니다. 무서운 줄에서 끝나는 로그 발췌는 결과에 대해 아무것도 알려 주지 않습니다. 줄 자체가 아니라 그 주변의 윈도를 검색하십시오:
journalctl -u openvpn-server@server --since "-10 min" | grep -n -A3 -B3 "backtrack occurred"그 시점에 그 피어에 대한 거부가 로그에 없다면, 이 줄을 장애의 원인으로 보는 것을 그만두고 앱 경로로 넘어가십시오. 연결되었지만 트래픽이 없다는 보고의 대부분은 실제로 거기서 끝납니다.
세 번째 지점: 재정렬이 실제인지 판단하십시오
재정렬은 경로의 속성이며, 하나의 진단은 그 하나의 표본일 뿐입니다. 짧은 윈도에서 같은 피어에 대한 반복 메시지를 찾고, 네트워크가 공격적으로 재정렬한다고 결론 내리기 전에 양쪽 끝의 캡처와 비교하십시오.
재연결 중 몇 개의 메시지는 특별할 것이 없습니다. 실제 앱 타임아웃과 함께 이어지는 연속 흐름은 조사할 가치가 있으며, 그 조합은 레이블이 아니라 증거입니다.
네 번째 지점: 윈도 매개변수와 그것이 아닌 것
replay-window는 시퀀스 크기와 선택적 시간 값을 받으므로, 이것을 넓히면 두 가지 다른 허용 오차가 동시에 바뀝니다. 숫자를 올리면 순서에서 더 멀리 벗어난 패킷을 허용하고, 시간 값은 패킷을 얼마나 더 고려할 수 있는지 제한합니다. 넓히는 것은 보안 비용이 따르는 정책 변경이며, 암호를 강화하지도 중복 탐지를 끄지도 않습니다. 두 허용 오차는 의도했든 아니든 함께 움직입니다.
오래된 인증된 패킷도 여전히 원치 않는 반복일 수 있으므로 수신자는 이 검사를 유지합니다. 더 많은 재정렬을 받아들이는 것은 그 위험을 더 많이 받아들이는 것입니다.
mute로 경고를 음소거하면 보이는 것이 바뀔 뿐, 데몬이 하는 일은 바뀌지 않습니다. 목표가 알려진 이벤트 동안 더 조용한 로그라면 그것은 정당한 운영 선택이고, 목표가 터널 수리라면 음소거는 증거를 숨깁니다.
mute 20
replay-window 64 15외부 전송을 TCP로 바꾸면 전달과 복구 동작이 바뀌고 대기열 머리 차단 비용이 추가됩니다. 이것은 설계 결정이며, 하나의 로그 레이블에 대한 첫 대응이 아닙니다. 서버를 다시 설치하는 것은 통계와 실제로 실패한 경계 사이의 구분을 지워 버리기 때문에 더 나쁩니다.
다섯 번째 지점: 사용자에게 중요한 경로를 시험하십시오
터널이 연결된 상태에서 앱 자체의 테스트를 실행하고 선택된 경로, 전달 상태, 반환 경로를 읽으십시오. 한 방향으로만 패킷을 나르는 터널은 역추적 메시지를 전혀 만들지 않으며, 그것은 심한 재정렬보다 훨씬 흔합니다.
각 지점에서 무엇을 측정했는지 적어 두십시오. 그 기록이 다음 보고서가 다시 무서운 줄에서 시작해 거기서 바깥으로 일하지 못하게 막습니다.
패킷 ID 구현은 통계와 결정의 순서를 보여 주고, 설명서는 윈도의 시퀀스와 시간 범위를 설명합니다. 이 둘을 함께 읽는 것이 무서운 로그 줄을 알려진 양으로 바꿉니다. 둘 다 여러분의 특정 경로에 대해서는 아무것도 말하지 않으므로, 위의 측정은 여전히 중요합니다.