Ubuntu에서 NAT 구성 방법

Ubuntu에서 NAT 구성 방법

2022-06-04 last update

7 minutes reading Ubuntu
NAT 또는 네트워크 주소 변환을 사용하면 전용 네트워크의 여러 컴퓨터가 공용 IP를 공유하여 인터넷에 액세스할 수 있습니다.한 그룹의 IP 주소는 조직 내부에 사용되고, 다른 한 그룹의 IP 주소는 인터넷에 자신을 표시하는 데 사용된다.이것은 제한된 공공 IP 공간을 절약하는 데 도움이 된다.또한 외부 세계의 직접 방문을 방지하기 위해 내부 네트워크를 숨겨 안전성을 제공한다.

NAT는 어떻게 작동합니까?


NAT는 전송된 패키지의 원본 주소를 공공 IP 주소로 바꾸어 인터넷에서 공유할 수 있도록 할 뿐이다.마찬가지로 외부 (인터넷) 에서 온 응답 패키지의 원본 주소는 로컬이나 개인 IP 주소로 변환됩니다.

우리는 어떤 내용을 포괄할 것입니까?


이 가이드에서는 Ubuntu 20.04를 NAT 라우터로 설정하는 방법을 학습합니다.이를 위해 NAT 라우터로 Ubuntu VM을 사용하고 클라이언트 VM으로 Ubuntu VM을 테스트합니다.설정을 테스트하기 위해 Virtualbox를 사용하여 VM(Virtualbox)을 만들고 관리합니다.

비행 전 검사

  • 두 개의 Ubuntu 가상 머신 중 하나는 두 개의 네트워크 인터페이스(NIC)가 있습니다.
  • 두 가상 시스템에 Ubuntu 20.04가 설치되어 있습니다.
  • 두 VM에 대한 관리(sudo) 액세스 권한
  • 실험 장치


    위의 두 VM에 대해 다음 설정을 사용했습니다.
    VM1(NAT 라우터): 저희 라우터 시스템에는 두 개의 네트워크 인터페이스가 있습니다: enp0s3과 enp0s8 (이 이름은 시스템에 따라 다를 수 있습니다).enp0s3 인터페이스는 WAN(인터넷) 인터페이스로 사용되며 외부 세계(인터넷)에서 접근할 수 있습니다.그것의 IP 주소는 DHCP를 통해 분배된 것으로 우리의 예에서 192.168.11.201이다.
    enp0s8 인터페이스는 로컬이나 LAN 인터페이스로 클라이언트를 배치하는 로컬 네트워크에서만 접근할 수 있습니다.우리는 수동으로 이 인터페이스의 IP 주소를 10.10.10.1/24로 설정했습니다. "게이트웨이 주소는 비어 있습니다."
    2, VM2(클라이언트 머신): 클라이언트 머신은 로컬 또는 LAN 인터페이스, 즉 enp0s3만 있습니다.IP 주소가 10.10.10.3/24로 설정되어 있는 VM2에 연결된 로컬 네트워크입니다.유일하게 주의해야 할 것은 이런 상황에서 게이트웨이는 상기 기계(VM2)의 로컬 인터페이스(enp0s8) IP 주소인 10.10.10.1이다
    다음 표에서는 두 VM의 구성 요약을 보여 줍니다.
    인터페이스 이름→
    enp0s3
    enp0s8
    VM 이름↓
    IP 주소
    게이트웨이 IP
    IP 주소
    게이트웨이 IP
    VM1(NAT 라우터)
    192.168.11.201/24
    DHCP를 통해
    10.10.10.1/24
    VM2(클라이언트)
    10.10.10.3/24
    10.10.10.1

    시작을...


    현재, 우리는 이미 기계에 필요한 IP 주소를 설치했고, 우리는 그것을 설정할 수 있다.우선 이 기계들 사이의 연결을 검사합시다.두 대의 기계는 마땅히 서로 두드릴 수 있을 것이다.VM1은 우리의 NAT 공유기 기계로 enp0s3를 통해 WAN에 연결될 때 전 세계 인터넷에 접근할 수 있어야 한다.VM2는 로컬 클라이언트입니다. VM1에 NAT 공유기를 설정하기 전에는 인터넷에 접근할 수 없습니다.이제 다음 단계를 수행합니다.
    1단계.먼저 다음 명령을 사용하여 두 시스템의 IP 주소를 확인합니다.
    $ ip add | grep enp
    2단계.위에서 설명한 대로 NAT 라우터를 구성하기 전에 기기의 연결을 확인해야 합니다.다음과 같은 ping 명령을 사용할 수 있습니다.
    $ ping 8.8.8.8
    또는
    $ ping www.google.com
    VM1(NAT 라우터 VM)의 결과는 다음과 같습니다.

    VM2(ClientVM)의 결과는 다음과 같습니다.

    이 두 가상 머신은 모두 우리의 예상에 따라 작동한다.이제 VM2(NAT 라우터) 구성을 시작합니다.
    3단계.VM2에서 sysctl을 엽니다.conf 파일, 메모를 취소하여 "net.ipv4.ip\u forward"매개 변수를 1로 설정합니다.
    $ sudo nano /etc/sysctl.conf
    4단계.다음 명령을 사용하여 위의 파일에 대한 변경 사항을 설정합니다.
    $ sudo sysctl –p
    5단계.이제 다음 방법으로 iptables 패키지를 설치합니다. (netfilter 규칙의 안내를 받을 때 프로그램, iptables 플러그인)
    $ sudo apt install iptables-persistent

    6단계.다음 명령을 실행하여 설정된 iptable 정책을 표시합니다.
    $ sudo iptables –L
    7단계.이제 NAT 라우터 VM의 외부 IP를 사용하여 LAN 내부 요청을 차단합니다.
    $ sudo iptables -t nat -A POSTROUTING -j MASQUERADE
    
    $ sudo iptables -t nat –L
    8단계.다음 내용을 사용하여 iptable 규칙을 저장합니다.
    $ sudo sh -c “iptables-save > /etc/iptables/rules.v4”

    테스트 설정


    이제 모든 것이 정상인지 확인하려면 VM2(클라이언트)에서 모든 공용 IP를 핑합니다.
    참고 필요한 경우 도메인 이름 확인을 위해 클라이언트 네트워크 구성에 DNS 서버를 수동으로 추가할 수 있습니다.그러면 이름 확인의 임시 장애가 억제됩니다.우리는 VM1에서 Google DNS IP(8.8.8)를 사용했습니다.

    Ping이 현재 VM1(클라이언트)에서 예상대로 작동하고 있음을 알 수 있습니다.

    결론


    NAT는 제한된 공용 IPv4 주소 공간을 저장하는 매우 중요한 도구입니다.IPv6는 신흥 차세대 IP 프로토콜로 IPv4의 제한을 완성해야 하지만 이것은 긴 과정이다.따라서 그 전에 NAT는 조직에 매우 중요하다.