특정 서브넷만 StrongSwan VPN으로 라우팅하고 Linux에서는 전체 트래픽을 라우팅하지 않으려면 어떻게 해야 합니까?

특정 서브넷만 StrongSwan VPN으로 라우팅하고 Linux에서는 전체 트래픽을 라우팅하지 않으려면 어떻게 해야 합니까?

저는 네트워킹에 특별한 역량이 없기 때문에 최선을 다해 제 요구 사항을 설명하겠습니다. 내 Linux 노트북에서는 IPsec을 사용하여 특정 VPN에 연결하기 위해 StrongSwan(NetworkManager 포함)을 실행하고 있습니다. 이 VPN을 사용하면 이러한 종류의 IP에 접근할 수 있습니다 10.*.*.*.

이제 내 문제는 VPN을 실행할 때 모든 트래픽이 VPN을 통과하지만 해당 IP( 10.*.*.*)로 주소가 지정된 패킷만 VPN으로 라우팅하는 것을 선호한다는 것입니다.

내가 어떻게 해? 누군가 나에게 간단한 가이드를 제공하거나 필요한 구성과 적용 방법을 공유할 수 있습니까?

답변1

StrongSwan의 NetworkManager 플러그인은 현재 제안된 트래픽 선택기(터널링되는 트래픽을 결정하는) 변경을 허용하지 않습니다. 따라서 항상 모든 것을 터널링하도록 제안하며 서버가 트래픽 선택기(아래 참조)를 좁히지 않는 한 이것이 협상됩니다.

이 문제를 해결하는 가능한 방법은 다음과 같습니다.

  1. 가능하다면 서버의 구성을 변경하여 자체적으로 축소된 트래픽 선택기 세트를 통해 클라이언트의 제안 범위를 원하는 서브넷으로 좁힐 수 있습니다. 일부 클라이언트는 이를 처리할 수 있으며 StrongSwan의 NM 플러그인은 괜찮을 것입니다(strongSwan wiki에서 찾을 수 있음).분할 터널링에 대한 추가 정보그리고 다른 클라이언트와의 잠재적인 문제).
  2. VPN에 연결되어 있는 동안 로컬 LAN에 액세스하는 데만 관심이 있는 경우 다음을 로드할 수 있습니다.우회 LAN플러그인에서카론-nm로컬로 연결된 모든 서브넷에 대해 우회 IPsec 정책을 자동으로 설치하는 데몬(strongSwan NM 플러그인의 백엔드).
  3. 이전 옵션과 유사하게 일반 IKE 데몬(카론또는charon 시스템, swanctl.conf 또는 ipsec.conf를 통해 구성) VPN을 통해 액세스하지 않으려는 서브넷에 대한 우회 IPsec 정책을 설치합니다(로컬로 연결되지 않은 경우에도 작동함).
  4. 방지카론-nm데몬은 라우팅 테이블 220에 자체 경로를 설치하지 못하도록 합니다.charon-nm.install_routesStrongswan.conf의 옵션) 또는 연결이 설정된 후 라우팅 테이블 220을 지웁니다. 그런 다음 수동으로 또는 NM 스크립트를 통해( /etc/NetworkManager/dispatcher.d에서는여기 문서), 터널링하려는 서브넷에 대해서만 특정 경로를 설치하십시오. 예를 들면 다음과 같습니다.

    ip route add 10.0.0.0/8 dev <outbound interface> src <virtual IP> table 220
    

    ip addr가상 IP 주소는 로그를 통해 또는 (또는 환경 변수를 통한 스크립트에서) 결정되어야 합니다 . 자동 경로 설치를 비활성화하지 않으면 나중에 삭제하는 기존 경로에서 가상 IP를 가져올 수도 있습니다.

  5. 또는 NM 플러그인 대신 일반 IKE 데몬을 사용하십시오. 특정 원격 트래픽 선택기를 설정하거나 우회 정책을 통해 원하는 트래픽만 터널링하는 더 많은 옵션이 있습니다. 그러나 VPN 연결을 구성/시작하기 위한 GUI는 없습니다(그러나 자동으로 또는 대상 서브넷에 대한 트래픽이 감지되면 연결을 시작할 수 있습니다).

답변2

답변의 완전성을 위해 @ecdsa에게 많은 감사를 드립니다.

저는 네트워킹 초보자이고 솔루션을 구현하는 데 사소함에도 불구하고 너무 많은 어려움을 겪었습니다.

다음 솔루션은 네 번째 제안을 채택하고 다음 단계를 요구합니다.

  1. NetworkManager를 통해 VPN을 켜세요
  2. NetworkManager에서 생성된 경로를 검색하려면 다음 명령을 실행하세요.

    user@laptop:~$ ip route list table 220
    default via 192.168.1.1 dev enp0s31f6 proto static src 172.26.199.15
    
  3. 인터페이스를 기록해 두십시오(enp0s31f6) 및 가상 IP(172.26.199.15)

  4. 사용자 지정 경로를 사용하려면 다음 명령을 사용하여 현재 경로를 플러시하세요.

    sudo ip route flush table 220
    
  5. 다음 명령을 사용하여 사용자 지정 경로를 추가합니다.

    sudo ip route add 10.0.0.0/8 dev enp0s31f6 via 172.26.199.15 table 220
    

이제 주소가 지정된 패킷만10.0.0.0/8VPN을 통해 라우팅됩니다.

관련 정보