minhui study

[WEEK1]Network Architecture 네트워크 아키텍쳐 본문

네트워크/AWS와 함께하는 네트워크 개념과 보안

[WEEK1]Network Architecture 네트워크 아키텍쳐

minhui 2020. 9. 8. 23:24

Network Architecture 별 패킷 분석 및 ip-mac 표 그리기 & 개념 정리

1_NAT 

NETWORK ADDRESS TRANSLATION

게스트 OS가 호스트 OS의 NIC을 이용하여 위부와 통신


▶ 가상머신 내부 네트워크는 Host PC 외부 네트워크 단방향 통신이 가능하다.

Host PC 내의 가상 머신(Guest OS) 간의 통신이 불가능하며 호스트에도 접근할 수 없다.

    (호스트로부터 게스트에 접근하기 위해서는 포트포워딩이 필요하다.)

VirtualBox는 게스트 내부 네트워크 인터페이스에 하나의 독립된 가상 NAT 라우터를 생성한다.

 

→ 가상 머신 내에서는 자체 IP주소를 사용하지만 실제 외부로 나갈 때는 Host PC가 가진 IP주소를 바꿔 달고 나가게 된다. 즉, Guest가 Host NIC을 통해 외부와 통신하게 되는 것이다. Host PC의 외부 네트워크에서는 내부의 가상 머신에 접근이 불가능하다. 

 

그럼 실습을 통해 확인해보자

먼저, 게스트OS인 우분투와 호스트OS의 IP주소와 MAC주소를 확인해보자

우분투
윈도우(Host OS)

 

① Guest OS인 우분투에서 ping 8.8.8.8(외부 네트워크) 진행 후 호스트와 게스트에서 패킷 확인

 

Guest OS(우분투)

게스트 OS에서 외부 네트워크 8.8.8.8가상머신(IP 10.0.2.15/ MAC 08:00:27:dd:e8:2e) 간의 패킷이 잡히는 걸 확인할 수 있다.

 

HOST OS

호스트 OS에서 ping 8.8.8.8을 하지 않았는데도 호스트 OS의 와이어샤크에서 외부 네트워크 8.8.8.8 가상머신(IP 10.0.2.15/ MAC 08:00:27:dd:e8:2e) 간의 패킷이 잡히는 걸 확인할 수 있다.

 

실습 결과를 보면 일단 가상 머신 내에서는 자체 IP주소를 사용하지만 가상 머신에서 외부 네트워크로 연결하는 경우에는 Host NIC을 통해서 Host PC가 가진 IP주소를 바꿔 달고 나가게 된다. 즉, Guest가 Host NIC을 통해 외부와 통신하게 되는 것이다. 

그러므로 게스트와 호스트 모든 와이어샤크에서 패킷을 확인할 수 있는 것이다.

 

 

② Host OS에서 ping 8.8.8.8 진행 후 게스트에서 와이어 샤크 확인

Host OS
Guest OS

반면에 이번에는 호스트에서만 패킷이 잡히고 게스트 와이어샤크에서는 아무것도 안잡히는 것을 확인할 수 있다. 이 말은 즉슨 호스트가 호스트 NIC를 통해 외부 네트워크랑 통신하므로 호스트 내부 가상머신 게스트 OS에서는 패킷이 잡히지 않는다는 것이다.

표로 정리하자면 다음과 같다.

 

 

 

2_NAT Network

NETWORK ADDRESS TRANSLATION + 내부 네트워크

게스트 OS가 호스트 OS의 NIC를 이용하여 외부와 통신

호스트끼리의 네트워크 진행


 

▶ NAT + 내부 네트워크

▶ 가상머신 내부 네트워크에서 Host PC 외부 네트워크로 단방향 통신 가능

VirtualBox는 게스트 네트워크 인터페이스에 모든 게스트들이 사용 가능한 가상 NAT 라우터를 생성한다.

     즉, Host PC 내의 가상 머신/게스트끼리 통신 가능하다.

 

→ 해당 아키텍쳐는 NAT와 거의 동일하지만 Host PC 내의 가상 머신 즉 게스트끼리 통신이 가능하다는 점이 다르다. 가상 머신 간에 상호 통신이 필요한 작업일 경우 해당 아키텍쳐를 사용해야 한다.

 

이번 실습에서는 우분투와 호스트 뿐만 아니라 우분투와 또다른 게스트, 칼리의 MAC주소와 IP주소까지 확인해보자.

 

① Guest OS인 우분투에서 같은 Host내부의 다른 Guest OS인 칼리로 ping 진행 후 와이어 샤크 확인

우분투 wireshark

 

칼리  wireshark

Host PC내부 가상머신끼리 즉 우분투에서 칼리로 ping을 진행하니 칼리(IP 10.0.2.5/ MAC 08:00:27:a4:d7:27)우분투(IP 10.0.2.15/ MAC 08:00:27:dd:e8:2e) 간의 패킷이 서로한테 모두 잡히는 걸 확인할 수 있다.

Host wireshark

반면에 호스트 OS에서는 아무 패킷이 잡히지 않는 것을 확인할 수 있다. 즉. 내부에서 일어나는 통신은 Host에서 확인할 수 없다는 것이다. 그럼 이제 게스트OS ping 8.8.8.8을 해보자

 

 

② Guest OS(kali)에서 ping 8.8.8.8 진행 후 게스트와 호스트에서 와이어 샤크 확인

Kali wireshark

게스트 OS 칼리에서 ping 8.8.8.8을 했으므로 당연히 칼리 와이어샤크에서는 외부 네트워크 8.8.8.8 게스트OS인 칼리(IP 10.0.2.5/ MAC 08:00:27:a4:d7:27) 간의 패킷이 잡히는 걸 확인할 수 있다.

 

우분투 wireshark

반면에 또 다른 게스트 OS인 우분투에서 아무 패킷이 잡히지 않는다. 

 

Host wireshark

그리고  호스트 OS에서 ping 8.8.8.8을 하지 않았는데도 호스트 OS의 와이어샤크에서 외부 네트워크 8.8.8.8 칼리(IP 10.0.2.5/ MAC 08:00:27:a4:d7:27) 간의 패킷이 잡히는 걸 확인할 수 있다.

이유는 위의 NAT과 같다. 일단 가상 머신 내에서는 자체 IP주소를 사용하지만 가상 머신에서 외부 네트워크로 연결하는 경우에는 Host NIC을 통해서 Host PC가 가진 IP주소를 바꿔 달고 나가게 된다. 즉, Guest가 Host NIC을 통해 외부와 통신하게 되는 것이다. 그러므로 게스트OS 우분투를 제외하고 칼리와 호스트의 와이어샤크에서 패킷을 확인할 수 있는 것이다.

표로 정리하면 다음과 같다.

 

 

 

 

 

3_내부 네트워크

Internal Networking

게스트 OS끼리 가상의 NIC를 이용해 서로 통신

호스트와는 통신할 수 없음


 

▶ Host PC와 독립적인 내부 네트워크

 

▶ 같은 Host PC 내의 가상 머신 간 연결이 가능

 

→ 내부 네트워크는 가장 특징으로는 외부 네트워크와 통신이 되지 않는다는 점이다. 즉, Host PC의 네트워크와 분리되어 있고, Host PC 내 가상 머신 간에만 상호 연결하여 통신이 가능하다. Host PC의 NIC와 연결되어 있지 않아 인터넷 연결이 되지 않는다.

 내부 네트워크는 게스트끼리 서로 접근이 가능하지만 호스트에서 게스트로 접근이 불가능하고 게스트들 역시 호스트로 접근이 불가능하다. 

 

 

 

Guest OS인 Kali에서 같은 Host PC 내부의 다른 Guest OS인 Ubuntu로 ping 진행 후 와이어 샤크 확인

 

Internal Networking 을 생성하는 방법은 터미널에서만 가능하다. VirtualBox가 있는 경로로 가서 다음 명령어를 입력하여 실행시킨다. (제거하는 명령어도 있다.)

# intnet 이라는 이름의 Internal Network 생성
VBoxManage dhcpserver add --netname intnet --ip 10.10.10.1 --netmask 255.255.255.0 --lowerip 10.10.10.2 --upperip 10.10.10.12 --enable
# intnet 이름의 Internal Network 제거
vboxmanage dhcpserver remove --netname intnet

 

다음 명령어를 실행했으면 다음과 같이 IP가 할당된 것을 확인할 수 있다.

Kali Linux IP/MAC
Ubuntu IP/MAC

그럼 이제 칼리에서 우분투로 ping 을 진행해보자

Kali wireshark
Ubuntu wireshark
Host wireshark

실습 결과  칼리(IP 10.10.10.3/ MAC 08:00:27:a4:d7:27) 우분투(IP 10.10.10.2/ MAC 08:00:27:dd:e8:2e) 간의 패킷이 서로한테 모두 잡히는 걸 확인할 수 있다. 하지만 Host PC의 네트워크와 분리되어 있으므로 호스트에서는 아무런 패킷이 잡히지 않는 것을 확인할 수 있다.

 

② Host OS(kali/Ubuntu)에서 ping 8.8.8.8 진행 후 와이어 샤크 확인

그리고 위를 통해 내부 네트워크는 외부 네트워크(인터넷)와 통신이 되지 않는다는 것을 확인할 수 있다.

표로 정리하면 다음과 같다.

 

 

 

4_호스트 전용 네트워크

Host-Only Adapter

게스트가 가상의 NIC을 이용하여 호스트와 통신 가능. 이때 가상의 NIC는 위부 네트워크로 연결되지 않는다.


▶ Host PC를 포함한 내부 네트워크(외부 네트워크와는 단절)

▶ 같은 Host PC 내의 가상 머신 간 연결이 가능

→ 호스트 전용 네트워크는 "브리지 어댑터"와 같이 Host PC와 내부 가상 머신들과 통신이 가능하고, "내부 네트워크"처럼 외부 네트워크와는 통신이 불가능하다. 즉, 인터넷에 접근할 수 없다. 

Kali IP/MAC
Ubuntu IP/MAC

 

 Guest OS인 우분투에서 같은 Host PC 내부의 다른 Guest OS인 칼리로 ping 진행 후 패킷 확인

Kali wireshark
Ubuntu wireshark
HOST Wireshark

칼리에서 우분투로 ping을 진행했을 때 서로의 와이어샤크에서 우분투(IP 192.168.56.101/ MAC 08:00:27:a4:d7:27)  칼리(IP 192.168.56.102/ MAC 08:00:27:a4:d7:27) 간의 패킷이 잡히는 걸 확인할 수 있음과 동시에 게스트끼리의 통신은 호스트에서 감지 못하는 것을 확인할 수 있다.

 

 

② Host OS(kali/Ubuntu)에서 ping 8.8.8.8 진행 후 게스트와 호스트에서 패킷 확인

호스트 전용 네트워크는 Host PC를 포함한 내부 네트워크로 외부 네트워크와는 단절되어 있는 것이므로 인터넷 연결이 안되는 것을 확인할 수 있다.

 

 

 

③ Guest OS(kali)에서 호스트로 ping 진행 후 게스트와 호스트에서 패킷 확인

Kali Ubuntu Wireshark
Host Wirehark

칼리에서 호스트OS로 ping을 진행했을 때 칼리 뿐만 아니라 우분투에서도 와이어샤크에서 호스트(IP 192.168.56.102/ MAC 50:76:AF:22:71:B7)과  칼리(IP 192.168.56.102/ MAC 08:00:27:a4:d7:27) 간의 패킷이 잡히는 걸 확인함으로써 게스트에서 호스트로의 통신이 가능하다는 것과 자신이 아닌 같은 내부망의 다른 가상머신과 호스트와의 패킷도 인지할 수 있다는 것을 확인할 수 있다.

 

 

 

호스트에서 Host OS(Ubuntu)로 ping 진행 후 게스트(Ubuntu와 Kali)와 호스트에서 패킷 확인

Host Wireshark
Ubuntu Kali Wireshark

게스트 OS와 호스트 OS의 와이어샤크에서 호스트(IP 192.168.56.102/ MAC 50:76:AF:22:71:B7)과  우분투(IP 192.168.56.101/ MAC 08:00:27:a4:d7:27) 간의 패킷이 잡히는 걸 확인함으로써 위와 반대로 호스트에서 게스트로의 통신 또한 가능하다는 걸 확인할 수 있다. 또한 칼리에서도 호스트와 우분투 간의 통신이 잡히는 것도 확인할 수 있다. 

 

 

< 최종 정리본 >

  Guest -> Host Guest <- Host Guest1<->Guest2 Guest -> internet Guest <- internet
Host-only Network O O O X X
Internal Network X X O X X
NAT X 포트 포워딩 X O 포트 포워딩
NAT Network X 포트 포워딩 O O 포트 포워딩
Bridge Network O O O O O

 

 

 

<연습문제>

 

정답▼

 

Comments