Man
Professional
- Messages
- 3,077
- Reaction score
- 614
- Points
- 113
- Make a folder - that would be your new I2P Tor browser instance folder.
- Download latest linux Tor browser bundle .tar.xz archive somewhere.
- Download I2PdBrowserPortable linux .tar.gz from https://github.com/PurpleI2P/i2pdbrowser open it and extract only i2pd folder from it to the folder from step 1, discard the rest.
- Now you should have a target directory containing only i2pd folder from i2pdbrowser .tar.gz
Script description:
The script is quite simple - first it inquires about Tor browser bundle .tar.xz archive path.
Then it wants you to point to the target directory where do you want your new I2P Tor browser instance to be created(the dir from step 4).
Then it drops some necessary settings in a separate user.js file.
Note that network.proxy.socks_remote_dns = false string resides in a separate mozilla.cfg file on purpose because Tor browser doesn't respect
that particular setting in plain user.js file and turns it back to true should you decide to put it there.
Also our dreaded javascript is locked to disabled in this config just to make sure
The user.js settings are pretty straight forward and cater to the good security practices we should exercise while also providing reasonable
level of security without altering too much the defaults thus skewing your fingerprint.
Then it creates a launch script named i2ptor.sh which first starts i2pd daemon in the background and finally launches the modified Tor browser
in a way that also kills the i2pd daemon when you close it.
Usage:
Execute script, give the paths asked, then just run i2ptor.sh launch script from your target directory and enjoy
Navigate to http://127.0.0.1:7070/ for the webconsole should that need arise.
Do keep in mind that you must give the i2pd daemon in the background adequate time to build tunnels and get acquainted to the network before you start browsing especially the first time you run it.
Bash:
#!/bin/bash
read -e -p "Enter Tor bundle path: " tor_bundle
[[ -z "$tor_bundle" ]] && { echo "Tor bundle path is empty" ; exit 1; }
read -e -p "Enter I2P Tor browser instance path(without end slash): " i2p_tor
[[ -z "$i2p_tor" ]] && { echo "I2P Tor instance path is empty" ; exit 1; }
tar xf $tor_bundle --directory $i2p_tor
cat >> $i2p_tor/tor-browser/Browser/TorBrowser/Data/Browser/profile.default/user.js <<\EOF
user_pref("extensions.torbutton.security_slider", 1);
user_pref("browser.security_level.security_slider", 1);
//I2P settings
user_pref("dom.security.https_only_mode", false);
user_pref("dom.security.https_first_pbm", false);
user_pref("network.proxy.no_proxies_on", "127.0.0.1");
user_pref("extensions.torlauncher.start_tor", false);
user_pref("extensions.torlauncher.prompt_at_startup", false);
user_pref("extensions.torbutton.local_tor_check", false);
user_pref("extensions.torbutton.use_nontor_proxy", true);
user_pref("network.proxy.http", "127.0.0.1");
user_pref("network.proxy.http_port", 4444);
user_pref("network.proxy.ssl", "127.0.0.1");
user_pref("network.proxy.ssl_port", 4444);
EOF
cat >> $i2p_tor/tor-browser/Browser/defaults/pref/local-settings.js <<\EOF
//
pref("general.config.obscure_value", 0);
pref("general.config.filename", "mozilla.cfg");
EOF
cat >> $i2p_tor/tor-browser/Browser/mozilla.cfg <<\EOF
//
lockPref("network.proxy.socks_remote_dns", false);
lockPref("javascript.enabled", false);
EOF
cat >> $i2p_tor/i2ptor.sh <<\EOF
#!/bin/sh
killall i2pd-amd64
sh -c "$i2p_tor/i2pd/i2pd-amd64 --datadir=$i2p_tor/i2pd &"
sh -c "$i2p_tor/tor-browser/Browser/start-tor-browser && killall i2pd-amd64 &"
EOF
chmod +x $i2p_tor/i2ptor.sh
echo "Ready to go !"