나는 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상의) 스크립트는 그 이상의 시도를 시도 할 것이다. 그러나 이러한 종류의 규칙은 기존의 터미널 세션을 끊지 않아야합니다.