Merge pull request #60575 from dtzWill/feature/obfs4proxy

obfs4: init at 0.0.10, use in tor-browser-bundle's, tor service

authored by

Joachim F and committed by
GitHub
5ad1e9f0 a8ad94a2

+36 -7
+9 -2
nixos/modules/services/security/tor.nix
··· 81 82 ${optionalString (elem cfg.relay.role ["bridge" "private-bridge"]) '' 83 BridgeRelay 1 84 - ServerTransportPlugin obfs2,obfs3 exec ${pkgs.pythonPackages.obfsproxy}/bin/obfsproxy managed 85 ExtORPort auto 86 ${optionalString (cfg.relay.role == "private-bridge") '' 87 ExtraInfoStatistics 0 ··· 355 <para> 356 Regular bridge. Works like a regular relay, but 357 doesn't list you in the public relay directory and 358 - hides your Tor node behind obfsproxy. 359 </para> 360 361 <para> ··· 422 </varlistentry> 423 </variablelist> 424 ''; 425 }; 426 427 nickname = mkOption {
··· 81 82 ${optionalString (elem cfg.relay.role ["bridge" "private-bridge"]) '' 83 BridgeRelay 1 84 + ServerTransportPlugin ${concatStringsSep "," cfg.relay.bridgeTransports} exec ${obfs4}/bin/obfs4proxy managed 85 ExtORPort auto 86 ${optionalString (cfg.relay.role == "private-bridge") '' 87 ExtraInfoStatistics 0 ··· 355 <para> 356 Regular bridge. Works like a regular relay, but 357 doesn't list you in the public relay directory and 358 + hides your Tor node behind obfs4proxy. 359 </para> 360 361 <para> ··· 422 </varlistentry> 423 </variablelist> 424 ''; 425 + }; 426 + 427 + bridgeTransports = mkOption { 428 + type = types.listOf types.str; 429 + default = ["obfs4"]; 430 + example = ["obfs2" "obfs3" "obfs4" "scramblesuit"]; 431 + description = "List of pluggable transports"; 432 }; 433 434 nickname = mkOption {
+4 -4
pkgs/applications/networking/browsers/tor-browser-bundle/default.nix
··· 34 , rsync 35 36 # Pluggable transports 37 - , obfsproxy 38 39 # Customization 40 , extraPrefs ? "" ··· 171 EOF 172 173 # Configure pluggable transports 174 - cat >>$TBDATA_PATH/torrc-defaults <<EOF 175 - ClientTransportPlugin obfs2,obfs3 exec ${obfsproxy}/bin/obfsproxy managed 176 - EOF 177 178 # Hard-code path to TBB fonts; xref: FONTCONFIG_FILE in the wrapper below 179 sed $bundleData/$bundlePlatform/Data/fontconfig/fonts.conf \
··· 34 , rsync 35 36 # Pluggable transports 37 + , obfs4 38 39 # Customization 40 , extraPrefs ? "" ··· 171 EOF 172 173 # Configure pluggable transports 174 + substituteInPlace $TBDATA_PATH/torrc-defaults \ 175 + --replace "./TorBrowser/Tor/PluggableTransports/obfs4proxy" \ 176 + "${obfs4}/bin/obfs4proxy" 177 178 # Hard-code path to TBB fonts; xref: FONTCONFIG_FILE in the wrapper below 179 sed $bundleData/$bundlePlatform/Data/fontconfig/fonts.conf \
+21
pkgs/tools/networking/obfs4/default.nix
···
··· 1 + { lib, fetchgit, buildGoModule }: 2 + 3 + buildGoModule rec { 4 + pname = "obfs4"; 5 + version = "0.0.10"; 6 + 7 + src = fetchgit { 8 + url = meta.repositories.git; 9 + rev = "refs/tags/${pname}proxy-${version}"; 10 + sha256 = "05aqmw8x8s0yqyqmdj5zcsq06gsbcmrlcd52gaqm20m1pg9503ad"; 11 + }; 12 + 13 + modSha256 = "150kg22kznrdj5icjxk3qd70g7wpq8zd2zklw1y2fgvrggw8zvyv"; 14 + 15 + meta = with lib; { 16 + description = "A pluggable transport proxy"; 17 + homepage = https://www.torproject.org/projects/obfsproxy; 18 + repositories.git = https://git.torproject.org/pluggable-transports/obfs4.git; 19 + maintainers = with maintainers; [ phreedom thoughtpolice ]; 20 + }; 21 + }
+2 -1
pkgs/top-level/all-packages.nix
··· 4787 4788 obexd = callPackage ../tools/bluetooth/obexd { }; 4789 4790 oci-image-tool = callPackage ../tools/misc/oci-image-tool { }; 4791 4792 ocproxy = callPackage ../tools/networking/ocproxy { }; ··· 6097 tor-browser-bundle = callPackage ../applications/networking/browsers/tor-browser-bundle { 6098 stdenv = stdenvNoCC; 6099 tor-browser-unwrapped = firefoxPackages.tor-browser; 6100 - inherit (python27Packages) obfsproxy; 6101 }; 6102 6103 touchegg = callPackage ../tools/inputmethods/touchegg { };
··· 4787 4788 obexd = callPackage ../tools/bluetooth/obexd { }; 4789 4790 + obfs4 = callPackage ../tools/networking/obfs4 { }; 4791 + 4792 oci-image-tool = callPackage ../tools/misc/oci-image-tool { }; 4793 4794 ocproxy = callPackage ../tools/networking/ocproxy { }; ··· 6099 tor-browser-bundle = callPackage ../applications/networking/browsers/tor-browser-bundle { 6100 stdenv = stdenvNoCC; 6101 tor-browser-unwrapped = firefoxPackages.tor-browser; 6102 }; 6103 6104 touchegg = callPackage ../tools/inputmethods/touchegg { };