6.11. 연결이 터널을 우회하지 못하도록 전용 라우팅 테이블에 VPN 연결 할당
DHCP 서버와 SLAAC(상태 비저장 주소 자동 구성) 모두 클라이언트의 라우팅 테이블에 경로를 추가할 수 있습니다. 예를 들어 악의적인 DHCP 서버는 이 기능을 사용하여 VPN 터널 대신 물리적 인터페이스를 통해 트래픽을 리디렉션하도록 VPN 연결이 있는 호스트를 강제 수행할 수 있습니다. 이 취약점은 tunnelVision이라고도 하며 CVE-2024-3661 취약점 문서에 설명되어 있습니다.
이 취약점을 완화하기 위해 전용 라우팅 테이블에 VPN 연결을 할당할 수 있습니다. 이렇게 하면 DHCP 구성 또는 SLAAC가 VPN 터널을 위한 네트워크 패킷의 라우팅 결정을 조작하지 않습니다.
사용자 환경에 하나 이상의 조건이 적용되는 경우 단계를 따르십시오.
- 하나 이상의 네트워크 인터페이스에서 DHCP 또는 SLAAC를 사용합니다.
- 네트워크에서는 잘못된 DHCP 서버를 방지하는 DHCP 스누핑과 같은 메커니즘을 사용하지 않습니다.
VPN을 통해 전체 트래픽을 라우팅하면 호스트가 로컬 네트워크 리소스에 액세스할 수 없습니다.
프로세스
- 사용할 라우팅 테이블을 결정합니다. 다음 단계는 표 75을 사용합니다. 기본적으로 RHEL은 테이블 1-254를 사용하지 않으며 이 테이블 중 하나를 사용할 수 있습니다.
VPN 경로를 전용 라우팅 테이블에 배치하도록 VPN 연결 프로필을 구성합니다.
nmcli connection modify <vpn_connection_profile> ipv4.route-table 75 ipv6.route-table 75
# nmcli connection modify <vpn_connection_profile> ipv4.route-table 75 ipv6.route-table 75
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이전 명령에서 사용한 테이블에 대해 우선순위가 낮은 값을 설정합니다.
nmcli connection modify <vpn_connection_profile> ipv4.routing-rules "priority 32345 from all table 75" ipv6.routing-rules "priority 32345 from all table 75"
# nmcli connection modify <vpn_connection_profile> ipv4.routing-rules "priority 32345 from all table 75" ipv6.routing-rules "priority 32345 from all table 75"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 우선순위 값은 1에서 32766 사이의 모든 값일 수 있습니다. 값이 작을수록 우선순위가 높습니다.
VPN 연결을 다시 연결합니다.
nmcli connection down <vpn_connection_profile> nmcli connection up <vpn_connection_profile>
# nmcli connection down <vpn_connection_profile> # nmcli connection up <vpn_connection_profile>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
표 75에 IPv4 경로를 표시합니다.
ip route show table 75
# ip route show table 75 ... 192.0.2.0/24 via 192.0.2.254 dev vpn_device proto static metric 50 default dev vpn_device proto static scope link metric 50
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력은 원격 네트워크에 대한 경로와 기본 게이트웨이가 라우팅 테이블 75에 할당되므로 모든 트래픽이 터널을 통해 라우팅되는지 확인합니다. VPN 연결 프로필에
ipv4.never-default true
를 설정하면 기본 경로가 생성되지 않으므로 이 출력에 표시되지 않습니다.표 75에 IPv6 경로를 표시합니다.
ip -6 route show table 75
# ip -6 route show table 75 ... 2001:db8:1::/64 dev vpn_device proto kernel metric 50 pref medium default dev vpn_device proto static metric 50 pref medium
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력은 원격 네트워크에 대한 경로와 기본 게이트웨이가 라우팅 테이블 75에 할당되므로 모든 트래픽이 터널을 통해 라우팅되는지 확인합니다. VPN 연결 프로필에
ipv6.never-default true
를 설정하면 기본 경로가 생성되지 않으므로 이 출력에 표시되지 않습니다.