mayfrost-guides/COMMUNICATION.md

11 KiB

COMMUNICATION

Here lies several ways to communicate through different networks.

  1. BROWSER
    1.1. GNU ICECAT
    1.2. ADDONS
    1.3. ABOUT CONFIG
  2. E-MAIL
    2.1. E-MAIL STORAGE FORMATS
    2.2. MUTTRC
  3. USENET
  4. I2P
    4.1. INSTALLATION
    4.2. I2PD
    4.3. REMOTE ACCESS
    4.4. BASIC COMMANDS
    4.5. BROWSING I2P EEPSITES
    4.6. YOUR OWN EEPSITE
    4.7. IRC
    4.8. TORRENTS
    4.8.1 DOWNLOADING
    4.8.2 CREATING
    4.8.3 CONFIGURATION

BROWSER

GNU ICECAT

ADDONS

These addons worked excellent to cover any fingerprinting, until Mozilla decided to break things since Firefox 52.

ABOUT CONFIG

These tips prevent overflow your root directory or getting constantly write and delete to try and kill your drive.

  • Go to about:config
  • Put a 0 to everything that can write to the disk.
  • Limit ram memory and also turn off syncing ect.
  • Make it read only.
  • If you need to save things have a seperate chroot with a seperate physical drive and make that your downloads folder.

E-MAIL

TODO:

  • Set cock.li
  • Configure mutt
  • Create account.
  • Set mutiple accounts
  • Send mail
  • Send attachment
  • To cancel an action in mutt hit CTRL+g
  • Use notmuch
  • set i2p-bote

E-MAIL STORAGE FORMATS

  • MAILDIR = several files
  • MBOX = one file for everything

MUTTRC

Example config with cock.li and gmail. Not quite complete but can work if tweaked.

#---------------------------------------
# ~/.mutt/muttrc settings mutt 1.5.20
#---------------------------------------
#
#---------------------------------------
# One-Time Previous Steps
#---------------------------------------
# Generate keys with proper user
# $ gpg --gen-key
#
# Make proper directory with file:
# $ mkdir ~/.mutt && touch ~/.mutt/.passwd
#
# Put the following inside ~/.mutt/.passwd:
# set cock_pass="password"
# set gmail_pass="password"
#
# Encrypt with proper user:
# $ gpg -r USER1 -e ~/.mutt/.passwd
# $ shred ~/.mutt/.passwd
# $ rm -f ~/.mutt/.passwd
#
#---------------------------------------
# Process the password file first (the "|" pipes to Mutt)
#---------------------------------------
#source "gpg -d ~/.mutt/.passwd.gpg |"
#
#---------------------------------------
# Account Hooks
#---------------------------------------
account-hook . 'unset imap_user imap_pass' # unset first!
account-hook 'imaps://mail.cock.li:993/' "\
             set imap_user=USER1@cock.li imap_pass=`cat ~/.mutt/.cock ` " # imap_pass=$my_cock_pass "
#account-hook 'imaps://USER2@imap.gmail.com/' "\
#              set imap_user=USER2 imap_pass=$my_gmail_pass "
#
#----------------------------------------
# Folders, mailboxes and folder hooks
#----------------------------------------
#
# Setup for USER1:
#----------------------------------------
set folder = imaps://mail.cock.li:993/
mailboxes =Inbox =Sent =Junk =Trash
folder-hook 'imaps://mail.cock.li:993' " \
        set     folder=imaps://mail.cock.li:993/ \
                record=+Sent \
                smtp_url=smtps://$imap_user@mail.cock.li:465 \
                signature=~/.mutt/USER1.sig \
                from='USER1 <USER1@cock.li> ' \
                realname='USER1' "
#
#----------------------------------------
# Setup for USER2:
#----------------------------------------
#set folder="imaps://USER2@imap.gmail.com/"
#mailboxes =INBOX =[Gmail]/Drafts =[Gmail]/'Sent Mail' =[Gmail]/Spam
#folder-hook 'imaps://USER2@imap.gmail.com' " \
#        set     folder=imaps://USER2@imap.gmail.com/ \
#                postponed=+[Gmail]/Drafts \
#                record=+[Gmail]/'Sent Mail' \
#                smtp_url=smtps://USER2@smtp.gmail.com \
#                smtp_pass=$my_gmail_pass \
#                signature=~/.mutt/USER2.sig \
#                from='USER2 <USER2@gmail.com> ' \
#                realname='USER2' "
#
#----------------------------------------
# Macros to make life easier
#----------------------------------------
macro index <esc>1 "y1<return><return>" # ESC+1 takes to first INBOX
#macro index <esc>2 "y5<return><return>" # ESC+2 takes to the second
#
#---------------------------------------
# Mail-check preferences
#---------------------------------------
set timeout=60	#Check for mail every minute
set mail_check=5
#
#---------------------------------------
# Set preferred editor
#---------------------------------------
set editor='vim + -c "set textwidth=72" -c "set wrap" -c "set nocp" -c "?^$"'
# EOF

USENET

The software used is slrn ( with slrnpull and + slrnface).

    1. Create slrn.rc:
set username "desired_username"
set hostname "desired_hostname.invalid"
set replyto "some_name <email@example.com>"
charset display utf8
charset outgoing utf8
setkey group "set_prefix_argument(4); () = select_group();" " "
    1. Set $NNTPSERVER to usenet provider (set in config file):
      NNTPSERVER='server_name' && export NNTPSERVER
    1. Set $EDITOR to preferred text editor (set in slrn.rc file):
      set editor_command "vim '+set tw=72' +%d '%s'"
    1. Create .jnewsrc
      touch .jnewsrc
    1. Create configuration slrn --create
    1. Download a list of newsgroups
      slrn -d

I2P

I2P is a darknet like Tor but with more services like e-mail, IRC, torrents, and others. Once you install it you can configure it by its web interface at http://localhost:7657/home.

INSTALLATION

  • Make directory that will contain I2P
    mkdir ~/.i2p

  • Go to directory
    cd ~/.i2p

  • Download (replace with the newest version)
    wget -c https://download.i2p2.de/releases/<VERSION>/i2pinstall_<VERSION>.jar

  • Run the installer (and select options like the current path)
    java -jar i2pinstall_<VERSION>.jar -console

To uninstall simply delete the directory.

I2PD

I2PD is a version of I2P based on C++ instead of Java. Currently with limited support (no torrents). Therefore is OPTIONAL and its funtion is separated from the rest of the guide.

  • Dependencies:
libboost
cmake
make
  • Download.
    git clone https://github.com/PurpleI2P/i2pd.git
  • Go to directory.
    cd i2pd/build
  • Build.
cmake
make
  • Install
mkdir $HOME/.i2pd
cp i2pd $HOME/.i2pd
cp -R contrib/certificates $HOME/.i2pd
cp contrib/i2pd.conf $HOME/.i2pd
cd $HOME/.i2pd
ulimit -n 4096  # optional file limit
  • To run:
cd $HOME/.i2pd
./i2pd --datadir .
  • To stop:
    kill -INT $( cat /var/run/i2pd/i2pd.pid )

REMOTE ACCESS

To access your I2P router from another computer.

  • On ~/.i2p/clients.config replace
    clientApp.0.args=7657 ::1,127.0.0.1 ./webapps/
  • with
    clientApp.0.args=7657 ::1,127.0.0.1,<REMOTE_IP> ./webapps/
  • where <REMOTE_IP> is the IP of the computer running I2P.
  • Restart I2P.

BASIC COMMANDS

  • See status
    ~/.i2p/i2prouter status

  • Start
    ~/.i2p/i2prouter start

  • Stop
    ~/.i2p/i2prouter stop

  • Stop nicely
    ~/.i2p/i2prouter graceful

  • NOTE: In case you get an error, instead of all the above commands, you'll be able to start I2P using the next:
    ~/.i2p/runplain.sh

You can stop the program from inside the web interface.

BROWSING I2P EEPSITES

Configuration to browse I2P eepsites. To be used with GNU IceCat. Make sure your list of peers is seeded on the web interface configuration page. Address Book is a list of eepsites.

OPTION A

  • Go to "Preferences -> Advanced -> Network -> Connection (Settings)".
  • Check "Manual proxy configuration".
  • Fill with the address:
    127.0.0.1 and port 4444 for HTTP
    127.0.0.1 and port 4445 for HTTPS
    127.0.0.1 and port 4444 for FTP
  • In the "No proxy for" add:
    localhost, 127.0.0.1
  • Mark "Proxy DNS when using SOCKS".

OPTION B

  • Download FoxyProxy.
  • Click on the FoxyProxy icon.
  • Click on "Add New Proxy".
  • On the "General" tab add I2P as the name.
  • Go to "Proxy Details" tab.
  • In "Host or IP Address" field add 127.0.0.1.
  • In the "Port" field 4444.
  • Click on the "URL Patterns" tab.
  • In the "Pattern Name" field add as I2P.
  • In the "URL pattern" field enter *.i2p*.
  • Click "OK".
  • Right click on the FoxyProxy icon.
  • Select "Use proxies baed on their predefined patterns".

YOUR OWN EEPSITE

  • Your own eepsite is already active but invisible, the directory is located at:
    ~/.i2p/eepsite/docroot/

  • The I2P Tunnel Manager contains the setting of your eepsite.

IRC

  • Add the I2P network
    /server add -network i2p localhost 6668

  • Connect
    /connect i2p

  • Save configuration
    /save

  • From now on, to connect simply type
    /connect i2p

TORRENTS

Normal torrents and i2p torrents are used with different clients. Can't use a regular torrent from a normal tracker.

DOWNLOADING

OPTION A:

  • Place your mouse cursor over the magnet icon, right click to disply the menu and click “Copy Link Location".
  • Go to i2psnark in browser (http://localhost:7657/i2psnark/).
  • Paste the magnet URL on the field "From URL"
  • Start the torrent.

OPTION B:

  • Download the .torrent file.
  • Move torrent file it to destination ~/.i2p/i2psnark/.
  • Go to i2psnark in browser or refresh page (http://localhost:7657/i2psnark/).
  • Start the torrent

CREATING

  • Place data in i2psnark directory.
    mv <TORRENT_DATA> ~/.i2p/i2psnark/
  • Go to i2psnark in browser or refresh page (http://localhost:7657/i2psnark/).
  • Fill in the fields.
    Data to seed: ~/.i2p/i2psnark/<TORRENT_DATA>
    Tracker: <SELECT_TRACKER>
  • Create torrent by clicking on "Create Torrent".
  • Start the torrent.

CONFIGURATION

To automatically start torrents once they are added:

  • Go to “Configuration”.
  • Select “Auto start”.
  • Select “Save configuration”.

To change more settings, like download destination for example:

  • Edit configuration file.
    vi ~/.i2p/i2psnark.config.d/i2psnark.config
  • Change field ("i2psnark.dir").
    i2psnark.dir=<DOWNLOAD_DIRECTORY>