
IPv4 및 IPv6가 활성화된 DigitalOcean에 드롭릿이 있습니다. 물방울은 다음 규칙에 따라 디지털 해양 네트워크 방화벽 뒤에 있습니다.
인바운드:
- SSH TCP 22 모든 IPv4, 모든 IPv6
- HTTP TCP 80 모든 IPv4, 모든 IPv6
- HTTP TCP 443 모든 IPv4, 모든 IPv6
배 밖으로:
- ICMP ICMP 모든 IPv4 모든 IPv6
- 모든 TCP TCP 모든 포트 모든 IPv4 모든 IPv6
- 모든 UDP UDP 모든 포트 모든 IPv4
내 이해와 기대는 포트 22 이외의 포트에서 모든 SSH 시도를 차단한다는 것입니다. 그러나 systemd 저널에서 sshd 장치를 확인할 때. 다음 항목이 표시됩니다.
2022-12-29 03:00:32 Disconnected from invalid user antonio 43.153.179.44 port 45614 [preauth]
2022-12-29 03:00:32 Received disconnect from 43.153.179.44 port 45614:11: Bye Bye [preauth]
2022-12-29 03:00:31 Invalid user antonio from 43.153.179.44 port 45614
2022-12-29 02:58:37 Disconnected from invalid user desliga 190.129.122.3 port 1199 [preauth]
2022-12-29 02:58:37 Received disconnect from 190.129.122.3 port 1199:11: Bye Bye [preauth]
2022-12-29 02:58:37 Invalid user desliga from 190.129.122.3 port 1199
그리고 이러한 라인이 더 많이 있습니다. 이는 방화벽이 22 이외의 포트에서 SSH 연결을 차단하지 않는다는 것을 의미합니다.
다음 그래프는 지난 1시간 동안 22 이외의 포트에 대한 SSH 연결 수를 보여줍니다. 네트워크 필터를 활성화하면 연결이 줄어들지만 줄어들지는 않습니다.
DigitalOcean의 네트워크 방화벽이 깨졌을 수도 있나요?
내가 무엇을 놓치고 있나요?
인프라에서 동일한 상황을 겪고 있는 사람이 있나요?
답변1
서비스는 특정 포트(예: 기본적으로 포트 22의 sshd)에서 수신 대기합니다. 이는 22 이외의 포트에 연결을 설정하라는 SSH 클라이언트 요청이 있는 경우 SSHD 서비스에서 전혀 이를 듣지 못한다는 것을 의미합니다. 이 요청에 대한 sshd 로그 파일에는 추적이 없습니다. 이 경우 해당 요청은 실제로 포트 22에서 들어오고 있습니다. Invalid user antonio from 43.153.179.44 port 45614
실제로는 무엇을 의미합니까?
antonio
시스템에 존재하지 않는 사용자로 연결하라는 SSH 클라이언트 요청이 있었습니다.- 요청이 IP 주소에서 왔습니다.
43.153.179.44
- 연결에 사용된 SSH 클라이언트의 포트 번호는 이었습니다
45614
. 이는 드롭릿이 아닌 클라이언트 측의 포트 번호입니다.
DigitalOcean의 네트워크 방화벽이 깨졌을 수도 있나요?
이것은 거의 불가능합니다.
답변2
우선, SSH 데몬은 22번 포트 외에는 어떤 포트에서도 수신 대기하지 않습니다. 따라서 누구도 포트 22번이 아닌 다른 포트에 연결할 수 없습니다. 연결이 성공하려면 방화벽에서 허용해야 합니다.그리고기술 용어로 포트에서 수신 대기하는 패킷을 수신하기 위해 무언가가 대기해야 합니다.
게다가 방화벽은 패킷 내부의 내용을 확인하지 않을 수도 있습니다. 포트 번호로만 진행되며 22는 ssh용으로 예약된 포트이므로 ssh를 허용함을 나타냅니다.
TCP 연결은 네 가지 식별자로 구성됩니다.
- 소스 IP
- 소스 포트
- 대상 IP
- 대상 포트
로그에 표시된 포트와 IP는 소스 IP와 소스 포트입니다. 이들은 소위임시 포트, 이는 나가는 연결을 만들려는 프로세스에 무작위로 할당됩니다.