Kali Linux 의 기본 네트워크 도구 활용

Kali LinuxBeginner
지금 연습하기

소개

이 실습에서는 Kali Linux 의 필수 네트워크 도구를 사용하여 기본적인 네트워크 진단 및 관리 작업을 수행하는 방법을 배웁니다. 이 실습 세션은 초보자를 위해 설계되었으며, 네트워크 상태 확인, 연결 테스트, 네트워크 장치 검색, 열린 포트 스캔 과정을 단계별로 안내합니다. ip a, ping, netdiscover, nmap과 같은 도구를 사용하면서 LabEx 가상 머신 환경 내에서 네트워크 분석의 기초 역량을 쌓게 됩니다. 터미널을 열면 Kali Linux 컨테이너 셸에 자동으로 연결되어 즉시 실습을 시작할 수 있습니다.

이 실습은 학습과 연습을 돕기 위해 단계별 지침을 제공하는 가이드형 실습입니다. 각 단계를 완료하고 실무 경험을 쌓으려면 지침을 주의 깊게 따르십시오. 통계에 따르면 이 실습은 초급 수준이며, 수료율은 94%입니다. 또한 학습자들로부터 100%의 긍정적인 평가를 받았습니다.

ip a 명령어로 네트워크 인터페이스 확인하기

첫 번째 단계에서는 ip a 명령어를 사용하여 시스템의 네트워크 인터페이스를 조사하는 방법을 배웁니다. 이는 네트워크 구성을 이해하기 위한 가장 기본적인 기술입니다.

LabEx 가상 머신 환경에서 터미널을 열면 Kali Linux 컨테이너 셸에 자동으로 연결됩니다. 컨테이너를 수동으로 시작하거나 셸에 진입할 필요가 없으며, 모든 환경이 이미 준비되어 있습니다.

먼저, iproute2 패키지가 설치되어 있지 않다면 설치해야 합니다. 터미널에 다음 명령어를 입력하고 Enter 키를 누르십시오.

apt update && apt install -y iproute2

이제 터미널에 다음 명령어를 입력하고 Enter 키를 누르십시오.

ip a

이 명령어는 시스템의 모든 네트워크 인터페이스와 IP 주소, 상태 등의 세부 정보를 나열합니다.

예상 출력 결과 (실제 결과는 다를 수 있음):

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
4: eth0@if5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
    link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0
       valid_lft forever preferred_lft forever

출력 내용에서 lo (루프백) 및 eth0 (기본 네트워크 인터페이스) 와 같은 인터페이스를 확인할 수 있습니다. eth0 아래의 inet 행에서 172.17.0.2와 같은 IP 주소를 찾으십시오. <UP> 상태는 인터페이스가 활성화되어 있음을 나타냅니다. 이 출력을 이해하면 시스템이 네트워크에 연결되어 있고 다음 작업을 수행할 준비가 되었음을 확인할 수 있습니다.

ping 명령어로 네트워크 연결 테스트하기

네트워크 인터페이스를 확인했으므로, 다음 단계는 시스템이 외부 서버와 통신할 수 있는지 테스트하는 것입니다. ping 명령어를 사용하여 인터넷 연결 상태를 확인해 보겠습니다.

ping이 설치되어 있지 않다면 먼저 설치합니다.

apt install -y iputils-ping

Kali Linux 컨테이너 터미널에 다음 명령어를 입력하고 Enter 키를 누르십시오.

ping -c 4 8.8.8.8

-c 4 옵션은 핑 시도 횟수를 4 회로 제한하며, 8.8.8.8은 연결 테스트를 위한 신뢰할 수 있는 대상인 Google 의 공용 DNS 서버입니다.

예상 출력 결과 (실제 결과는 다를 수 있음):

PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=117 time=10.2 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=117 time=9.8 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=117 time=10.1 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=117 time=9.9 ms

--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 9.800/10.000/10.200/0.141 ms

이 출력은 8.8.8.8로부터의 응답을 보여주며, time (밀리초 단위의 지연 시간) 및 icmp_seq (시퀀스 번호) 와 같은 세부 정보를 포함합니다. 0% packet loss는 연결이 성공적임을 의미합니다. 만약 100% packet loss가 보인다면 연결에 문제가 있는 것입니다. ping 명령어는 시스템이 외부 네트워크에 도달할 수 있는지 확인하는 간단하면서도 강력한 도구이며, 많은 네트워크 작업의 전제 조건입니다.

netdiscover 설치 및 사용을 통한 네트워크 장치 식별

네트워크 연결을 확인했으므로, 이제 netdiscover 도구를 사용하여 로컬 네트워크에 있는 장치들을 찾아보겠습니다. 이 도구는 Kali Linux 컨테이너에 기본적으로 설치되어 있지 않을 수 있으므로 먼저 설치를 진행합니다.

패키지 목록을 업데이트하고 netdiscover를 설치하는 것으로 시작합니다. 터미널에 다음 명령어들을 입력하고 각각 Enter 키를 누르십시오.

apt install -y netdiscover

이 명령어는 패키지 목록을 갱신하고 확인 절차 없이 netdiscover를 설치합니다. 설치가 완료될 때까지 몇 초간 기다려 주십시오.

다음으로 스캔할 네트워크 인터페이스를 식별해야 합니다. 1 단계에서 ip a를 사용했으므로, 해당 출력을 확인하거나 다시 실행하여 인터페이스 이름 (보통 eth0) 과 IP 범위 (Docker 환경의 경우 보통 172.17.0.0/16) 를 확인하십시오.

이제 netdiscover 도구를 실행하여 로컬 네트워크를 스캔합니다. 다음 명령어를 입력하고 Enter 키를 누르십시오.

netdiscover -i eth0 -r 172.17.0.0/16

-i eth0는 인터페이스를 지정하고, -r 172.17.0.0/16은 스캔할 IP 범위를 정의합니다. 인터페이스 이름이 다르다면 eth0 대신 해당 이름을 입력하십시오.

예상 출력 결과 (실제 결과는 다를 수 있음):

Currently scanning: 172.17.0.0/16   |   Screen View: Unique Hosts

2 Captured ARP Req/Rep packets, from 2 hosts.   Total size: 120
_____________________________________________________________________________
  IP            At MAC Address     Count     Len  MAC Vendor / Hostname
-----------------------------------------------------------------------------
172.17.0.1      02:42:ac:11:00:01      1      60  Unknown vendor
172.17.0.2      02:42:ac:11:00:02      1      60  Unknown vendor

이 출력은 네트워크에 있는 장치들의 IP 주소와 MAC 주소를 나열합니다. 예를 들어 172.17.0.2는 현재 사용 중인 시스템일 수 있고, 172.17.0.1은 게이트웨이일 수 있습니다. 장치를 감지할 수 있도록 스캔을 몇 초간 실행한 후 Ctrl+C를 눌러 중단하십시오.

netdiscover 도구는 ARP 요청을 사용하여 로컬 네트워크에서 활성화된 장치를 감지합니다. 이는 네트워크 진단 시 자신의 시스템과 동일한 네트워크 세그먼트에 어떤 장치들이 연결되어 있는지 파악하는 데 매우 유용합니다.

nmap 설치 및 기본 포트 스캔 수행

네트워크 장치를 식별했으므로, 다음 단계는 nmap 도구를 사용하여 특정 장치에서 열려 있는 포트를 스캔하는 것입니다. 이를 통해 대상 시스템에서 어떤 서비스가 실행 중인지 파악할 수 있습니다. nmap이 설치되어 있지 않다면 먼저 설치합니다.

터미널에 다음 명령어들을 입력하여 패키지 목록을 업데이트하고 nmap을 설치하십시오.

apt install -y nmap

설치가 완료될 때까지 잠시 기다려 주십시오.

이전 단계의 netdiscover 출력에서 확인한 네트워크 장치의 IP 주소 (예: 172.17.0.1) 를 메모해 두었을 것입니다. 이 IP 주소를 대상으로 열린 포트를 스캔해 보겠습니다. 스캔 결과에서 다른 IP 가 나왔다면 해당 IP 를 사용하십시오.

터미널에 다음 명령어를 입력하고 Enter 키를 눌러 기본 포트 스캔을 수행합니다.

nmap 172.17.0.1

예상 출력 결과 (실제 결과는 다를 수 있음):

Starting Nmap 7.95 ( https://nmap.org ) at 2025-04-11 06:04 UTC
Nmap scan report for 172.17.0.1
Host is up (0.0000060s latency).
Not shown: 997 closed tcp ports (reset)
PORT     STATE SERVICE
22/tcp   open  ssh
3000/tcp open  ppp
3001/tcp open  nessus
MAC Address: 02:42:06:F2:C3:B0 (Unknown)

Nmap done: 1 IP address (1 host up) scanned in 0.15 seconds

이 출력은 대상 IP 에서 열려 있는 포트 목록을 보여줍니다. 예를 들어 22/tcp open ssh는 SSH 서비스가 실행 중임을 나타내며, 3000/tcp3001/tcp는 웹 서버가 있음을 시사합니다. Network Mapper 의 약자인 nmap은 네트워크 탐색 및 보안 감사에 널리 사용되는 도구로, 장치의 잠재적인 접속 지점을 식별할 수 있게 해줍니다.

nmap 스캔 결과를 파일로 저장하기

마지막 단계에서는 나중에 참조할 수 있도록 nmap 스캔 결과를 파일로 저장하는 방법을 배웁니다. 이는 이전 단계에서 수행한 기본 포트 스캔을 확장한 작업입니다.

4 단계에서 사용한 것과 동일한 대상 IP 주소 (예: 172.17.0.1) 를 사용하여 터미널에 다음 명령어를 입력하십시오. 스캔을 수행하고 그 결과를 scan_results.txt라는 파일에 저장합니다.

nmap 172.17.0.1 -oN /root/scan_results.txt

-oN 옵션은 nmap이 결과를 일반 텍스트 형식으로 지정된 파일 경로 /root/scan_results.txt에 저장하도록 지시합니다. 4 단계에서 다른 IP 를 사용했다면 172.17.0.1 대신 해당 IP 를 입력하십시오.

결과는 이전과 마찬가지로 터미널에 표시되지만, 동시에 /root/scan_results.txt에도 저장됩니다. 파일에 결과가 잘 담겼는지 확인하려면 다음 명령어를 입력하고 Enter 키를 누르십시오.

cat /root/scan_results.txt

예상 출력 결과 (실제 결과는 다를 수 있음):

Starting Nmap 7.95 ( https://nmap.org ) at 2025-04-11 06:05 UTC
Nmap scan report for 172.17.0.1
Host is up (0.0000060s latency).
Not shown: 997 closed tcp ports (reset)
PORT     STATE SERVICE
22/tcp   open  ssh
3000/tcp open  ppp
3001/tcp open  nessus
MAC Address: 02:42:06:F2:C3:B0 (Unknown)

Nmap done: 1 IP address (1 host up) scanned in 0.15 seconds

스캔 결과를 파일로 저장하는 것은 분석 내용을 문서화하는 실용적인 방법입니다. 이를 통해 스캔을 다시 실행할 필요 없이 나중에 정보를 검토하거나 공유할 수 있으며, 이는 네트워크 분석 및 문제 해결 시 특히 유용합니다.

요약

이 실습을 통해 Kali Linux 에서 필수적인 네트워크 진단을 수행하기 위한 기본 네트워크 도구 사용법을 익혔습니다. ip a를 통한 네트워크 인터페이스 확인부터 ping을 이용한 연결 테스트, netdiscover를 활용한 로컬 네트워크 장치 검색, nmap을 이용한 기본 포트 스캔 및 결과 파일 저장 방법까지 학습했습니다. 이러한 기술은 Linux 환경에서 네트워크 분석 및 문제 해결을 수행하기 위한 견고한 토대가 될 것입니다.