Step 6. 네트워크 확인 — 내 컴퓨터의 대외 연락망 점검

Step 6. 네트워크 확인 — 내 컴퓨터의 대외 연락망 점검

Level 0 — 컴퓨터 조작과 구조의 이해 | 난이도 ★★☆☆☆ | 예상 소요 시간 2~3시간

전제: Step 5 완료. 윈도우 파워쉘에서 진행합니다. 오늘은 인터넷 연결이 필요합니다.

  • 준비물: 윈도우 PC, 파워쉘, 인터넷 연결.
  • 안전: 오늘 실험은 전부 "확인" 명령입니다. 존재하지 않는 주소로 핑을 보내는 실험이 있지만, 내 컴퓨터에서 나가는 진단 신호일 뿐이라 안전합니다.
  • 주의: 개념 세 개(IP, 게이트웨이, DNS)가 오늘의 뼈대입니다. 처음엔 비유로 잡고, 실습에서 확인하고, 정리에서 다시 잡습니다.

오늘은 보안의 본무대, 네트워크의 첫날입니다. 휴대폰 요금 명세서에서 모르는 번호와의 통화 기록을 발견하면 "누구지?" 하겠죠. 컴퓨터도 똑같습니다 — 당신이 모르는 사이에 수많은 외부 주소와 대화를 나누고, 악성코드가 본거지와 몰래 통신하는 것도 이 대화에 섞여 있습니다. "지금 내 컴퓨터가 어디와 연결되어 있는가"를 보는 법은 침해 조사의 기본 항목이고, 공격자도 네트워크에 들어오면 제일 먼저 같은 확인을 합니다. 목적이 반대일 뿐, 도구는 같습니다.


1. 학습 목표

이 챕터를 끝내면 다음을 할 수 있습니다:

  • 내 PC의 IP 주소, 기본 게이트웨이, DNS 서버를 찾아 설명한다
  • Test-Connection(핑)으로 통신 여부를 확인한다
  • 인터넷 장애 때 DNS 문제와 연결 문제를 구분한다
  • netstat -an으로 현재 외부와 맺어진 연결 목록을 읽는다

2. 배경 지식 — 오늘의 도구와 개념

오늘의 도구 한눈에 보기

구분 내용
언어·환경 파워쉘 5.1 + 윈도우 네트워크 진단 명령
오늘의 명령어 ipconfig /all(주소 확인), Get-NetIPAddress(파워쉘식 주소), Test-Connection(핑), netstat -an(연결 목록)
필요한 개념 IP 주소, 기본 게이트웨이, DNS, 포트, 사설/공인 주소, 127.0.0.1(localhost)

2-1. IP 주소 — 네트워크에서의 내 집 주소

네트워크에서 컴퓨터를 찾으려면 주소가 필요합니다. 그게 IP 주소입니다. 192.168.0.15처럼 숫자 네 덩어리로 생겼습니다.

집 네트워크에서 보통 보는 구조:

[내 PC: 192.168.0.15] ─┐
[휴대폰: 192.168.0.22] ─┼─ [공유기: 192.168.0.1] ─── 인터넷 ─── [구글: 142.250.x.x]
[노트북: 192.168.0.30] ─┘
  • 192.168.x.x로 시작하는 주소는 집안(사설) 주소입니다. 집 안에서만 통하는 내부 번호죠. (전 세계 수많은 집이 같은 번호를 씁니다 — 우리 집 15번과 남의 집 15번이 공존 가능.)
  • 인터넷의 진짜 주소(공인 IP)는 공유기가 대표로 갖고 있습니다. 집안 컴퓨터들의 편지는 공유기가 모아서 바깥에 전달합니다.

2-2. 게이트웨이 — 밖으로 나가는 출입문

내 PC가 google.com에 가고 싶다고 합시다. 그 주소는 우리 집 번호판에 없습니다. 그럼 편지를 누구에게 맡길까요? 출입문, 즉 게이트웨이에 맡깁니다. 가정에서는 공유기가 그 역할입니다.

"기본 게이트웨이 = 바깥 세상으로 나가는 문의 주소" — 보통 192.168.0.1(공유기)입니다. 이 문이 막히면 집 안에서는 서로 보이는데 바깥은 전부 안 됩니다.

2-3. DNS — 이름을 주소로 바꾸는 전화번호부

사람은 google.com이라는 이름을 쓰지만, 네트워크는 142.250.207.78 같은 숫자 주소로 움직입니다. 누가 번역할까요? DNS(Domain Name System) — 세계 규모의 전화번호부 서비스입니다.

순서:

  1. 당신: "google.com에 접속해 줘"
  2. 컴퓨터: (DNS 서버에) "google.com의 번호가 뭐죠?" → "142.250.207.78입니다"
  3. 컴퓨터: 그 숫자 주소로 접속

왜 보안에서 DNS가 중요한가: 이 번역이 오염되면, 은행 주소를 물었는데 가짜 번호를 알려줄 수 있습니다(DNS 스푸핑). 그리고 악성코드는 자기 본거지 주소를 알아내는 데 DNS를 쓰기 때문에, "이상한 이름을 자주 묻는다"가 감염 신호가 되기도 합니다. Level 2에서 이 공격들을 직접 만납니다.

2-4. 포트 — 건물의 몇 호인지

포트(port)는 Step 34에서 정식으로 다루지만, 오늘 필요한 만큼만 미리 봅시다. 주소(IP)가 건물까지 안내했다면, 포트는 그 건물의 몇 호인지입니다. 웹은 80/443호, SSH는 22호. "연결"은 항상 주소:포트 쌍으로 기록됩니다.


3. 따라 하기

3-1. 내 주소 확인 — ipconfig /all

ipconfig /all

상당히 길게 나옵니다. (네트워크 카드가 여러 개라 그렇습니다 — 유선, 무선, 가상 카드 등.) 이 중에서 지금 쓰는 카드(보통 "무선 LAN 어댑터 Wi-Fi" 또는 "이더넷 어댑터")를 찾아 이런 줄들을 봅니다:

   물리적 주소 . . . . . . . . : A4-B1-C1-XX-XX-XX
   IPv4 주소 . . . . . . . . . : 192.168.0.15(기본 설정)
   서브넷 마스크 . . . . . . . : 255.255.255.0
   기본 게이트웨이 . . . . . . : 192.168.0.1
   DNS 서버. . . . . . . . . . : 192.168.0.1

오늘의 핵심 세 줄을 찾아 직접 메모하세요:

항목 내 값 의미
IPv4 주소 (예: 192.168.0.15) 내 집 주소
기본 게이트웨이 (예: 192.168.0.1) 출입문(공유기)
DNS 서버 (예: 192.168.0.1) 전화번호부 위치

(참고: 물리적 주소는 MAC 주소 — 네트워크 카드 자체의 일련번호입니다. IP가 "이사 가면 바뀌는 집 주소"라면 MAC은 "카드의 지문"입니다. 지금은 존재만 기억.)

3-2. 파워쉘 방식 — Get-NetIPAddress

같은 정보를 파워쉘답게 볼 수도 있습니다:

Get-NetIPAddress -AddressFamily IPv4
IPAddress      InterfaceAlias              PrefixLength
---------      --------------              ------------
192.168.0.15   Wi-Fi                                  24
127.0.0.1      Loopback Pseudo-Interface 1             8

여기서 특별한 주소 하나가 보입니다: 127.0.0.1 — 이건 "나 자신"을 가리키는 특수 주소입니다. 이름도 있어서 localhost라고 부릅니다. 집으로 치면 "우리 집 안에서의 ‘나’". 나중에 로컬 서버를 띄우는 실습에서 계속 만나게 될 주소입니다. 지금 메모해 두세요.

(참고: 가상화 도구가 깔린 PC라면 vEthernet 같은 가상 카드 주소들이 여럿 보일 수 있습니다 — 정상입니다. 지금 쓰는 카드 하나만 찾으면 됩니다.)

3-3. 통신 확인 — Test-Connection (핑)

컴퓨터가 실제로 바깥과 대화되는지 확인하는 가장 기본 테스트가 핑(ping)입니다. "저기요, 계세요?" 하고 불러서 대답이 오는지 보는 겁니다.

Test-Connection 8.8.8.8

윈도우 기본 파워쉘(5.1)에서의 실제 출력:

Source   Destination  IPV4Address  Bytes  Time(ms)
------   -----------  -----------  -----  --------
LEE-PC   8.8.8.8      8.8.8.8      32     33
LEE-PC   8.8.8.8      8.8.8.8      32     33
...
  • 8.8.8.8 — 구글이 무료로 운영하는 유명한 DNS 서버. 인터넷 테스트의 표준 목적지입니다.
  • 결과가 줄 단위로 계속 나오면 — 대답이 왔다 = 인터넷까지 길이 뚫려 있다
  • Time(ms) — 왕복 시간. 수십 ms면 쾌적합니다

(참고: 최신 파워쉘 7을 깔았다면 Status: Success, Latency(ms) 같은 새 형식으로 나옵니다. 둘 다 "대답이 왔다"는 같은 뜻입니다.)

3-4. 이름으로 테스트 — DNS 확인

이번엔 숫자가 아니라 이름으로 불러 봅니다:

Test-Connection google.com

이것도 결과가 나오면, DNS 번역(이름→숫자)까지 정상이라는 뜻입니다.

오늘의 진단 공식 — 꼭 기억하세요:

8.8.8.8 핑 google.com 핑 진단
정상
DNS 문제 (길은 뚫렸는데 번역이 고장)
연결 자체 문제 (공유기/선로부터 의심)

인터넷이 안 될 때 "컴퓨터를 껐다 켜기" 전에 이 두 줄이면 1차 진단이 됩니다. 실제로 회사 헬프데스크의 첫 질문이 이겁니다.

3-5. 지금 누구와 연결 중? — netstat

오늘의 하이라이트입니다. 지금 이 순간, 내 컴퓨터와 실제로 연결이 맺어진 외부 목록을 봅니다:

netstat -an | Select-String ESTABLISHED
  TCP    192.168.0.15:51234    142.250.207.78:443    ESTABLISHED
  TCP    192.168.0.15:51235    20.190.160.12:443     ESTABLISHED
  ...

한 줄씩 읽는 법:

  • TCP — 연결 방식의 이름 (지금은 넘어가도 됩니다)
  • 왼쪽 192.168.0.15:51234우리 쪽 (내 주소:내 방 번호)
  • 오른쪽 142.250.207.78:443상대 쪽 (구글:443호, 즉 웹 서비스)
  • ESTABLISHED — "연결 성립됨" (Select-String으로 이 상태만 골라낸 겁니다 — Step 4의 기술!)

지금 브라우저가 열려 있다면 구글/네이버 등의 주소가 보일 겁니다. 클라우드 동기화(원드라이브 등)가 켜져 있으면 그 서버들도 보입니다. 필자의 PC에서 이 순간 80개가 잡혔습니다 — 브라우저 탭 하나도 연결을 여러 개 만드니, 많다고 놀랄 일이 아닙니다.

보안 관점: 이 목록에 모르는 해외 주소, 이상한 포트로의 상시 연결이 있다면 조사 대상입니다. 실제 침해 분석에서 "이 연결은 정상 프로그램의 것인가?"를 하나하나 가려내는 작업을 합니다. 그 판단의 출발점이 평소 이 목록이 어떻게 생겼는지 아는 것 — 또 한 번 "정상의 풍경" 이야기입니다.

예측해 보기: 브라우저로 아무 사이트나 새로 연 직후와, 몇 분 뒤의 netstat 결과는 어떻게 다를까요? (정답: 새로 연 사이트의 주소:443 연결이 추가됩니다. 창을 닫으면 조금 뒤 사라집니다. 직접 실험해 보세요.)

3-6. 진단 종합 실험 — 일부러 고장 내기

배운 진단 공식을 써먹어 봅시다. (안전한 실험입니다.)

  1. 존재하지 않는 주소로 핑: Test-Connection 10.255.255.1 → 어떤 결과가 나오는지 관찰 (시간 초과류 메시지를 읽어 보세요. 실패 메시지도 정보입니다.)
  2. 존재하지 않는 이름으로 핑: Test-Connection no-such-domain-xyz123.com → 이번엔 다른 종류의 실패입니다. 실측 메시지:
Test-Connection : 'no-such-domain-xyz123.com' 컴퓨터에 대한 ping 테스트를 실패했습니다.
알려진 호스트가 없습니다

"알려진 호스트가 없다" = 그 이름의 번역(DNS)이 존재하지 않는다는 뜻 — 즉 이름 단계에서의 실패입니다.

두 실패의 메시지가 다름을 확인하세요. 이 차이를 읽을 수 있으면, 장애 현장에서 무엇이 고장인지 훨씬 빨리 좁힐 수 있습니다.


4. 미션과 연습문제

미션 — 내 네트워크 신상 명세서

오늘 배운 명령으로, 내 컴퓨터의 네트워크 정보를 모은 network-report.txt를 만드세요:

  1. 첫 줄에 조사 시각 (Get-Date)
  2. 내 IPv4 주소, 게이트웨이, DNS 서버 (ipconfig /all 결과에서 해당 부분 — 통째로 저장해도 됩니다)
  3. 8.8.8.8 핑 결과 (정상 여부)
  4. google.com 핑 결과 (DNS 정상 여부)
  5. 현재 ESTABLISHED 연결 수 (netstat -an | Select-String ESTABLISHED | Measure-Object의 개수)

전부 Step 5에서 배운 Out-File ... -Append 패턴으로 쌓으면 됩니다.

연습문제

문제 1. 인터넷이 안 됩니다. Test-Connection 8.8.8.8은 성공, Test-Connection google.com은 실패했습니다. 어디가 고장인가요?

문제 2. netstat 결과 한 줄 TCP 192.168.0.15:51234 142.250.207.78:443 ESTABLISHED를 해석하세요.

문제 3. 127.0.0.1은 어떤 주소인가요?

문제 4. ipconfig에서 IPv4 주소가 169.254.x.x로 나왔습니다. 무슨 뜻인가요?


5. 모범 답안과 완료 기준

미션 해설

Get-Date | Out-File network-report.txt
"=== 내 주소 정보 ===" | Out-File network-report.txt -Append
ipconfig /all | Out-File network-report.txt -Append
"=== 8.8.8.8 핑 ===" | Out-File network-report.txt -Append
Test-Connection 8.8.8.8 | Out-File network-report.txt -Append
"=== google.com 핑 ===" | Out-File network-report.txt -Append
Test-Connection google.com | Out-File network-report.txt -Append
"=== 현재 ESTABLISHED 연결 수 ===" | Out-File network-report.txt -Append
(netstat -an | Select-String ESTABLISHED | Measure-Object).Count | Out-File network-report.txt -Append

검증하는 법: Get-Content network-report.txt로 읽어 다섯 항목이 순서대로 들어 있으면 완료입니다. 두 핑 결과가 표 형태로 기록됐다면 "정상"이라는 뜻이고, 오류가 기록됐다면 그 오류 메시지 자체가 진단 결과입니다.

심화 질문의 답: 여러분 집의 DNS 서버가 192.168.0.1(공유기)로 나왔다면, 공유기는 그 번역을 또 상위에 물어봅니다 — 통신사 DNS나 8.8.8.8 같은 공개 DNS입니다. "누구의 번호부를 신뢰하는가"가 DNS 보안의 쟁점입니다.

연습문제 해답

문제 1 해답. DNS 문제입니다. 숫자 주소로는 통신이 되는데 이름 번역이 안 되니, 길은 멀쩡하고 전화번호부(DNS)만 고장 난 상태입니다. DNS 서버 설정을 점검하면 됩니다.

문제 2 해답. 내 컴퓨터(192.168.0.15)의 51234번 포트가, 상대(142.250.207.78 — 구글)의 443번 포트(HTTPS 웹 서비스)와 지금 연결 성립(ESTABLISHED) 중이라는 뜻입니다. 브라우저로 구글 계열 사이트를 보고 있는 정상 연결입니다.

문제 3 해답. "나 자신"을 가리키는 특수 주소입니다. localhost라는 이름으로도 부릅니다. 외부로 나가지 않고 내 컴퓨터 안에서 끝나는 주소로, 나중에 로컬 서버 실습에서 계속 만납니다.

문제 4 해답. "주소를 자동으로 받지 못했다"는 신호입니다 — 공유기(DHCP)와의 대화에 실패한 상태입니다. 공유기 재시작이나 케이블 확인으로 해결되는 경우가 많습니다.

완료 기준 체크리스트

  • [ ] 내 PC의 IPv4 주소/게이트웨이/DNS 서버를 찾아 말할 수 있다
  • [ ] IP·게이트웨이·DNS의 역할을 비유로 설명할 수 있다
  • [ ] Test-Connection으로 통신 여부를 확인할 수 있다
  • [ ] DNS 문제와 연결 문제를 구분하는 공식을 안다
  • [ ] netstat -an 결과에서 "내 쪽/상대 쪽/포트"를 읽을 수 있다
  • [ ] 미션: network-report.txt를 완성했다

6. 흔한 실수와 해결

벽 1. ipconfig 결과가 너무 많아서 뭘 봐야 할지 모르겠다

가상 카드(VMware, VirtualBox, WSL 등)가 섞여 있어서 그렇습니다. 지금 인터넷이 되는 카드 하나만 찾으면 됩니다. 판별법: IPv4 주소가 192.168.x.x10.x.x.x로 실제 부여된 카드. 미디어 상태: 연결 끊김인 카드는 무시하세요.

벽 2. Test-Connection이 빨간 오류를 뿜는다

실패한 겁니다 — 그리고 그게 정보입니다. 메시지를 읽으세요: "알려진 호스트가 없다"면 이름(DNS) 문제, 시간 초과면 상대나 길의 문제. 오류도 진단의 재료입니다.

벽 3. netstat 결과가 너무 많다

정상입니다. 브라우저 탭 하나도 여러 연결을 만듭니다. 좁혀서 보고 싶으면 netstat -an | Select-String "443"처럼 포트로 거르거나, | Select-Object -First 20으로 자르세요. 목적은 "전부 암기"가 아니라 "수상한 걸 찾을 수 있는가"입니다.

벽 4. 192.168이 아니라 169.254로 시작한다

169.254.x.x는 "주소를 자동으로 받지 못했다"는 신호입니다 (연습문제 4 참조). 공유기 재시작이나 케이블 확인으로 해결되는 경우가 많습니다.

벽 5. 회사/학교에서는 결과가 다르다

조직 네트워크는 프록시(중계 서버)를 거치거나 핑을 막는 경우가 있습니다. 8.8.8.8 핑이 안 되어도 인터넷이 되는 환경도 있습니다 — 그럴 땐 Test-NetConnection -ComputerName google.com -Port 443으로 "웹 포트가 열리나"를 대신 시험해 보세요. (이 명령도 오늘 배운 개념의 연장입니다: 주소:포트!)


7. 정리

오늘의 개념 삼총사

개념 비유 내 값 확인 명령
IP 주소 집 주소 (네트워크상 내 위치) ipconfig /all, Get-NetIPAddress
게이트웨이 출입문 (공유기) ipconfig /all
DNS 전화번호부 (이름→숫자 번역) ipconfig /all

진단 공식

8.8.8.8 google.com 진단
정상
DNS 문제
연결 자체 문제

오늘의 명령어

명령 하는 일
ipconfig /all IP/게이트웨이/DNS 확인
Get-NetIPAddress 파워쉘식 주소 확인 (127.0.0.1 = 나 자신)
Test-Connection 주소 핑 — 대답하는가
netstat -an 연결 목록 (주소:포트 쌍으로 읽기)

명령어보다 중요한 감각

"연결은 항상 쌍이다 — 내 쪽과 상대 쪽." 그리고 "실패 메시지도 진단의 재료다." 인터넷 장애든 침해 조사든, 네트워크 문제는 "어디서 끊겼는가"를 좁히는 게임이고, 오늘 배운 순서가 그 게임의 첫 전략입니다.

알아두면 좋은 것 하나: 오늘 본 연결 목록에서 한 걸음 더 나가면 "이 연결을 어떤 프로그램이 열었나"가 궁금해집니다. Get-NetTCPConnection과 프로세스 정보를 엮으면 그게 보입니다. "수상한 외부 주소 ↔ 그걸 연 프로그램"을 짝 지어 주는 이 조합은, 악성코드 통신을 잡아내는 실전 기술로 Level 2에서 다시 만납니다.


전부 체크되면 Step 6 완료입니다. 사이드바의 체크박스를 눌러 진도를 저장하세요.