NAT 서버 Virtual Box에서 구축

EEEFFEE·2023년 11월 13일
0

네트워크

목록 보기
6/9

23.11.10 최초 작성

  • 다음과 같은 사설 네트워크(NAT 네트워크)를 구축해본다
  • VM 1VM 2 (네트워크 1), VM 3VM 4(네트워크 2)를 하나의 네트워크로 묶고 VM 5를 게이트웨이로 설정해 각 네트워크간의 통신과 인터넷과의 통신을 가능하게 한다

1. 가상머신 생성 및 네트워크 설정

1.1 가상머신 생성

  • 먼저 가상머신을 하나 생성 (server1)하고 운영체제를 설치한 뒤(Ubuntu Server 20.04 LTS) 개발에 필요한 패키지를 모두 설치한다.
  • 이후 해당 가상머신을 복제해 VM 1 ~ 5를 생성한다.

1.2 NAT 네트워크 설정

  • 네트워크 1은 NatNetwork, 네트워크 2은 NatNetwork 1로 10.0.XX.0에서 호스트의 XX부분이 일치하는 호스트들끼리 통신을 가능하게 한다.

  • 가상머신의 설정네트워크어댑터에서 NAT 네트워크를 설정
  • 이름은 각 가상머신이 속한 네트워크로 설정
  • VM 5의 경우 어댑터 3개로 모든 NAT 네트워크에 연결

2. IP 지정

  • 각 가상머신의 /etc/netplan/00-installer-config.yaml 파일을 수정해 다음과 같은 내용을 입력한다.
VM1VM2
network:
  ethernets:
    enp0s3:
    dhcp4:no
    addresses: [10.0.0.14/24]
    gateway4: 10.0.0.16
    nameservers:
       addresses: [8.8.8.8]
  version: 2
network:
  ethernets:
    enp0s3:
    dhcp4:no
    addresses: [10.0.0.15/24]
    gateway4: 10.0.0.16
    nameservers:
       addresses: [8.8.8.8]
  version: 2

VM3VM4
network:
  ethernets:
    enp0s3:
    dhcp4:no
    addresses: [10.0.10.14/24]
    gateway4: 10.0.10.16
    nameservers:
       addresses: [8.8.8.8]
  version: 2
network:
  ethernets:
    enp0s3:
    dhcp4:no
    addresses: [10.0.10.15/24]
    gateway4: 10.0.10.16
    nameservers:
       addresses: [8.8.8.8]
  version: 2

VM5
network:
  ethernets:
    enp0s3:
    dhcp4:no
    addresses: [10.0.20.16/24]
    gateway4: 10.0.20.1
    nameservers:
       addresses: [8.8.8.8]
    enp0s8:
    dhcp4:no
    addresses: [10.0.0.16/24]
    nameservers:
       addresses: [8.8.8.8]
    enp0s9:
    dhcp4:no
    addresses: [10.0.10.16/24]
    nameservers:
       addresses: [8.8.8.8]
  version: 2
  • sudo netplan apply를 입력해 설정을 저장한다.
  • 이부분까지 진행하면 각 네트워크에 속한 VM들 끼리 통신이 가능해진다.

3. 게이트웨이 패킷 포워딩

  • VM5/etc/sysctl.conf파일을 수정해 패킷 포워딩을 설정한다.

  • net.ipv4.ip_forward=1의 주석을 제거한다.

  • sudo sysctl -p를 입력해 바뀐 설정을 적용한다.

  • 이부분까지 진행하면 다른 네트워크에 속한 VM들 끼리 통신이 가능해진다.

4. 인터넷 접속

  • 현재 VM510.0.20.0을 통해서 인터넷 접속이 가능하지만 Network1, Network2에 속한 VM들은 불가능하다.
  • iptables 명령어를 통해 포스트라우팅을 가능하게 해 다른 VM들에서 인터넷 접속이 가능해진다.
sudo apt-get install iptables

iptables –t(테이블) nat –L				//현재 지정한 테이블의 설정 출력
iptables –t(테이블) nat –A POSTROUTING –o enp0s3 –j MASQUERADE 
(작업을 지정(추가) : postrouting, enp0s3에 나갈(out) 때, MASQUERADE 라는 작업(job))

iptables -P FORWARD DROP			//다른 VM에서 인터넷 통신 못하도록 차단 (방화벽)
iptables -P FORWARD ACCEPT			//방화벽 해제
  • 포스트라우팅 설정

  • 방화벽

  • 해제

4.1 설정 저장

  • 위에서 iptables를 통해 설정한 사항들은 재부팅시 사라지게 된다.
  • ipatbles-persistent패키지를 통해 이 사항들을 저장한다.
sudo apt install ipatbles-persistent
sudo sh –c “iptables-save > /etc/iptables/rules.v4”

5. 방화벽 설정

  • 방화벽

    • 미리 정의된 보안 규칙에 기반해 들어오가 나오는 네트워크 트래픽을 모니터링하고 제어하는 네트워크 보안 시스템
    • 신뢰할 수 있는 내부 네트워크와 외부 네트워크 간 장벽 구성
    • 서로 다른 네트워크를 지난 데이터를 허용, 거부, 검열, 수정하는 하드웨어/소프트웨어
  • ufw(Uncomplicated FireWall)

sudo ufw status				//방화벽 상태 확인
sudo ufw enalbe				//방화벽 활성화
sudo ufw disable			//방화벽 비활성화

0개의 댓글