리눅스

 

VirtualBox 네트워크별 SSH 접속 가이드

 

다음 문서는 당신이 올려준 스크린샷과 VM 설정(3개 어댑터: Host-Only, NAT, Bridged)을 바탕으로 세 가지 방식으로 SSH 접속하는 방법을 정리한 문서입니다. 각 방식의 차이점,

설정 요건, 접근 범위, 테스트/문제 해결 방법, 보안 권장 사항까지 포함합니다.

 

cat /etc/netplan/50-cloud-init.yaml

network:
  version: 2
  renderer: networkd  
  ethernets:
    enp0s3:
      dhcp4: false
      addresses:
        - 192.168.56.200/24
      routes:
        - to: default
          via: 192.168.56.1
      
         
    enp0s8:
      dhcp4: true
      nameservers:
        addresses: [8.8.8.8, 1.1.1.1]

    enp0s9:
      dhcp4: true

 

적용:

sudo netplan apply

 

그 다음 다시 확인:

ip a

 

 

 

 

 

 

 

 

 

 

 

1) 각 방식별 상세 설정 & 접속 방법

A. Bridged (예: 192.168.0.16:22) — LAN 내부 접근

설명: VM을 물리 LAN에 직접 연결. 공유기가 VM을 하나의 장치로 보고 IP를 할당.

VirtualBox 설정:

  • VM 종료 → 설정 → 네트워크 → 원하는 어댑터(예: 어댑터 3) 선택

  • Attached to(연결 방식) → Bridged Adapter 선택

  • Name(이름) → 실제 사용하는 물리 NIC 선택(예: Intel Ethernet, Wi‑Fi)

  • Cable connected 체크

Guest(Ubuntu) 설정:

  • ip a로 IP 확인 (예: enp0s9: 192.168.0.16)

  • SSH 서버 설치 및 활성화:

    sudo apt update
    sudo apt install openssh-server -y
    sudo systemctl enable --now ssh
    sudo systemctl status ssh
    
  • 방화벽(ufw) 사용 시:

    sudo ufw allow 22/tcp
    sudo ufw reload
    

호스트/네트워크 쪽 설정:

  • NAT 포워딩 불필요(로컬 LAN 접근 전용)

  • 외부(인터넷)에서 접속하려면 공유기에서 포트포워딩: 외부포트 → 내부 192.168.0.16:22

접속 예:

  • 같은 LAN 내부 장치에서: ssh user@192.168.0.16

  • 외부에서: 공유기 공인IP + 포트포워딩 후 ssh -p 외부포트 user@공인IP

장단점:

  • 장점: 설정이 직관적, LAN 내 다른 기기에서 바로 접근 가능

  • 단점: 외부 접근 시 공유기에서 포트포워딩 필요, 회사망 등에서 브리지 사용 제한 가능

 

 

B. NAT + Port Forwarding (예: 127.0.0.1:2222 or 호스트IP:2222) — 호스트를 통한 포트포워딩

설명: VM은 NAT 네트워크로 외부에 나가고, VirtualBox가 호스트 포트를 VM의 포트로 포워딩 해준다.

VirtualBox 설정 (NAT 포트포워딩 규칙 예):

  • VM 설정 → 네트워크 → 어댑터 (NAT) → Advanced → Port forwarding

  • 규칙 예: 이름 ssh, 프로토콜 TCP, 호스트 IP (비워두거나 127.0.0.1), 호스트 포트 2222, 게스트 IP 10.0.3.15, 게스트 포트 22

    • 호스트 IP을 127.0.0.1로 설정하면 호스트 로컬에서만(127.0.0.1:2222) 접속 가능

    • 호스트 IP를 비워두면 호스트의 모든 NIC(예: 192.168.0.5:2222)에서 접근 가능

Guest(Ubuntu): 위와 동일하게 sshd 활성화 및 ufw 허용

접속 예:

  • 호스트에서 로컬: ssh -p 2222 user@127.0.0.1

  • 같은 LAN의 다른 PC(호스트 IP에 바인딩 하지 않았다면): ssh -p 2222 user@192.168.0.5

  • 외부에서(공유기 뒤에 있다면): 공유기에서 외부포트 → 호스트IP:2222 포워딩 후 ssh -p 외부포트 user@공인IP

장단점:

  • 장점: 호스트 내부 포트 하나만 열면 VM에 접근 가능(여러 VM을 서로 다른 포트로 포워딩 가능)

  • 단점: 호스트를 경유하므로 약간의 복잡성, 호스트 IP에 바인딩 설정에 따라 접근 범위가 달라짐

 

 

 

C. Host-Only (예: 192.168.56.200:22) — 호스트 전용 네트워크

설명: VM과 호스트 간 전용 가상 네트워크. 외부 네트워크나 공유기에서는 보이지 않음.

VirtualBox 설정:

  • 어댑터를 Host-Only Adapter로 설정

  • Windows 호스트 내부에 VirtualBox Host-Only Ethernet Adapter (예: 192.168.56.1)이 존재함

접속 방법:

  • 호스트에서만: ssh user@192.168.56.200

  • 다른 기기에서는 접근 불가 (특별한 라우팅/포워딩 없으면)

장단점:

  • 장점: 호스트와 안전하게 내부 통신(개발/테스트 목적)에 적합

  • 단점: 외부 접근 불가(공유기 포워딩이 동작 안 함)

 

 

 

 

2) 포트포워딩: 호스트 IP 필드의 의미

  • 호스트 IP에 127.0.0.1을 입력하면: 포트는 오직 로컬 호스트에서만 바인딩. 같은 LAN의 다른 PC는 접근 불가.

  • 호스트 IP를 비워둠: 호스트의 모든 NIC(예: 192.168.0.5, 10.0.0.2 등)에 바인딩되어 호스트의 다른 IP로도 접근 가능.

  • 호스트 IP를 특정 NIC IP로 지정 (예: 192.168.0.5): 해당 NIC에서만 접근 가능.

 

 

3) ipTIME 공유기에서 외부(인터넷) 접속 허용 예시

  • 라우터 관리 페이지 접속: http://192.168.0.1 → 포트포워드(또는 NAT/포트포워딩)

  • 규칙 예:

    • 외부포트: 2222

    • 내부 IP: 192.168.0.16 (VM의 브리지 IP)

    • 내부포트: 22

    • 프로토콜: TCP

  • 외부에서 연결: ssh -p 2222 user@공인IP

  • 공인IP가 동적이라면 DDNS(예: iptime DDNS) 등록 권장

 

 

 

5) 확인·문제해결 체크리스트

VM 내부에서

  • ip a — 인터페이스와 IP 확인

  • sudo systemctl status ssh — sshd 실행 상태 확인

  • sudo ufw status — 방화벽 규칙 확인

  • sudo ss -tlnp | grep :22 또는 sudo netstat -tlnp | grep :22 — 포트 리스닝 확인

호스트(Windows)에서

  • ipconfig /all — 호스트의 IP(192.168.0.5 등) 확인

  • 포트가 열렸는지 확인: telnet 192.168.0.16 22 또는 ssh user@192.168.0.16

  • NAT 포워딩 테스트: ssh -p 2222 user@127.0.0.1 (호스트에서)

 

네트워크 트래블(공유기/외부)

  • 공유기 포트포워딩이 정확한지 확인

  • 외부에서 접속이 안 되면 공유기 방화벽/ISP 차단 여부 확인

  • tcpdump 또는 Wireshark로 패킷이 들어오는지 확인(심화)

 

 

 

6) 보안 권장사항

  • root 직접 로그인 비활성화: /etc/ssh/sshd_config 에 PermitRootLogin no 설정

  • 비밀번호 대신 공개키 인증 사용: ~/.ssh/authorized_keys

  • 포트 변경(기본 22 → 다른 포트), ufw로 허용 포트만 오픈

  • fail2ban 같은 도구로 무차별 대입 차단

  • 외부 포트포워딩시 가능한 경우 VPN을 통해 접속 (더 안전)

 

 

 

 

7) 권장 구성 (상황별)

  • 개발/로컬 테스트: Host-Only(192.168.56.200) + 필요시 NAT 포워딩(127.0.0.1:2222)

  • LAN에서 서비스/접속 필요: Bridged(192.168.0.16) — 같은 네트워크에서 직접 접속 가능

  • 외부(인터넷)에서 안정적으로 접속 필요: Bridged + 공유기 포트포워딩 or VPN (DDNS 적용 권장)

문서로 정리해 두었습니다. 우측 캔버스에서 확인하세요. 필요하시면 이 문서를 기반으로 ipTIME 설정 스텝 바이 스텝, sshd_config 변경 예시,

ufw 규칙 스니펫, 또는 공유기 포트포워딩 스크린샷 가이드(모델별) 도 만들어드릴게요.

 

 

 

 

 

 

 

about author

PHRASE

Level 60  라이트

어질병이 지랄병 된다 , 작은 병통을 다스리지 않고 그냥 두면 큰 병통이 된다는 말.

댓글 ( 0)

댓글 남기기

작성
  •    
  •    
  •  

리눅스 목록    more