우분투 18.04 SSH VPS 지속적으로 연결 끊기


1

나는 Virpus VPS를 사용하여 우분투 18.04를 실행하고 있습니다. 몇 주 전에 얻은 SSH를 통해 연결 상태를 유지하는 데 어려움을 겪고 있습니다. 나는 잘 연결시킬 수 있지만, 겉보기에는 무작위로 (다른 간격으로) 연결을 끊을 것이다. 연결이 끊어진 후에는 보통 화면을 사용하여 잠시 기다려야합니다. 화면 세션을 유지하기 위해 화면을 사용했는데 일단 들어가면 문제없이 화면에 다시 연결할 수 있습니다.

필자는 세 가지 다른 네트워크에서 세 가지 다른 컴퓨터 (Windows 10을 실행하는 두 개의 네트워크 및 CentOS를 실행하는 네트워크)에서 테스트했습니다. Windows에서 PuTTY, WinSCP, paramiko라는 Python SSH 라이브러리 및 Windows 용 Git Bash를 사용해 보았습니다. CentOS에서 CLI ssh 명령을 사용했습니다. 모두 같은 결과가 있습니다. SSH-ing을 여러 사용자 계정으로 시도했지만 문제는 계속 발생합니다. ConnectBot을 사용하여 내 휴대 전화 (Android 6)를 사용해 보았습니다. 불운.

퍼티 (PuTTY)는 "네트워크 오류 : 소프트웨어로 인해 연결이 중단 되었음"

CentOS CLI가 말합니다 : packet_write_wait: Connection to 198.167.140.11 port 22: Broken pipe

퍼티에서 킵 얼라이브를 설정하려고했지만 아무런 효과가 없습니다. 연결이 끊어지면 다른 호스트의 서버에서도 ping을 수행 할 수 없습니다. I.E. A 머신의 서버에 SSH-ing하면 연결이 끊어진 다음 즉시 B 머신으로 가서 서버에 ping을 시도합니다. 응답이 없습니다. 그것은 저에게 서버의 결함 인 것 같습니다. 반면에, 내가 수동으로 연결을 끊으면 (깔끔하게), 나는 양철통 핑 (ping).

Virpus 지원팀은 내 SSH 설정이 훌륭하다고 말했고 문제없이 적어도 한 시간 동안 (리눅스 박스에서) 연결을 유지할 수 있었다. 그런 다음 수동으로 연결을 끊었다. 즉, 문제를 재현 할 수 없습니다.

이 문제를 해결하기 위해 서버의 공개 IP를 변경했으나이를 수정하지 않았습니다. 그들의 다음 단계는 다른 노드로 재배포하는 것이 었습니다. 조금 더 효과가있는 것 같았지만 지금은 여전히 ​​같은 문제가 있습니다. 그들은 지금 그들이 할 수있는 일은 다른 노드로 재배포하는 것이라고 말했습니다. 그들은 이미이 작업을 수행 했으므로 수정하지 않을 것이라고 생각합니다.

누구 제안이 있습니까? 내가 원하는 모든 구성 정보를 게시 할 수 있습니다. 게시 할 내용을 모르겠습니다.

최신 정보 :

요청대로, 여기에 ufw status:

Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere
22                         ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
443/tcp                    ALLOW       Anywhere
443                        ALLOW       Anywhere
80                         ALLOW       Anywhere
80,443/tcp                 ALLOW       Anywhere
22/tcp (v6)                ALLOW       Anywhere (v6)
22 (v6)                    ALLOW       Anywhere (v6)
80/tcp (v6)                ALLOW       Anywhere (v6)
443/tcp (v6)               ALLOW       Anywhere (v6)
443 (v6)                   ALLOW       Anywhere (v6)
80 (v6)                    ALLOW       Anywhere (v6)
80,443/tcp (v6)            ALLOW       Anywhere (v6)

그리고 좋은 측정을 위해, 여기에 iptables -L: https://pastebin.com/GdScv2rv

최신 정보:

나는 auth.log를 조사해 보았고 계속해서 다음과 같은 메시지를 연속적으로 발견했다.

Nov 10 03:47:04 <hostname> sshd[17618]: Failed password for root from <ip_address> port 44738 ssh2
Nov 10 03:47:05 <hostname> sshd[17618]: Received disconnect from <ip_address> port 44738:11:  [preauth]

이것은 다른 사용자 (루트가 아닌)로 ssh'd하지만 sudo 명령을 실행하는 동안입니다. 그만큼 <ip_address> 내 호스트 또는 원격 서버와 일치하지 않습니다.

또한 다음과 같이 여러 줄의 메시지를 받기 때문에 누군가가 나를 강탈하려고 시도하는 것으로 나타납니다.

Nov 12 12:21:12 <hostname> sshd[20367]: Invalid user demo from <ip_address> port 49709
Nov 12 12:21:15 <hostname> sshd[20367]: pam_unix(sshd:auth): check pass; user unknown
Nov 12 12:21:15 <hostname>sshd[20367]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=<ip_address>
Nov 12 12:21:17 <hostname> sshd[20367]: Failed password for invalid user demo from 193.105.134.97 port 49709 ssh2
Nov 12 12:21:17 <hostname> sshd[20367]: Disconnecting invalid user demo <ip_address> port 49709: Change of username or service not allowed: (demo,ssh-connection) -> (root,ssh-connection) [preauth]

약 1500 명이 있으며 모두 다른 사용자 이름을 사용합니다. 에있는 IP 주소를 차단했습니다. ufw.

다수의 Failed password for root from 어떤 광산과도 일치하지 않는 IP 주소.


마음을 사로 잡는 방화벽; ssh keepalive 설정은 무엇입니까? 연결이 해제되는 동안 적극적으로 작업하고 있습니까? 테스트 한 "다른 네트워크"-이 네트워크를 "다른"네트워크로 만드는 것은 무엇입니까?
tink

PuTTY에서 "keepalives 사이의 초"는 3000으로 설정됩니다. 연결 한 후 10 초 후에 연결이 끊어졌습니다. "Enable TCP keepalives"가 선택되면 "Nagle의 알고리즘 사용 안 함"이 선택됩니다. 그래, 내가 실제로 물건을 할 때 더 자주 일어나는 것 같다. 하나의 네트워크는 모뎀 뒤에있는 라우터 뒤에있는 홈 네트워크입니다 (자세한 내용은 요청할 수 있음). 다른 하나는 도메인에있는 직장에서의 내 네트워크입니다. 그 도메인에 대한 자세한 내용은 없습니다. 세 번째 사이트는 데이터 센터에서 웹 호스트 공급자이기 때문에 (아마도) 데이터 센터에 있습니다. 내 전화기를 사용할 때 Wi-Fi를 껐습니다.
MattR

방화벽 문제 일 수 있습니다. 출력을 추가 할 수 있습니까? ufw status 귀하의 질문에 (귀하의 서버가 UFW를 사용하고 있지만 AFAIK가 우분투 서버의 표준입니다) (그렇지 않으면 iptables -L ). 나는 FW 규칙이 주어진 IP로부터 단지 5 개의 연결 / 분만 허용하는 비슷한 문제를 가지고 있었고, 내 (PC상의) 스크립트는 그 이상의 시도를 시도 할 것이다. 그러나 이러한 종류의 규칙은 기존의 터미널 세션을 끊지 않아야합니다.
xenoid

@xenoid 나는 그 명령들의 출력을 질문에 추가했다.
MattR

OK, 방화벽 문제는 아닙니다. SSH 로그 (/var/log/auth.log)의 내용은 무엇입니까?
xenoid
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.