얼마 전에 설정한 원격으로 구성된 Ubuntu 10.04 서버가 있습니다. 사용자 이름과 비밀번호를 기록했을 때 일반적으로 사용되는 SSH 포트를 22에서 다른 것으로 변경할 만큼 영리해 보였습니다.
해당 포트가 무엇인지 어떻게 알 수 있나요?
호스팅 회사의 백도어를 통해 서버에 액세스할 수 있으므로 원하는 모든 Unix 명령을 실행할 수 있습니다. 하지만 내 컴퓨터에서 일반 퍼티 쉘을 사용하여 로그인할 수는 없습니다.
답변1
먼저 구성 파일에 어떤 포트가 구성되어 있는지 확인하세요.
$ sudo grep Port /etc/ssh/sshd_config
Port 22
그런 다음 재부팅하여 ssh
방금 본 구성이 로드되는지 확인하거나 ssh
실행 중인 포트를 확인하세요.
$ sudo netstat -tpln | egrep '(Proto|ssh)'
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 12586/sshd
이는 ssh
포트 22에서의 정상적인 작동입니다.
답변2
다른 방법을 통해 서버에 액세스할 수 있는 경우 다음을 실행하세요.
$ sudo grep Port /etc/ssh/sshd_config
Port NNN
그러면 위에 표시된 것과 같은 줄이 반환되며, 여기서 NNN
선택한 포트가 됩니다.
답변3
더 쉬운 방법은 SSH 서버 구성 파일을 보는 것입니다.
➜ ~ sudo grep Port /etc/ssh/sshd_config
Port 22
다음 명령을 사용하여 각 프로세스의 수신 포트를 확인할 수도 있습니다 lsof
.
sudo lsof -Pi | grep ssh
또는 netstat -lntu
.
답변4
서버 콘솔에 대한 액세스 권한이 없으면 원격 호스트의 모든 포트를 조사해야 합니다. 이러한 유틸리티는 유사 nmap
하지만 네트워크 계층은 호스트(IP 주소)와 포트의 특정 조합으로 트래픽을 중계해야 합니다.