메뉴 닫기

Ubuntu 24.04에 WireGuard VPN 서버 구축과 내부 연결

WireGuard VPN을 이용하여 외부에서 내부로 포트포워딩 없이 쉽게 접속하는 방법을 알아보겠습니다.

  1. 서버 설치
    # apt -y install wireguard
    wireguard 설치를 진행합니다.

    # ip route show default


    로 네트워크명을 확인합니다.
    위 명령어로 확인 시 ens3로 보여 해당 네트워크 명을 기준으로 진행하겠습니다.

    # cd /etc/wireguard/

    # umask 077

    # wg genkey | tee server.key | wg pubkey > server.pub
    # wg genkey | tee client1.key | wg pubkey > client1.pub
    /etc/wireguard 디렉토리에 키를 개인 키와 퍼블릭 키를 생성합니다.

    client1.key, client1.pub, server.key, server.pub가 생성된 것을 확인합니다.

    # cat > /etc/wireguard/wg0.conf <<EOF
    [Interface]
    Address = 10.8.0.1/24
    ListenPort = 51820
    PrivateKey = $(cat server.key)
    PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
    PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o ens3 -j MASQUERADE

    [Peer]
    # client1
    PublicKey = $(cat client1.pub)
    AllowedIPs = 10.8.0.2/32
    EOF
    위에서 생성한 키 값을 EOF를 통해서 /etc/wireguard/wg0.conf 파일을 생성하여 입력해줍니다.

    # chmod 600 /etc/wireguard/wg0.conf

    # vi /etc/sysctl.d/99-wireguard.conf
    /etc/sysctl.d 디렉토리에 99-wireguard.conf 파일을 생성하여 아래 사진과 같이 값을 입력해 줍니다.

    # sysctl –system
    # sysctl net.ipv4.ip_forward

    /etc/sysctl.d/99-wireguard.conf에서 설정한 값을 적용해주고
    값이 적용 되었는 지 확인해줍니다.

    # ufw allow 51820/udp
    # ufw allow OpenSSH
    # ufw enable

    테스트를 위해 ssh와 wireguard에서 사용하는 51820 포트 룰셋을 추가 후 ufw 방화벽을 활성화합니다.

    # systemctl enable –now wg-quick@wg0
    # wg show

    wireguard를 실행 후 적용 되었는 지 확인합니다.

  2.  Client 설치
    # cat > /etc/wireguard/client1.conf <<EOF
    [Interface]
    PrivateKey = $(cat client1.key)
    Address = 10.8.0.2/24

    [Peer]
    PublicKey = $(cat server.pub)
    Endpoint = 서버공인IP:51820
    AllowedIPs = 10.8.0.0/24
    PersistentKeepalive = 25
    EOF

    클라이언트 키를 생성해줍니다.

    클라이언트 키는 연결에 사용할 윈도우 PC에 옮겨줍니다.

    https://www.wireguard.com/install/

    위 페이지에 접속하여 윈도우 버전으로 다운로드 받은 후 실행해줍니다.

    설치한 프로그램 실행 후 ‘파일에서 터널 가져오기’를 통해서 옮긴 client 설정파일을 불러옵니다.

    아래 화면은 적용한 화면입니다.

    아래 사진은  서버이며, 아래 wg0가 VPN ip입니다.

    아래 사진은 클라이언트 ip입니다.

    위 질의는 인터페이스 활성화 전 질의 값이며, 활성화 후에는 정상적으로 질의가 되는 점을 확인할 수 있습니다.

 

이상으로 포트포워딩 없이 외부에서 내부로 접근하는 방법을 알아봤습니다.

이 글은 본인의 실제 경험과 학습을 기반으로 직접 작성하였으며, AI는 참고용으로만 활용하였습니다.

감사합니다.

 

 

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다