Nmap(Network Mapper)

Nmap(Network Mapper)은 네트워크 탐색 및 보안 감사 목적으로 사용되는 오픈 소스 네트워크 스캐너입니다. 네트워크에서 연결된 호스트, 사용 중인 포트, 서비스 버전 및 운영 체제 등의 정보를 수집하는 데 매우 유용하며, 주로 보안 전문가와 시스템 관리자가 네트워크 보안 문제를 탐지하거나 네트워크 자원을 관리하기 위해 사용합니다.

Nmap의 주요 기능:

  1. 포트 스캔:
    • 네트워크에 연결된 특정 호스트의 열려 있는 **포트(서비스)**를 스캔하여, 해당 포트가 어떤 상태(열림, 닫힘, 필터링)인지 확인할 수 있습니다.
  2. 호스트 탐색:
    • 네트워크 상에서 활성화된 장치 또는 호스트를 탐색합니다. 이를 통해 네트워크에 어떤 기기가 연결되어 있는지 알 수 있습니다.
  3. 서비스 및 버전 탐지:
    • 특정 포트에서 실행 중인 서비스의 종류와 버전을 탐지할 수 있습니다. 예를 들어, HTTP 서버가 Apache인지 Nginx인지, 그 버전이 무엇인지를 확인할 수 있습니다.
  4. 운영 체제 탐지:
    • 원격 호스트의 운영 체제를 추측할 수 있는 기능도 있습니다. TCP/IP 패킷의 특성을 기반으로 운영 체제(예: Windows, Linux, macOS)를 확인합니다.
  5. 네트워크 매핑:
    • 네트워크의 구조를 시각적으로 분석하고, 네트워크 상의 장치들 간의 관계를 파악할 수 있습니다.
  6. 보안 감사 및 취약점 스캐닝:
    • Nmap은 시스템의 보안 상태를 분석하고, 취약한 네트워크 구성 요소를 탐지하는 데 널리 사용됩니다. 이를 통해 네트워크가 보안 위협에 노출될 수 있는 부분을 확인하고, 이에 대응할 수 있습니다.
  7. NSE (Nmap Scripting Engine):
    • Nmap에는 다양한 사용자 스크립트를 실행할 수 있는 **NSE(Nmap Scripting Engine)**가 포함되어 있습니다. 이를 통해 네트워크 서비스의 취약점을 더 깊이 검사하고, 복잡한 보안 감사 작업을 자동화할 수 있습니다.
  8. 방화벽 우회 및 고급 스캔:
    • 방화벽이나 필터링된 네트워크 환경에서도 효과적으로 스캔할 수 있도록 다양한 고급 스캔 기술(IP 프래그먼트, 스텔스 스캔 등)을 제공합니다.

Nmap의 주요 사용 사례:

  • 보안 감사: 시스템 및 네트워크의 보안 취약점을 탐지하는 데 사용됩니다.
  • 네트워크 인벤토리: 네트워크에 연결된 장치 및 서버를 탐색하고, 해당 장치들의 운영 체제 및 서비스 정보를 수집할 수 있습니다.
  • 보안 테스트: 침투 테스트에서 네트워크 취약점을 찾고 방화벽이나 침입 탐지 시스템의 설정을 평가하는 데 사용됩니다.
  • 시스템 관리: 네트워크 관리자는 Nmap을 사용하여 서버 및 네트워크 장치의 상태를 모니터링하고 관리할 수 있습니다.

Nmap의 주요 명령어 예시:

  1. 단순 포트 스캔:
  • 대상 IP 주소의 열려 있는 포트를 스캔합니다.

특정 포트 범위 스캔:

  • 대상 IP에서 포트 1~1000 범위의 포트를 스캔합니다.

서비스 및 버전 탐지:

  • 대상 IP에서 서비스 및 버전을 탐지합니다.

운영 체제 탐지:

  • 대상 IP의 운영 체제를 탐지합니다.

Nmap 스크립트 엔진을 사용한 스캔:

nmap –script vuln 192.168.1.1

    • vuln 스크립트를 사용하여 대상 IP에서 취약점을 스캔합니다.

결론:

Nmap은 네트워크 및 보안 전문가들이 네트워크 탐색, 보안 감사, 취약점 분석 등을 수행하기 위해 사용하는 강력한 도구입니다. 오픈 소스이며, 다양한 기능과 확장성을 제공하기 때문에 시스템 및 네트워크 관리에서 매우 유용하게 사용됩니다.

최신 버전 설치 방법 –

1. Nmap 설치 확인

먼저, Nmap이 이미 설치되어 있는지 확인할 수 있습니다.

만약 아무 출력도 없으면, Nmap이 설치되지 않은 것입니다.

2. Nmap 설치

Nmap이 설치되어 있지 않다면, 패키지 관리자를 통해 설치할 수 있습니다.

이 명령어로 공식 리포지토리에서 Nmap을 설치할 수 있습니다.

3. 소스에서 Nmap 설치

만약 공식 리포지토리의 Nmap 버전이 오래되어 최신 버전을 소스에서 직접 설치해야 한다면, 다음 절차를 따르세요.

(1) 이전 설치 파일 제거 (이미 설치 시)

(2) 필요한 도구 설치

Nmap을 소스에서 빌드하려면 컴파일에 필요한 패키지를 설치해야 합니다.

(3) 최신 Nmap 소스 다운로드 및 설치

Nmap 소스 파일을 다운로드한 후 압축을 풀고, 컴파일하여 설치합니다.

  1. 다운로드

압축 해제

압축을 해제하려면 bzip2가 설치되어 있어야 합니다. 아직 설치하지 않았다면 아래 명령어로 설치합니다.

압축 해제를 시도합니다.

컴파일 및 설치

이제 Nmap이 /usr/local/bin/nmap에 설치됩니다.

(4) 경로 확인

Nmap이 설치된 경로를 확인합니다.

Nmap이 올바르게 설치되었다면, 설치된 경로가 출력됩니다.

5.오류 발생

which nmap 명령어가 /usr/local/bin/nmap을 반환하고 있는데도 Nmap 실행 시 /usr/bin/nmap 경로에서 “그런 파일이나 디렉터리가 없습니다” 오류가 발생하는 이유는, 시스템이 nmap/usr/local/bin/ 경로에서 찾는 대신 /usr/bin/ 경로에서 찾고 있기 때문입니다. 이는 환경 변수$PATH와 관련이 있습니다.

문제 원인:

  • /usr/bin/nmap 경로에 Nmap이 없고, nmap/usr/local/bin/에 설치된 상태에서 시스템이 /usr/bin/을 먼저 확인하기 때문에 발생하는 문제입니다.
  • 시스템의 PATH 환경 변수에 따라 실행 파일을 찾는 순서가 결정되는데, 현재 상황에서는 /usr/bin//usr/local/bin/보다 앞에 있을 수 있습니다.

해결 방법:

nmap/usr/local/bin/에 설치되어 있으므로, 해당 경로를 시스템이 인식하도록 하거나 /usr/bin/에 심볼릭 링크를 만들어 해결할 수 있습니다.

1. 환경 변수 PATH 수정

/usr/local/bin/ 경로가 $PATH 변수에 포함되어 있는지 확인하고, 없다면 추가합니다.

  1. 현재 $PATH 확인

/usr/local/bin이 포함되어 있는지 확인합니다. 만약 포함되어 있지 않다면, 다음 명령을 사용하여 ~/.bashrc 파일에 추가할 수 있습니다.

~/.bashrc 파일 수정

파일의 끝에 다음 줄을 추가하여 /usr/local/bin을 PATH에 포함시킵니다.

변경 사항 적용

다음 명령어로 변경 사항을 적용합니다.

이제 nmap 명령어를 실행하면 /usr/bin/nmap에서 실행됩니다.

요약:

  • PATH 환경 변수 수정으로 /usr/local/bin/nmap이 인식되도록 하거나,
  • 심볼릭 링크를 생성하여 /usr/bin/nmap에서 실행되도록 하면 문제를 해결할 수 있습니다.

6. 컴파일 오류시

makeopenssl/bn.h 파일을 찾을 수 없다는 오류는 OpenSSL 개발 라이브러리가 설치되지 않았기 때문에 발생하는 문제입니다. openssl/bn.h는 OpenSSL 개발 헤더 파일 중 하나로, OpenSSL 라이브러리가 제대로 설치되어 있지 않거나, 개발 헤더 파일이 누락된 경우에 발생합니다.

이 문제를 해결하려면 OpenSSL 개발 패키지를 설치해야 합니다.

해결 방법: OpenSSL 개발 패키지 설치

  1. OpenSSL 개발 라이브러리 설치 CentOS에서는 openssl-devel 패키지가 필요합니다. 이 패키지에는 OpenSSL과 관련된 헤더 파일들이 포함되어 있어 소프트웨어 빌드 시 필요한 파일들을 제공합니다.다음 명령어로 openssl-devel 패키지를 설치할 수 있습니다.

다시 빌드 시도 OpenSSL 개발 패키지를 설치한 후, 다시 빌드를 시도합니다.

추가 확인 사항:

  • 만약 다른 의존성이 필요한 경우, 해당 의존성 패키지도 설치해야 합니다.
  • OpenSSL이 올바르게 설치되었는지 확인하려면 다음 명령어를 사용할 수 있습니다.

이 과정을 통해 openssl/bn.h 파일을 찾을 수 없다는 문제를 해결할 수 있으며, 빌드를 정상적으로 진행할 수 있을 것입니다.