Openvpn 질문있습니다

서버에 Openvpn 을 설치하고 key를 생성하여서
클라이언트를 세 명 만들어서 쓰고 있는데,
어느 날 문득 우분투의 메뉴에서 system log 에서
daemon.log 파일을 살펴보니깐
1~2분 마다 각각의 클라이언트에 대해서

Re-using SSL/TLS context
LZO compression initialized
[client1] Peer connection Initiated with ...*:???

다음과 같은 메세지가 계속 기록되고 있었습니다.

  • 는 아이피 주소 이고 ??? 는 아마 port 인 것 같은데,
    1~2분 마다 각각의 클라이언트들의 port 숫자를 계속 바꾸는데
    이건 왜 그런가요?
    각각의 클라이언트는 고정 ip 를 가지고 있고, 다만 서버에서 삼바폴더를
    공유하기 위해서 openvpn 환경을 사용하고 있습니다.

openvpn.conf 설정 파일에 keepalive 같은 명령어는 넣지 않았습니다.

안녕하세요.

NAT Traversal을 쓸 경우 포트가 바뀌기도 합니다만…
혹시 Rekey에 의해 포트가 변경되는게 아닌지요?

서버와 로컬에서 SA가 expire해서 rekey를 할때마다
포트가 변할지 모르겠다 싶은데 혹시 한번 확인해 보시기 바랍니다.

죄송합니다만,
답변해주신 사항에 대해서 제가 전혀 알지 못하는 내용이라서
조금 더 자세하게 말씀해주실수 있는지요?

^^;

직접 openvpn을 써본적이 없어서
잘 모릅니다.
제가 알고 있는 선에서 설명드리니 참고만 하시길 바랍니다.

VPN peer가 처음 접속을 하면
각각 가지고 있는 key를 확인하고 SA (Security Association)를 생성합니다.
그리고 각자 저장을 해 두고, 이후 전송되는 모든 패킷은
이 SA를 가지고 암호화를 합니다.

그런데 무한정 이 SA를 사용할수만은 없습니다.
중간에서 누군가 모든 패킷을 다 capture해서
추적하고자 한다면
패킷이 쌓이면 쌓일수록 key가 들통날 확률이 점점 높아지지요.

그래서 정기적으로 re-key를 합니다.
여러 옵션을 줄수 있는데, 어느정도 시간이 지나고 SA를 지우라고 할수도 있고,
어느정도 패킷수, 혹은 데이터를 보낸 후 rekey를 하라고 할 수도 있고
섞어서 설정도 가능합니다.

아무튼 rekey중에 세션이 초기화되는게 아닐까 하는게 제 생각이지만
의심스럽기도 합니다.

NAT Traversal을 사용할 경우 (VPN peer중 하나 이상이 NAT뒤에 있을 경우)
NAT의 사양에 따라 거의 90%는 사용하던 포트가 바뀝니다.
하지만 그렇지 않은 경우라면 기억이 가물가물하지만 포트번호는
변경되지 않는걸로 아는데…
그리고 rekey라고 하더라도 타이밍이 조금 빠르구요…

그래서 혹시나 rekey의 타이밍을 확인해보시라고 말씀드린 것입니다.

아무튼 적정선에서 참고하시길 바랍니다.