Commit 8879f1e
committed
vpn/netstate: add WFP leak fence for the Windows gateway client
Windows' strong host send model keeps connections established before the
gateway was enabled flowing out of the physical NIC for their whole
lifetime — the /1 routes never apply to a socket with an already-fixed
source. Browser HTTP/2/HTTP/3 keep-alive pools are the visible case: the
egress IP appears unchanged after enabling. On Linux the weak host model
routes such flows into the tunnel where they die and get re-dialled; on
Windows nothing kills them — a real leak routing cannot fix.
Install a dynamic WFP session alongside the client routes with a BLOCK on
ALE_AUTH_CONNECT_V4/V6 and permits for our own process (app ID), tunnel
egress (TUN LUID) and local destinations. Adding the filter reauthorizes
established flows so pre-gateway connections break and re-establish through
the tunnel, matching Linux. Inbound is intentionally not blocked so
enabling the gateway over an RDP session does not cut it.1 parent 79e660c commit 8879f1e
7 files changed
Lines changed: 599 additions & 61 deletions
File tree
- .github/workflows
- vpn/netstate
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
160 | 160 | | |
161 | 161 | | |
162 | 162 | | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
163 | 166 | | |
164 | 167 | | |
165 | 168 | | |
| |||
183 | 186 | | |
184 | 187 | | |
185 | 188 | | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
186 | 209 | | |
187 | 210 | | |
188 | 211 | | |
| |||
253 | 276 | | |
254 | 277 | | |
255 | 278 | | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
256 | 283 | | |
257 | 284 | | |
258 | 285 | | |
| |||
270 | 297 | | |
271 | 298 | | |
272 | 299 | | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
273 | 305 | | |
274 | 306 | | |
275 | 307 | | |
| |||
279 | 311 | | |
280 | 312 | | |
281 | 313 | | |
282 | | - | |
| 314 | + | |
283 | 315 | | |
284 | 316 | | |
285 | 317 | | |
286 | 318 | | |
287 | 319 | | |
288 | 320 | | |
289 | 321 | | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
290 | 336 | | |
291 | 337 | | |
292 | 338 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
250 | 250 | | |
251 | 251 | | |
252 | 252 | | |
253 | | - | |
| 253 | + | |
254 | 254 | | |
255 | 255 | | |
256 | | - | |
| 256 | + | |
257 | 257 | | |
258 | 258 | | |
259 | 259 | | |
260 | 260 | | |
261 | 261 | | |
262 | 262 | | |
263 | 263 | | |
264 | | - | |
| 264 | + | |
265 | 265 | | |
266 | 266 | | |
267 | 267 | | |
| |||
305 | 305 | | |
306 | 306 | | |
307 | 307 | | |
308 | | - | |
| 308 | + | |
309 | 309 | | |
310 | 310 | | |
311 | 311 | | |
| |||
314 | 314 | | |
315 | 315 | | |
316 | 316 | | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
317 | 320 | | |
318 | 321 | | |
319 | 322 | | |
320 | 323 | | |
321 | | - | |
| 324 | + | |
322 | 325 | | |
| 326 | + | |
323 | 327 | | |
324 | 328 | | |
325 | 329 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
23 | | - | |
24 | | - | |
| 23 | + | |
| 24 | + | |
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
28 | 39 | | |
29 | 40 | | |
30 | 41 | | |
| |||
266 | 277 | | |
267 | 278 | | |
268 | 279 | | |
269 | | - | |
270 | | - | |
271 | | - | |
272 | | - | |
273 | | - | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
274 | 285 | | |
275 | | - | |
| 286 | + | |
276 | 287 | | |
277 | 288 | | |
278 | 289 | | |
279 | 290 | | |
280 | 291 | | |
281 | 292 | | |
282 | 293 | | |
283 | | - | |
284 | | - | |
285 | | - | |
286 | | - | |
287 | | - | |
288 | | - | |
289 | | - | |
290 | | - | |
291 | | - | |
292 | | - | |
293 | | - | |
294 | | - | |
295 | | - | |
296 | | - | |
297 | | - | |
298 | | - | |
299 | | - | |
300 | | - | |
301 | | - | |
302 | | - | |
303 | | - | |
304 | 294 | | |
305 | 295 | | |
306 | 296 | | |
| |||
321 | 311 | | |
322 | 312 | | |
323 | 313 | | |
324 | | - | |
| 314 | + | |
325 | 315 | | |
326 | 316 | | |
327 | 317 | | |
| |||
333 | 323 | | |
334 | 324 | | |
335 | 325 | | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
336 | 360 | | |
337 | 361 | | |
338 | 362 | | |
| |||
0 commit comments