docker의 VPN에서만 액세스할 수 있는 서비스 만들기

6728 단어 pritunlVPN도커
docker의 네트워크에 연결하지 않으면 액세스 할 수없는 서비스를 만들고 싶었으므로 pritunl을 사용하여 VPN을 만들었습니다.
거의 pritunl 이야기입니다.

docker 컨테이너



docker에서 사용하는 이미지는 VPN 구축을위한 Pritunl과 설명을위한 Nginx입니다. Pritunl은 호스트 시스템과의 통신을 위해 포트를 비워 두지 만 Nginx는 VPN 연결시에만 액세스 할 수 있도록 포트를 설정하지 않습니다.

docker-compose.yml
version: '3.7'

services:
  pritunl:
    image: jippi/pritunl
    container_name: pritunl
    privileged: true
    ports:
      - "1194:1194/udp"
      - "1194:1194/tcp"
      - "80:80/tcp"
      - "443:443/tcp"
    networks:
      bridge:
        ipv4_address: 172.16.20.2

  nginx:
    image: nginx
    container_name: nginx
    networks:
      bridge:
        ipv4_address: 172.16.20.3

networks:
  bridge:
    driver: bridge
    ipam:
      driver: default
      config: 
        - subnet: 172.16.20.0/24
docker-compose.yml 준비가 되면 컨테이너를 시작합니다.
$ docker-compose up -d

이 시점에서는 Nginx에 연결되지 않습니다.



Pritunl에 로그인



docker가 시작되면 localhost:443에서 pritunl에 연결하고 로그인합니다.

기본 Username과 Password는 모두 pritunl입니다.



로그인하면 Initial Setup 화면이 표시되므로 우선 Username과 Password를 변경해 둡시다. Public Address는 공란으로 두면 글로벌 IP 주소가 자동으로 입력되어 버리기 때문에 우선 손으로 움직이기 위해 localhost로 변경해 둡니다.



Pritunl 설정 변경



여기에서 Pritunl을 설정합니다. Users 탭에서 Add Organization을 클릭하고 적절한 이름을 입력한 후 Add를 눌러 추가합니다.


그런 다음 사용자를 추가합니다. Pin 코드는 optional이므로 공란이 될 수 있습니다.



이제 Servers 탭으로 이동하여 Add Server에서 Server를 추가합니다. Port와 Protocol은 docker-compose에서 설정한 udp의 포트를 지정합니다.

Virtual Network로 설정한 네트워크의 ip는 vpn 클라이언트에 할당됩니다.
이 값을, docker상의 bridge 네트워크와 동일하게 해 버려, Pritunl 컨테이너에 연결하지 않게 된 실수를 한 것은, 여기만의 이야기.
그래서, docker의 네트워크의 서브넷과는 전혀 다른 값으로 해 두는 편이, 트러블이 적을 것.



서버를 만들었으면 Route도 추가합니다. Add Route를 클릭하고 docker compose에서 설정한 네트워크를 추가합니다.



서버가 생성되면 Attach Organization을 클릭하여 생성한 서버에 Organization을 연결합니다.



VPN 서버 시작



Servers에서 만든 서버의 Start Sever를 클릭하면 VPN 서버가 시작됩니다.



Pritunl 클라이언트 설정



사용자 탭으로 돌아가서 대상 사용자 프로필을 다운로드합니다.



Pritunl Client 공식 사이트에서 클라이언트를 다운로드하고 시작합니다.
가져오기 프로필을 클릭하여 방금 다운로드한 프로필을 로드합니다.



가져온 후 메뉴 버튼에서 Conect를 선택하여 VPN에 연결합니다.





VPN에 연결할 수 있으면 이전에 연결되지 않은 172.16.20.3 Nginx에 액세스할 수 있습니다.

좋은 웹페이지 즐겨찾기