백그라운드 서비스의 TCP 트래픽이 데이터를 보내거나 받기 전에 VPN이 실행되고 있는지 확인하고 싶습니다. 이것이 사실이라는 것을 어떻게 보장할 수 있습니까?
세션을 계속하기 전에 "동의함"을 눌러야 하는 Wi-Fi 액세스 포인트(스타벅스)에 연결되어 있는 경우 이 특정 상황을 어떻게 처리합니까?
답변1
어쩌면 iptables를 사용하여 이 작업을 수행할 수도 있습니다. 적어도 "VPN을 통해"가 iptables에서 볼 수 있는 것이라면(예: 별도의 터널 장치인 경우) 다음과 같이 VPN이 장치 "vpn"이라고 가정합니다.
iptables -P 출력이 떨어집니다. iptables -A 출력 -o vpn -j 수락 iptables -A 출력 -o lo -j 수락 #DHCP iptables -A 출력 -p udp --sport 68 --dport 67 -j 수락 # DHCP # "나는 동의한다" iptables -A 출력 -p udp --dport 53 -j ACCEPT # DNS/UDP iptables -A 출력 -p tcp --dport 53 -j ACCEPT # DNS/TCP iptables -A 출력 -p tcp --dport 80 -m 소유자 --uid-소유자귀하의 사용자 ID-j 수락
마지막 세 가지 규칙을 사용하면 "동의함" 페이지에 액세스할 수 있습니다. "동의함" 버튼을 클릭하면 해당 항목을 삭제할 수 있으며 VPN이 시작됩니다. 이 기간 동안 일부 콘텐츠, 특히 DNS 조회가 유출될 수 있다는 점에 유의하시기 바랍니다. 이것을 피하는 것이 훨씬 더 어렵습니다.
(테스트되지 않았으므로 Wireshark를 설치하고 필요한 경우 디버그를 실행하는 것이 좋습니다. 그것이 정확하다고 확신하지만 해당 DHCP 라인에 대해서는 확신이 없습니다. IP 주소를 얻지 못하면 충분하지 않을 수 있습니다. 여기서 문제가 발생합니다)