Ubuntu 네트워크 모드 선택
- NAT(Network Address Translation)
- 가상 머신이 외부 네트워크에 접근 가능 / 호스트에서 가상 머신으로 직접 접근 불가
가상 머신 → 외부 네트워크 (O) / 호스트 → 가상 머신 (X) - 단, 포트 포워딩을 설정하면 호스트에서 가상 머신으로의 접근이 가능
- 가상 머신이 외부 네트워크에 접근 가능 / 호스트에서 가상 머신으로 직접 접근 불가
- Bridged Adapter
- 가상 머신이 호스트와 동일한 네트워크에 직접 연결되어, 호스트 및 다른 네트워크 장치와 자유롭게 통신 가능
- Host-Only Adapter
- 가상 머신과 호스트 간의 통신만 허용되며, 외부 네트워크와의 연결은 차단
동일한 네트워크에 연결?
- 가상 머신이 호스트 컴퓨터와 동일한 물리적 또는 무선 네트워크에 속하며 같은 네트워크 대역 내에서 직접 통신이 가능하다는 것을 의미
- 가상 머신이 호스트와 동일한 네트워크에 연결된다는 것은 동일한 서브넷 마스크를 사용한다는 의미
Bridged Adapter 모드
- 물리적 네트워크 연결
- Bridged Adapter 모드는 가상 머신을 호스트가 속한 실제 네트워크에 직접 연결
- 가상 머신은 네트워크 상에서 독립적인 컴퓨터로 인식되며, 호스트와 동일한 네트워크 대역(동일한 서브넷마스크)에서 동작
- IP 주소 할당
- 가상 머신은 네트워크의 DHCP 서버로부터 고유한 IP 주소를 할당
→ DHCP 서버 = 일반적으로 라우터(공유기) - 이 IP 주소는 호스트가 사용하는 IP 주소와 같은 네트워크 대역에 속함
→ 호스트가 192.168.1.100 IP 주소를 사용하고 있다면 가상 머신은 192.168.1.x 대역의 다른 IP 주소
Ex) 가상 머신의 IP : 192.168.1.101
- 가상 머신은 네트워크의 DHCP 서버로부터 고유한 IP 주소를 할당
- 직접 통신 가능
- 가상 머신과 호스트는 같은 네트워크에 속해 있으므로 서로 직접 통신 가능
→ 가상 머신에서 호스트의 IP 주소로 핑(ping) 전송 / 호스트에서 가상 머신으로 SSH 접속을 시도
- 가상 머신과 호스트는 같은 네트워크에 속해 있으므로 서로 직접 통신 가능
- 외부 네트워크와의 연결
- 가상 머신은 호스트와 마찬가지로 외부 네트워크(인터넷)에도 직접 접속 가능
- 네트워크에 연결된 다른 장치와도 통신 가능
Ex) 프린터, 다른 컴퓨터
서브넷 마스크(Subnet Mask)란?
- IP 주소의 네트워크 부분과 호스트 부분을 구분하는 데 사용
- 네트워크 상에서 장치들이 서로 통신할 수 있는지를 결정하는 데 중요한 역할
- IP 주소 : 네트워크 상에서 장치들을 구분하는 고유한 번호
Ex) 192.168.1.100 - 서브넷 마스크 : IP 주소의 네트워크와 호스트 부분을 나누는 역할을 하는 값
Ex) 255.255.255.0
- IP 주소 : 네트워크 상에서 장치들을 구분하는 고유한 번호
동일한 서브넷 마스크의 의미
- 동일한 네트워크 대역에 속함
- 호스트와 가상 머신이 같은 서브넷 마스크를 사용하면 두 장치는 같은 네트워크 대역
Ex) 서브넷 마스크가 255.255.255.0이라면, IP 주소가 192.168.1.x인 모든 장치는 동일한 서브넷
- 호스트와 가상 머신이 같은 서브넷 마스크를 사용하면 두 장치는 같은 네트워크 대역
- 서브넷 마스크 예시
- 호스트 IP : 192.168.1.100
- 가상 머신 IP : 192.168.1.101
- 서브넷 마스크 : 255.255.255.0
- 위 경우 호스트와 가상 머신은 같은 서브넷(네트워크 대역 192.168.1.0/24)에 속하며, 서로 직접 통신 가능
- 동일한 네트워크 대역의 범위 : 192.168.1.0 ~ 192.168.1.255
→ 이 범위 내라면 동일한 서브넷으로 직접 통신이 가능
왜 동일한 서브넷이 중요한가?
- 내부 통신
- 같은 서브넷에 있는 장치들은 라우터를 거치지 않고 직접 통신 가능
- 이는 네트워크 속도와 효율성을 높임
- 네트워크 관리
- 같은 서브넷에 있는 장치들은 같은 네트워크 규칙과 보안 설정을 공유하므로 관리가 용이
서브넷 마스크는 네트워크(Network)의 기본 지식으로 초창기에는 A, B, C, D, E 클래스라는 IP 주소 체계가 사용되었음
하지만 현재는 CIDR(Classless Inter-Domain Routing) 방식이 일반적으로 사용된다고 함
255.255.255.0은 이진법으로 11111111.11111111.11111111.00000000으로 표현 됨
1로 채워진 부분이 네트워크(Network) 부분이고, 0으로 채워진 부분이 호스트(Host) 부분
따라서, 192.168.1.100이라는 IP가 주어졌을 때 서브넷 마스크가 255.255.255.0이라면,
192.168.1까지가 네트워크 부분으로 인식되어 192.168.1.x의 모든 IP는 같은 네트워크로 인식 됨
서브넷 마스크는 /8, /16, /24 뿐만 아니라, /25, /26, /27처럼 더 작은 단위로 서브넷팅이 가능 함
예를 들어 192.168.1.127/25는 192.168.1.0 ~ 192.168.1.127 범위가 동일 네트워크이며,
192.168.1.128/25는 192.168.1.128 ~ 192.168.1.255 범위가 동일 네트워크를 나타냄
즉, 192.168.1.127/25와 192.168.1.128/25는 다른 네트워크 대역이라는 것임
이해가 잘 되지 않는다면 네트워크의 서브넷 마스크의 개념을 찾아보는 것을 권장함
네트워크 모드 설정
- VirtualBox - 가상 머신 선택 - 설정 - 네트워크
※ 좌측 상단에 Baisc와 Expert가 있는데, Basic으로 하게 되면 포트포워딩 설정이 보이지 않음 - NAT 모드 선택
- 호스트에서 가상 머신으로의 SSH 접속을 위해 포트 포워딩을 설정 필요
- 고급(Advanced) 옵션을 펼치고 포트 포워딩(Port Forwarding) 클릭
- 새로운 규칙을 추가하여 호스트의 특정 포트를 가상 머신의 SSH 포트(기본적으로 22)로 포워딩 설정
- Bridged Adapter 모드 선택
- 가상 머신이 호스트와 동일한 네트워크에 연결되므로, 별도의 포트 포워딩 없이도 호스트에서 가상 머신으로 직접 SSH 접속이 가능
- 호스트 IP : 공백(모든 인터페이스에 대해 열림)
- 게스트 IP : 공백(기본 적으로가상 머신의 IP로 설정)
- 가상머신 실행 - 마우스 우 클릭 - 터미널 열기
- SSH 서버 설치 확인 : 아무것도 나오지 않을 경우 SSH 서버가 설치 되지 않음
dpkg -l | grep openssh-server
- SSH 서버 설치
sudo apt update
sudo apt install openssh-server
- SSH 서버 서비스 확인 및 시작
sudo systemctl enable ssh
sudo systemctl start ssh
sudo systemctl status ssh
- 호스트 PC의 cmd에서 아래의 명령어로 SSH 접속 시도
ssh -p 호스트포트 사용자명@localhost
- 경고 메세지 출력
- SSH 클라이언트가 연결하려는 호스트(가상 머신)에 대해 호스트의 공개 키를 처음 접했을 때 발생하는 경고
- 이 경고는 보안상의 이유로 호스트의 신뢰성을 확인하려는 목적
- 호스트의 공개 키는 매번 연결할 때마다 확인되며 이 키가 변경되었을 때 의심스러운 활동이 있을 수 있기 때문에 경고 메시지가 나타남
- 호스트의 신뢰성 확인 : SSH 클라이언트가 접속하려는 localhost:2222의 공개 키를 처음 본 것이기 때문에, 이 호스트가 신뢰할 수 있는지를 물어봄
- ED25519 key fingerprint : SSH 서버에서 제공한 호스트 공개 키의 지문, 이 지문을 사용하여 호스트의 신뢰성을 검증
- 응답
- yes : 호스트를 신뢰하고 연결, 공개 키가 known_hosts 파일에 저장되어 이후부터는 경고 메시지가 나타나지 않음
- no : 연결을 거부하고 종료
- [fingerprint] : 지문을 정확히 입력하여 검증하는 방법도 가능
- yes를 입력하여 연결 진행
'Operating System > Linux' 카테고리의 다른 글
[Window/설치 및 세팅] VirtualBox 및 Ubuntu 설치 및 초기 설정 (0) | 2025.01.04 |
---|---|
[개념] Linux의 개념, Linux 배포판 (0) | 2025.01.03 |