본문 바로가기
네트워크 (LAN,WAN)

OpenVPN 내부 네트워크 환경 확장 및 터널 라우팅 구성

by 날으는물고기 2023. 11. 16.

OpenVPN 내부 네트워크 환경 확장 및 터널 라우팅 구성

OpenVPN을 사용하여 여러 LAN을 연결하는 것은 네트워크 환경을 확장하고 안전한 연결을 제공하는 데 유용합니다. 이 예제에서는 OpenVPN 서버가 있고 해당 서버 뒤에 LAN(10.10.2.0/24)이 있으며, 두 개의 클라이언트가 각각 LAN 뒤에 있습니다.

  1. 클라이언트 1 (10.10.1.0/24 LAN)
  2. 클라이언트 2 (10.10.3.0/24 LAN)

목표는 이 3개의 LAN에 속한 장치들이 터널(루팅) 설정을 통해 서로 통신할 수 있도록 하는 것입니다.

단계별 처리 및 명령어

1. LAN 뒤에 있는 모든 기기는 IP 전달을 활성화해야 합니다. 이 예에서는 서버와 client1/client2가 해당됩니다. 이를 위해 다음 명령어를 사용합니다.

  • 서버의 server.conf 파일에 다음 라우팅 명령어를 추가합니다.
route 10.10.1.0 255.255.255.0
route 10.10.3.0 255.255.255.0
push "route 10.10.2.0 255.255.255.0"
push "route 10.10.1.0 255.255.255.0"
push "route 10.10.3.0 255.255.255.0"
client-to-client
  • route 명령어는 서버의 커널 라우팅 테이블에 각 LAN 네트워크를 VPN 터널 인터페이스 및 OpenVPN으로 라우팅하도록 지시합니다. push 라우팅은 클라이언트가 연결될 때 추가되며 해당 네트워크를 VPN으로 라우팅하도록 클라이언트에 알립니다.

 

2. iroute를 사용하여 OpenVPN 서버에게 각 클라이언트가 어떤 네트워크를 처리해야 하는지 알려줍니다. 이것은 커널의 라우팅 테이블을 우회하거나 변경하지 않지만, 커널이 OpenVPN 인터페이스로 향하는 라우팅을 허용합니다. iroute 명령어는 ccd(Client Configuration Directory) 항목에 추가됩니다.

  • client-config-dir를 서버 설정 파일에 다음과 같이 추가하여 ccd 항목을 활성화합니다.
client-config-dir /path/to/ccd/

 

3. 각 클라이언트에 대한 ccd 항목을 생성합니다. 예를 들어, 10.10.1.0 LAN을 소유하는 클라이언트1의 경우 ccd/client1 파일에 다음 내용을 추가합니다.

ifconfig-push 10.10.2.2 255.255.255.255
iroute 10.10.1.0 255.255.255.0

 

4. 클라이언트2 (10.10.3.0 LAN을 소유)의 경우, ccd/client2 파일에 다음 내용을 추가합니다.

ifconfig-push 10.10.2.3 255.255.255.255
iroute 10.10.3.0 255.255.255.0

이렇게하면 각 클라이언트가 자체 LAN 네트워크를 처리하도록 설정됩니다.

*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -j MASQUERADE
COMMIT

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A FORWARD -i eth+ -o tun+ -j ACCEPT
-A FORWARD -i tun+ -o eth+ -j ACCEPT
COMMIT

 

외부에서 추가해야 할 라우팅

만약 각 LAN에 대한 OpenVPN 라우터가 아닌 다른 장치에서 OpenVPN을 실행 중이라면, 추가 라우팅을 설정해야 합니다.

  • 서버가 10.10.2.10이고 기본 라우트가 10.10.2.1인 경우, 2.x LAN이 VPN을 통해 접근 가능하거나 VPN을 통해 접근할 수 있게 하려면 2.1에 다음과 같이 라우트를 추가해야 합니다.
route add -net 10.10.1.0 netmask 255.255.255.0 gw 10.10.2.10
route add -net 10.10.3.0 netmask 255.255.255.0 gw 10.10.2.10
route add -net 10.8.0.0 netmask 255.255.255.0 gw 10.10.2.10

이것은 10.10.2.1이 10.10.1.x 및 10.10.3.x와 VPN 내부 네트워크(예: 10.8.0.x)에 대한 트래픽을 10.10.2.10으로 보내도록 설정합니다.

  1. VPN 클라이언트는 소스 주소가 10.8.0.6인 10.10.2.20으로 트래픽을 보냅니다.
  2. VPN 서버(10.8.0.1 및 10.10.2.10)는 트래픽을 수신하고 IP 전달을 활성화한 후 트래픽을 10.10.2.20으로 전달합니다.
  3. 10.10.2.20이 이를 받고 10.8.0.6에 응답을 시도하지만 라우팅 테이블에 항목이 없습니다.
  4. 10.10.2.20에는 10.8.0.6에 대한 경로가 없기 때문에 기본 게이트웨이인 10.10.2.1로 트래픽을 보냅니다.
  5. 10.10.2.1은 라우팅 테이블을 확인하고 10.8.0.6에 대한 경로가 없으며 ISP일 가능성이 있는 기본 게이트웨이로 트래픽을 보냅니다.
  6. ISP는 RFC 1918 IP(LAN 전용)이므로 이를 무시합니다.

이렇게 하면 모든 연결하려는 LAN에 대해 이러한 라우트를 추가해야 합니다.

  • Windows에서 라우트 추가 문제가 있는 경우, OpenVPN-GUI를 관리자 권한으로 실행하지 말고 OpenVPNServiceInteractive 서비스가 실행 중인지 확인하세요.
  • Windows에서 추가 옵션을 사용해야 할 수도 있습니다. 예를 들어, route-method exeroute-delay 옵션을 사용할 수 있습니다.

 

위 단계를 따르면 OpenVPN을 사용하여 여러 LAN을 효과적으로 연결하고 안전한 통신을 구축할 수 있습니다. 이러한 구성은 네트워크 확장과 분리된 LAN 간의 안전한 데이터 교환을 지원합니다.

728x90

댓글