Erstellt vor 5 Jahren

Geschlossen vor 7 Monaten

#2417 closed addition (fixed)

openvpn xor patch

Erstellt von: MyRaCoLi Verantwortlicher: er13
Priorität: low Meilenstein: freetz-next
Komponente: packages Version: devel
Stichworte: Beobachter:
Product Id: Firmware Version:

Beschreibung

i took a patch from here: https://github.com/clayface/openvpn_xorpatch/blob/master/openvpn_xor.patch
it stops pattern detection for openvpn traffic.

maybe this can be added to freetz.

Anhänge (2)

300-xor.patch (5.8 KB) - hinzugefügt von MyRaCoLi vor 5 Jahren.
300-xor_scramble.patch (7.0 KB) - hinzugefügt von mrspeccy vor 7 Monaten.
Obfuscation path for OpenVPN 2.4.4

Alle Anhänge herunterladen als: .zip

Änderungshistorie (16)

Geändert vor 5 Jahren durch MyRaCoLi

comment:1 Geändert vor 5 Jahren durch Whoopie

If we add this patch, then OpenVPN can't be used with SSLH anymore because SSLH can't detect it. Why is this patch useful?

comment:2 Geändert vor 5 Jahren durch MyRaCoLi

that's right but for me it's useful for chinese great firewall. i don't know how to make such a patch dependant on a menuconfig selection.
alternatively i could use obfsproxy…

comment:3 Geändert vor 5 Jahren durch MaxMuster

You might try "$(PKG)_CONDITIONAL_PATCHES" (just written down, not tested):

  • Define a variable im Config.in, say FREETZ_PACKAGE_OPENVPN_USEXOR
  • In "patches" add a directory "XOR" and put "300-xor.patch" there
  • extend the mk file with $(PKG)_CONDITIONAL_PATCHES+=$(if $(FREETZ_PACKAGE_OPENVPN_USEXOR), XOR,)

comment:4 Geändert vor 4 Jahren durch er13

The last else in the following fragment looks strange to me. Looks like curly brackets are missing.

+	else if (streq (p[1], "obfuscate"))
+	{
+	options->ce.xormethod=4;
+	options->ce.xormask = p[2];
+	options->ce.xormasklen = strlen(options->ce.xormask);
+	}
+	else
+	options->ce.xormask = p[1];
+	options->ce.xormasklen = strlen(options->ce.xormask);

comment:5 Geändert vor 4 Jahren durch ralf

Yes, proper indentation and braces semm to be missing.

VPN is supposed to be encrypted anyway, so what is the benefit of this xor?

comment:6 Geändert vor 4 Jahren durch er13

As far as I understand the purpose of this patch is to obfuscate OpenVPN traffic to prevent it from being blocked.

Zuletzt geändert vor 4 Jahren von er13 (vorher) (Diff)

comment:7 Geändert vor 4 Jahren durch er13

In 11883:

OpenVPN-2.3.x:

  • add optional support for traffic obfuscation
  • compile-tested only
  • refs #2417

comment:8 Geändert vor 4 Jahren durch er13

@MyRaCoLi: please test and provide feedback - I've modified the original patch a bit.

As far as I understand the option should be enabled on both sides using exactly the same value, right?

comment:9 Geändert vor 4 Jahren durch er13

  • Status von new nach assigned geändert
  • Verantwortlicher auf er13 gesetzt

comment:10 Geändert vor 4 Jahren durch er13

@MyRaCoLi: ping, could we close the ticket?

comment:11 Geändert vor 4 Jahren durch MyRaCoLi

works fine, thanks, can be closed.

comment:12 Geändert vor 4 Jahren durch er13

  • Lösung auf fixed gesetzt
  • Status von assigned nach closed geändert

comment:13 Geändert vor 7 Monaten durch mrspeccy

  • Lösung fixed gelöscht
  • Status von closed nach reopened geändert

I downloaded the latest version of the patch from the URL mentioned in the description of the ticket and applied it to OpenVPN 2.4.4. It works fine on my side, so I suggest adding the patch also with respect to OpenVPN 2.4.4 to Freetz. The updated patch has been attached.

Zuletzt geändert vor 7 Monaten von mrspeccy (vorher) (Diff)

Geändert vor 7 Monaten durch mrspeccy

Obfuscation path for OpenVPN 2.4.4

comment:14 Geändert vor 7 Monaten durch Whoopie

  • Lösung auf fixed gesetzt
  • Status von reopened nach closed geändert

In 14602:

openvpn:

  • bump to version 2.4.5
  • add xor patch (by mrspeccy, closes #2417)
  • make version 2.4 the default version
Hinweis: Hilfe zur Verwendung von Tickets finden Sie in TracTickets.