본문 바로가기
dev/unix-like

[linux] 리눅스 포트 스캔 방법 (nmap port scan)

by 최연탄 2023. 6. 20.
728x90
반응형

참고: https://phoenixnap.com/kb/nmap-scan-open-ports

nmap은 전세계에서 유명한 네트워크 스캐너입니다. nmap 호스트 보안 도구를 사용하면 방화벽 및 보안 구성이 얼마나 잘 작동하는지 확인할 수 있습니다. 이 포스트에서는 리눅스 시스템에서 nmap을 사용하여 열려 있는 모든 포트를 스캔하는 방법을 알아보겠습니다.

포트 란?

운영체제에서 포트란 네트워크 트래픽에 대해 번호가 매겨진 주소입니다. 기본적으로 서비스 마다 다른 포트를 사용합니다. 예를 들어 일반 웹 트래픽은 포트 80을 사용하고 POP3 이메일은 포트 110을 사용합니다. 여기서 방화벽은 특정 포트를 통한 트래픽을 허용하거나 제한하는 방법으로 작동합니다.

포트 구성에 따라 보안 위험을 유발할 수 있으므로 어떤 포트가 열려있고 어떤 포트가 차단되어 있는지 확인하는 것은 중요합니다.

nmap 포트 스캔 방법

리모트 시스템에서 nmap 포트를 스캔하려면 터미널에서 다음을 입력하면됩니다:

sudo nmap 192.168.0.1

IP 주소를 테스트 중인 시스템의 IP 주소로 바꿉니다. 위의 예제는 nmap의 기본 형식이며 해당 시스템의 포트에 대한 정보를 리턴합니다.

IP 주소로 스캔하는 것 외에도 다음 명령을 사용하여 대상을 지정할 수도 있습니다.

호스트를 스캔하려면:

nmap www.hostname.com

스캔하려는 IP 주소의 범위를 지정하려면 (192.168.0.1 ~ 192.168.0.10):

nmap 192.168.0.1-10

서브넷에서 nmap을 돌리려면:

nmap 192.168.0.1/13

텍스트 파일에서 타겟을 읽어오려면:

nmap –iL textlist.txt

nmap.org의 개발자는 nmap을 테스트할 수 있는 scanme.nmap.org 테스트 서버를 제공합니다. 이를 사용하여 nmap 유틸리티를 테스트할 수 있습니다.

단일 포트, 모든 포트, 시리즈 스캔

nmap 명령어를 사용하여 단일 포트 또는 여러 포트를 스캔할 수 있습니다.

대상 시스템에서 포트 80을 스캔:

nmap –p 80 192.168.0.1

대상 시스템의 포트 1 에서 200 까지 스캔:

nmap –p 1-200 192.168.0.1

주로 사용하는 포트 (빠른) 스캔:

nmap –F 192.168.0.1

1 에서 65535 까지의 모든 포트 스캔:

nmap –p– 192.168.0.1

다른 타입의 nmap 포트 스캔

다른 종류의 스캔도 가능합니다.

TCP 연결을 사용하여 스캔 (시간이 더 걸리지만 연결될 가능성이 더 높음):

nmap –sT 192.168.0.1

기본 SYN 스캔 (TCP 핸드쉐이크의 반만 수행해 스캔):

nmap –sS 192.168.0.1

TCP 포트 대신 UDP 포트를 스캔 (이 예제에서는 포트 80, 130, 255를 스캔하도록 지정):

nmap –sU –p 80,130,255 192.168.0.1

대상 시스템에서 빠른 스캔을 하지만 호스트 디스커버리는 넘어감 (호스트 디스커버리는 ping을 사용하지만 대부분의 서버 방화벽은 ping 요청에 응답하지 않습니다. 이 옵션은 오지 않을 수 있는 응답을 기다리지 않고 테스트를 강제 실행합니다.):

nmap –Pn –F 192.168.0.1

nmap 유틸리티는 특정 타겟의 운영체제를 탐지할 수도 있습니다:

nmap –A 192.168.0.1

기존에 알려진 포트가 아닌 다른 포트를 사용하고 있는 서비스를 검색:

nmap –sV 192.168.0.1

공통 포트

다음은 표준 포트와 해당 포트의 이름에 대한 간략한 목록입니다:

  • 21 - FTP
  • 22 - SSH
  • 25 - SMTP (이메일 전송)
  • 53 - DNS (domain name service)
  • 80 - HTTP (web server)
  • 110 - POP3 (이메일 inbox)
  • 123 - NTP (network time protocol)
  • 143 - IMAP (이메일 inbox)
  • 443 - HTTPS (secure web server)
  • 465 - SMTPS (보안 이메일 전송)
  • 631 - CUPS (프린트 서버)
  • 993 - IMAPS (이메일 inbox)
  • 995 - POP3 (이메일 inbox)

리눅스 방화벽을 사용하면 특정 포트의 모든 트레픽을 차단할 수 있습니다.

예를 들어, 포트 80을 차단하도록 방화벽을 설정할 수는 있지만 이 경우 사용자는 어떤 웹 사이트도 로드할 수 없게됩니다. 이 때 방화벽 룰을 사용하면 일부 포트는 허용하고 나머지 포트는 차단할 수 있습니다. 여기서 네트워크 보안 도구를 방화벽과 함께 사용하여 특정 포트의 트래픽을 스캔하고 의심스러운 트래픽을 감시할 수 있습니다.

nmap scanning best practices

nmap 포트 스캔은 본인이 소유하고 있거나 스캔 권한이 있는 서버에서만 사용해야 합니다. 종종 포트 스캐닝은 공격적인 방법으로 사이버 공격의 시작으로 간주됩니다. nmap을 사용하여 동일한 대상에 대해 반복적인 스캔을 실행하여 서버의 리소스를 잡아먹는 것도 나쁜 습관으로 간주됩니다.

포트 스캔을 통해 장비의 비정상적인 활동을 발견할 수도 있습니다. 예를 들면 비정상적인 포트에서 실행중인 서비스를 찾아낼 수 있습니다. 이는 이상한 일이 진행 중 이므로 조사해봐야 함을 의미합니다.

OS나 서비스 검색 옵션은 특정 포트 또는 서비스를 검색하여 자세한 정보를 얻는 데 유용합니다. 서비스가 기본 포트가 아닌 포트에서 실행 중인 경우 의도된 것일 수도 있고 보안 위반이 있음을 암시할 수도 있습니다.

포트에는 기본 용도가 있는 경우가 있습니다. 1000 미만의 포트는 대부분 전용 포트이며 특정 서비스에 할당됩니다.

정리

이 포스트에서는 nmap 스캐닝의 개요와 리눅스에서 포트를 테스트하는 방법을 알아봤습니다. 이제 포트 작동 방식과 포트 사용 방식을 아는게 왜 중요한지 이해해야 합니다.

nmap은 시스템 관리자가 보안 결함을 찾고 디버깅하기 위한 다목적 도구입니다.

관련 글

포트 스캔 이란? (port scanning)

반응형

댓글