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