억울한 상황이 생겨 전문가님들의 의견을 듣고 싶습니다

허대건@Google의 이미지

상황 설명: VPN을 통해 SSH 서버에 접속한 상태에서, VPN 사용 로그에 따르면 첫 번째 세션의 시작 시간은 2020-12-18 22:40:28이고 종료 시간은 2020-12-18 23:02:24입니다. 다음 세션은 2020-12-19 00:40:11에 시작하여 2020-12-19 00:52:32에 종료되었습니다. 사용자의 실제 IP는 111.118.29.66이고, VPN을 통해 할당받은 IP는 183.111.73.199입니다.

문제 상황: VPN이 종료된 후에도 SSH 서버 접속 로그에는 VPN을 통해 할당받은 IP(183.111.73.199)로의 접속이 계속 유지되고 있음을 보여줍니다. VPN이 종료된 시점(2020-12-18 23:02:24)부터 다음 VPN 세션 시작 전까지(2020-12-19 00:40:11), 심지어 2020-12-19 01:02:20까지 접속이 유지되었다고 기록되어 있습니다.

문의 내용 요약:

VPN이 종료된 후에도 SSH 서버에 VPN 할당 IP로의 접속이 유지될 수 있는지 여부.
VPN 종료 후 접속이 몇 분 정도 유지되며, 시간이 지나면 로컬 IP로 재접속되는지, 그리고 로컬 네트워크가 끊어지면 모든 접속이 종료되는지에 대한 이해가 맞는지 의견 부탁드립니다.

ymir의 이미지

ssh 로 연결된 tcp 세션이 명시적으로 종료 패킷을 받지 못했다면, 세션은 timeout 될 때 까지 계속해서 남아 있습니다. 가장 흔하게 볼 수 있는 게, 연결 된 상태에서 그냥 랜선 뽑는거죠..
그러면 내 PC 에서는 서버로 접속할 수 없지만, 서버는 계속 연결이 남아 있는 것으로 보이니까요..

tcp 연결된 상태에서 연결을 종료하기 전에 VPN 터널이 사라지면, tcp 세션으로는 아무런 패킷도 흐를 수 없게 되기 때문에, 서버는 timeout 될 때 까지 연결이 유지된 채로 남아 있게 될 겁니다.

대개는 tcp keepalive time 이 지나면 자동으로 끊어질 텐데.. 만약 ssh server 에 timeout 설정이 되어 있다면 얘도 알아서 끊을 거고, bash 같은 shell 에도 timeout 설정이 되어 있다면, 얘도 알아서 끊을 겁니다.

tcp keepalive 관련 설정은 'sudo sysctl -a | grep keepalive' 과 같은 명령으로 확인 가능하고, 나머지는 해당 서버의 설정에 따라 다릅니다.

되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』

허대건@Google의 이미지

감사합니다
저 현상이 나올려면 쉽게말해 로컬 네트워크가 끊어져야 한다는 것이죠?

ymir의 이미지

끊어진다는 표현이 꽤 범위가 넓은데..;; 하여튼 내 쪽의 랜선을 뽑거나, 중간에 방화벽으로 해당 세션의 패킷을 drop 하거나, 본문처럼 VPN 터널을 그냥 날리거나 해서.. 해당 tcp 세션이 연결된 상태에서, 패킷을 주고 받을 수 있는 방법을 없애버리면 됩니다.

되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.