본문 바로가기

OS/Linux

Linux - nmap을 이용하여 포트스캐닝 방법

728x90

서버에 문제가 발생했을 때 가장 먼저 시도하는 방법 중 하나는 ping 명령어를 사용하여 서버의 네트워크 연결 상태를 확인하는 것입니다. 보안 설정으로 인해 ping 이 차단된 경우 nmap을 사용하여 체크해 보면 됩니다.

 

nmap 소개

nmap은 버의 열린 포트를 스캔하여 어떤 서비스 프로그램이 실행 중인지 확인할 수 있는 도구입니다.

서버에 문제가 발생했을 때 nmap을 통해 원인 파악을 할 수 있습니다.

예를 들어 특정 포트가 열려 있는지, 특정 서비스가 실행 중인지 확인할 수 있어 문제 해결에 도움이 됩니다.

nmap 설치 방법 (RHEL 계열)

CentOS, RHEL, Fedora 등의 배포판에서 설치

# sudo yum install nmap

nmap 설치 방법 (Debian 계열)

# sudo apt-get install nmap

 

nmap 기본 사용법

nmap은 다양한 옵션을 제공하지만, 가장 기본적인 사용법은 아래와 같습니다.

# nmap 서버아이피

 

 

전체 포트 스캔

기본적으로 nmap은 잘 알려진 포트만 스캔합니다. 모든 포트를 스캔하고 싶다면 다음과 같이 입력합니다.

# nmap 서버아이피 -p0-65535

 

 

특정 포트만 스캔

특정 포트 하나만 스캔하려면 다음과 같이 명령어를 입력합니다.

# nmap 서버아이피 -p포트번호

 

 

포트 상태 설명

  • OPEN: 포트가 열려 있습니다.
  • CLOSED: 포트가 닫혀 있습니다.
  • FILTERED: 포트가 필터링되고 있습니다(방화벽에 의해 차단되거나 응용 프로그램에 문제가 있는 경우).

★ 응용 프로그램에 문제가 있을 때는 OPEN과 FILTERED 가 반복되거나 FILTERED 상태로 유지될 수 있습니다. ★

 

nmap의 옵션들

nmap은 기본적인 포트 스캔 외에도 제공하는 다양한 옵션들이 있습니다.

 

1. 서비스 버전 탐지 (-sV)

특정 포트에서 실행 중인 서비스의 버전을 확인할 수 있습니다. 

2. 운영체제 탐지 (-O)

이 옵션은 대상 시스템의 운영체제를 추정할 수 있습니다. nmap은 패킷 분석을 통해 운영체제를 식별합니다.

3. 스텔스 스캔 (-sS)

스텔스 스캔은 TCP 연결을 완전히 성립시키지 않고(3way handshake 안 함)  포트 상태를 확인합니다. 

4. 모든 프로토콜 스캔 (-sO)

TCP와 UDP뿐만 아니라 ICMP, GRE 등 모든 네트워크 프로토콜을 스캔할 수 있습니다. 

# nmap -sO 서버아이피

5. 빠른 스캔 (-T4)

빠른 스캔 모드는 우선순위를 높여 스캔 속도를 높입니다. 네트워크가 빠른 환경에서 스캔 시간을 단축할 수 있습니다.

6. 네트워크 맵핑 (-sn)

포트 스캔을 생략하고 어떤 호스트가 활성화되어 있는지 확인합니다. 네트워크 탐색 및 호스트 발견에 유용합니다.

# nmap -sn 네트워크아이피범위 // 172.16.30.0/24

 

 

# nmap -sn 네트워크아이피범위 // 172.16.30.1-5

 

7. 스크립트 엔진 사용 (-sC, --script)

nmap에는 다양한 스크립트가 내장되어 있어 여러 네트워크 검사를 수행할 수 있습니다.

8. 순차 포트 스캔 (-r)

포트를 무작위로 스캔하는 기본 동작과 달리 순차적으로 포트를 스캔합니다.

# nmap -r 서버아이피

9. UDP 스캔 (-sU)

기본적으로 TCP 포트를 스캔하지만 이 옵션을 통해 UDP 포트를 스캔할 수 있습니다.

10. 특정 포트 범위 스캔 (-p)

특정 포트 범위만 스캔하고 싶을 때 사용합니다.

# nmap 서버아이피 -p0-8080  // 0~8080 까지 스캔

# nmap 서버아이피 -p 22,80,3306  // 특정 포트들만 선택하여 스캔

11. ping 차단 시 스캔 (-Pn)

ICMP 요청 말고 TCP 스캔을 통해 호스트 상태를 확인합니다.

# nmap -Pn 서버아이피

 

728x90
반응형