저는 네트워킹에 특별한 역량이 없기 때문에 최선을 다해 제 요구 사항을 설명하겠습니다. 내 Linux 노트북에서는 IPsec을 사용하여 특정 VPN에 연결하기 위해 StrongSwan(NetworkManager 포함)을 실행하고 있습니다. 이 VPN을 사용하면 이러한 종류의 IP에 접근할 수 있습니다 10.*.*.*
.
이제 내 문제는 VPN을 실행할 때 모든 트래픽이 VPN을 통과하지만 해당 IP( 10.*.*.*
)로 주소가 지정된 패킷만 VPN으로 라우팅하는 것을 선호한다는 것입니다.
내가 어떻게 해? 누군가 나에게 간단한 가이드를 제공하거나 필요한 구성과 적용 방법을 공유할 수 있습니까?
답변1
StrongSwan의 NetworkManager 플러그인은 현재 제안된 트래픽 선택기(터널링되는 트래픽을 결정하는) 변경을 허용하지 않습니다. 따라서 항상 모든 것을 터널링하도록 제안하며 서버가 트래픽 선택기(아래 참조)를 좁히지 않는 한 이것이 협상됩니다.
이 문제를 해결하는 가능한 방법은 다음과 같습니다.
- 가능하다면 서버의 구성을 변경하여 자체적으로 축소된 트래픽 선택기 세트를 통해 클라이언트의 제안 범위를 원하는 서브넷으로 좁힐 수 있습니다. 일부 클라이언트는 이를 처리할 수 있으며 StrongSwan의 NM 플러그인은 괜찮을 것입니다(strongSwan wiki에서 찾을 수 있음).분할 터널링에 대한 추가 정보그리고 다른 클라이언트와의 잠재적인 문제).
- VPN에 연결되어 있는 동안 로컬 LAN에 액세스하는 데만 관심이 있는 경우 다음을 로드할 수 있습니다.우회 LAN플러그인에서카론-nm로컬로 연결된 모든 서브넷에 대해 우회 IPsec 정책을 자동으로 설치하는 데몬(strongSwan NM 플러그인의 백엔드).
- 이전 옵션과 유사하게 일반 IKE 데몬(카론또는charon 시스템, swanctl.conf 또는 ipsec.conf를 통해 구성) VPN을 통해 액세스하지 않으려는 서브넷에 대한 우회 IPsec 정책을 설치합니다(로컬로 연결되지 않은 경우에도 작동함).
방지카론-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를 가져올 수도 있습니다.- 또는 NM 플러그인 대신 일반 IKE 데몬을 사용하십시오. 특정 원격 트래픽 선택기를 설정하거나 우회 정책을 통해 원하는 트래픽만 터널링하는 더 많은 옵션이 있습니다. 그러나 VPN 연결을 구성/시작하기 위한 GUI는 없습니다(그러나 자동으로 또는 대상 서브넷에 대한 트래픽이 감지되면 연결을 시작할 수 있습니다).
답변2
답변의 완전성을 위해 @ecdsa에게 많은 감사를 드립니다.
저는 네트워킹 초보자이고 솔루션을 구현하는 데 사소함에도 불구하고 너무 많은 어려움을 겪었습니다.
다음 솔루션은 네 번째 제안을 채택하고 다음 단계를 요구합니다.
- NetworkManager를 통해 VPN을 켜세요
NetworkManager에서 생성된 경로를 검색하려면 다음 명령을 실행하세요.
user@laptop:~$ ip route list table 220 default via 192.168.1.1 dev enp0s31f6 proto static src 172.26.199.15
인터페이스를 기록해 두십시오(enp0s31f6) 및 가상 IP(172.26.199.15)
사용자 지정 경로를 사용하려면 다음 명령을 사용하여 현재 경로를 플러시하세요.
sudo ip route flush table 220
다음 명령을 사용하여 사용자 지정 경로를 추가합니다.
sudo ip route add 10.0.0.0/8 dev enp0s31f6 via 172.26.199.15 table 220
이제 주소가 지정된 패킷만10.0.0.0/8VPN을 통해 라우팅됩니다.