You are not logged in.

#1 2018-10-14 22:50:27

blah1703
Member
Registered: 2018-10-14
Posts: 7

[SOLVED] - Setting up irssi/hexchat + tor

So I've been trying to connect to freenode via tor through different IRC clients for TWO days but failed miserably.
I have followed every single step described here and here but none of them worked. I keep getting the message:

"Connecting to 127.0.0.1 (127.0.0.1:9150)
* Connection failed (Connection refused)"

in both clients. I really don't know what to do at this point...

How do I go about this?

Last edited by blah1703 (2018-10-19 01:47:39)

Offline

#2 2018-10-14 22:55:46

circleface
Member
Registered: 2012-05-26
Posts: 639

Re: [SOLVED] - Setting up irssi/hexchat + tor

Is tor running?

Offline

#3 2018-10-14 23:03:09

blah1703
Member
Registered: 2018-10-14
Posts: 7

Re: [SOLVED] - Setting up irssi/hexchat + tor

circleface wrote:

Is tor running?

yep, the browser is open.

Actually I tried to restart it and now i'm getting a different message:

 Proxy traversal failed.
* Stopped previous connection attempt (2821)
".

Last edited by blah1703 (2018-10-15 00:53:38)

Offline

#4 2018-10-15 03:32:29

x33a
Forum Fellow
Registered: 2009-08-15
Posts: 4,587

Re: [SOLVED] - Setting up irssi/hexchat + tor

Post your irssi settings and also the output of:

sudo netstat -tulpen

Also, what do you mean by the browser being open?

Offline

#5 2018-10-15 04:26:39

blah1703
Member
Registered: 2018-10-14
Posts: 7

Re: [SOLVED] - Setting up irssi/hexchat + tor

x33a wrote:

Post your irssi settings and also the output of:

sudo netstat -tulpen

Also, what do you mean by the browser being open?

irssi config file:

servers = (
  { address = "irc.dal.net"; chatnet = "DALnet"; port = "6667"; },
  {
    address = "ssl.efnet.org";
    chatnet = "EFNet";
    port = "9999";
    use_tls = "yes";
  },
  {
    address = "irc.esper.net";
    chatnet = "EsperNet";
    port = "6697";
    use_tls = "yes";
    tls_verify = "yes";
  },
  {
    address = "chat.freenode.net";
    chatnet = "Freenode";
    port = "6697";
    use_tls = "yes";
    tls_verify = "yes";
  },
  {
    address = "irc.gamesurge.net";
    chatnet = "GameSurge";
    port = "6667";
  },
  {
    address = "eu.irc6.net";
    chatnet = "IRCnet";
    port = "6667";
    use_tls = "yes";
  },
  { address = "open.ircnet.net"; chatnet = "IRCnet"; port = "6667"; },
  {
    address = "irc.ircsource.net";
    chatnet = "IRCSource";
    port = "6667";
  },
  { address = "irc.netfuze.net"; chatnet = "NetFuze"; port = "6667"; },
  {
    address = "irc.oftc.net";
    chatnet = "OFTC";
    port = "6697";
    use_tls = "yes";
    tls_verify = "yes";
  },
  { 
    address = "irc.quakenet.org";
    chatnet = "QuakeNet";
    port = "6667";
  },
  {
    address = "irc.rizon.net";
    chatnet = "Rizon";
    port = "6697";
    use_tls = "yes";
    tls_verify = "yes";
  },
  { address = "silc.silcnet.org"; chatnet = "SILC"; port = "706"; },
  { 
    address = "irc.undernet.org";
    chatnet = "Undernet";
    port = "6667";
  },
  {
    address = "10.40.40.40";
    chatnet = "FreenodeTor";
    port = "6697";
    use_tls = "yes";
    tls_cert = "~/.irssi/certs/FreenodeTor.pem";
    tls_verify = "no";
  }
);

chatnets = {
  DALnet = {
    type = "IRC";
    max_kicks = "4";
    max_msgs = "20";
    max_whois = "30";
  };
  EFNet = { 
    type = "IRC";
    max_kicks = "1";
    max_msgs = "4";
    max_whois = "1";
  };
  EsperNet = {
    type = "IRC";
    max_kicks = "1";
    max_msgs = "4";
    max_whois = "1";
  };
  Freenode = {
    type = "IRC";
    max_kicks = "1";
    max_msgs = "4";
    max_whois = "1";
  };
  GameSurge = {
    type = "IRC";
    max_kicks = "1";
    max_msgs = "1";
    max_whois = "1";
  };
  IRCnet = { 
    type = "IRC";
    max_kicks = "1";
    max_msgs = "1";
    max_whois = "1";
  };
  IRCSource = {
    type = "IRC";
    max_kicks = "1";
    max_msgs = "4";
    max_whois = "1";
  };
  NetFuze = {
    type = "IRC";
    max_kicks = "1";
    max_msgs = "1";
    max_whois = "1";
  };
  OFTC = { type = "IRC"; max_kicks = "1"; max_msgs = "1"; max_whois = "1"; };
  QuakeNet = {
    type = "IRC";
    max_kicks = "1";
    max_msgs = "1";
    max_whois = "1";
  };
  Rizon = { 
    type = "IRC";
    max_kicks = "1";
    max_msgs = "1";
    max_whois = "1";
  };
  SILC = { type = "SILC"; };
  Undernet = {
    type = "IRC";
    max_kicks = "1";
    max_msgs = "1";
    max_whois = "1";
  };
  FreenodeTor = {
    type = "IRC";
    sasl_mechanism = "EXTERNAL";
    sasl_username = "testing";
    sasl_password = "testing";
  };
};

channels = (
  { name = "#lobby"; chatnet = "EsperNet"; autojoin = "No"; },
  { name = "#freenode"; chatnet = "Freenode"; autojoin = "No"; },
  { name = "#irssi"; chatnet = "Freenode"; autojoin = "No"; },
  { name = "#gamesurge"; chatnet = "GameSurge"; autojoin = "No"; },
  { name = "#irssi"; chatnet = "IRCNet"; autojoin = "No"; },
  { name = "#ircsource"; chatnet = "IRCSource"; autojoin = "No"; },
  { name = "#netfuze"; chatnet = "NetFuze"; autojoin = "No"; },
  { name = "#oftc"; chatnet = "OFTC"; autojoin = "No"; },
  { name = "silc"; chatnet = "SILC"; autojoin = "No"; }
);

aliases = {
  ATAG = "WINDOW SERVER";
  ADDALLCHANS = "SCRIPT EXEC foreach my \\$channel (Irssi::channels()) { Irssi::command(\"CHANNEL ADD -auto \\$channel->{name} \\$channel->{server}->{tag} \\$channel->{key}\")\\;}";
  B = "BAN";
  BACK = "AWAY";
  BANS = "BAN";
  BYE = "QUIT";
  C = "CLEAR";
  CALC = "EXEC - if command -v bc >/dev/null 2>&1\\; then printf '%s=' '$*'\\; echo '$*' | bc -l\\; else echo bc was not found\\; fi";
  CHAT = "DCC CHAT";
  CUBES = "SCRIPT EXEC Irssi::active_win->print(\"%_bases\", MSGLEVEL_CLIENTCRAP) \\; Irssi::active_win->print( do { join '', map { \"%x0\\${_}0\\$_\" } '0'..'9','A'..'F' }, MSGLEVEL_NEVER | MSGLEVEL_CLIENTCRAP) \\; Irssi::active_win->print(\"%_cubes\", MSGLEVEL_CLIENTCRAP) \\; Irssi::active_win->print( do { my \\$y = \\$_*6 \\; join '', map { my \\$x = \\$_ \\; map { \"%x\\$x\\$_\\$x\\$_\" } @{['0'..'9','A'..'Z']}[\\$y .. \\$y+5] } 1..6 }, MSGLEVEL_NEVER | MSGLEVEL_CLIENTCRAP) for 0..5 \\; Irssi::active_win->print(\"%_grays\", MSGLEVEL_CLIENTCRAP) \\; Irssi::active_win->print( do { join '', map { \"%x7\\${_}7\\$_\" } 'A'..'X' }, MSGLEVEL_NEVER | MSGLEVEL_CLIENTCRAP) \\; Irssi::active_win->print(\"%_mIRC extended colours\", MSGLEVEL_CLIENTCRAP) \\; my \\$x \\; \\$x .= sprintf \"\00399,%02d%02d\",\\$_,\\$_ for 0..15 \\; Irssi::active_win->print(\\$x, MSGLEVEL_NEVER | MSGLEVEL_CLIENTCRAP) \\; for my \\$z (0..6) { my \\$x \\; \\$x .= sprintf \"\00399,%02d%02d\",\\$_,\\$_ for 16+(\\$z*12)..16+(\\$z*12)+11 \\; Irssi::active_win->print(\\$x, MSGLEVEL_NEVER | MSGLEVEL_CLIENTCRAP) }";
  DATE = "TIME";
  DEHIGHLIGHT = "DEHILIGHT";
  DESCRIBE = "ACTION";
  DHL = "DEHILIGHT";
  EXEMPTLIST = "MODE $C +e";
  EXIT = "QUIT";
  GOTO = "SCROLLBACK GOTO";
  HIGHLIGHT = "HILIGHT";
  HL = "HILIGHT";
  HOST = "USERHOST";
  INVITELIST = "MODE $C +I";
  J = "JOIN";
  K = "KICK";
  KB = "KICKBAN";
  KN = "KNOCKOUT";
  LAST = "LASTLOG";
  LEAVE = "PART";
  M = "MSG";
  MUB = "UNBAN *";
  N = "NAMES";
  NMSG = "^MSG";
  P = "PART";
  Q = "QUERY";
  RESET = "SET -default";
  RUN = "SCRIPT LOAD";
  SAY = "MSG *";
  SB = "SCROLLBACK";
  SBAR = "STATUSBAR";
  SIGNOFF = "QUIT";
  SV = "MSG * Irssi $J ($V) - http://www.irssi.org";
  T = "TOPIC";
  UB = "UNBAN";
  UMODE = "MODE $N";
  UNSET = "SET -clear";
  W = "WHO";
  WC = "WINDOW CLOSE";
  WG = "WINDOW GOTO";
  WJOIN = "JOIN -window";
  WI = "WHOIS";
  WII = "WHOIS $0 $0";
  WL = "WINDOW LIST";
  WN = "WINDOW NEW HIDDEN";
  WQUERY = "QUERY -window";
  WW = "WHOWAS";
  1 = "WINDOW GOTO 1";
  2 = "WINDOW GOTO 2";
  3 = "WINDOW GOTO 3";
  4 = "WINDOW GOTO 4";
  5 = "WINDOW GOTO 5";
  6 = "WINDOW GOTO 6";
  7 = "WINDOW GOTO 7";
  8 = "WINDOW GOTO 8";
  9 = "WINDOW GOTO 9";
  10 = "WINDOW GOTO 10";
  11 = "WINDOW GOTO 11";
  12 = "WINDOW GOTO 12";
  13 = "WINDOW GOTO 13";
  14 = "WINDOW GOTO 14";
  15 = "WINDOW GOTO 15";
  16 = "WINDOW GOTO 16";
  17 = "WINDOW GOTO 17";
  18 = "WINDOW GOTO 18";
  19 = "WINDOW GOTO 19";
  20 = "WINDOW GOTO 20";
  21 = "WINDOW GOTO 21";
  22 = "WINDOW GOTO 22";
  23 = "WINDOW GOTO 23";
  24 = "WINDOW GOTO 24";
  25 = "WINDOW GOTO 25";
  26 = "WINDOW GOTO 26";
  27 = "WINDOW GOTO 27";
  28 = "WINDOW GOTO 28";
  29 = "WINDOW GOTO 29";
  30 = "WINDOW GOTO 30";
  31 = "WINDOW GOTO 31";
  32 = "WINDOW GOTO 32";
  33 = "WINDOW GOTO 33";
  34 = "WINDOW GOTO 34";
  35 = "WINDOW GOTO 35";
  36 = "WINDOW GOTO 36";
  37 = "WINDOW GOTO 37";
  38 = "WINDOW GOTO 38";
  39 = "WINDOW GOTO 39";
  40 = "WINDOW GOTO 40";
  41 = "WINDOW GOTO 41";
  42 = "WINDOW GOTO 42";
  43 = "WINDOW GOTO 43";
  44 = "WINDOW GOTO 44";
  45 = "WINDOW GOTO 45";
  46 = "WINDOW GOTO 46";
  47 = "WINDOW GOTO 47";
  48 = "WINDOW GOTO 48";
  49 = "WINDOW GOTO 49";
  50 = "WINDOW GOTO 50";
  51 = "WINDOW GOTO 51";
  52 = "WINDOW GOTO 52";
  53 = "WINDOW GOTO 53";
  54 = "WINDOW GOTO 54";
  55 = "WINDOW GOTO 55";
  56 = "WINDOW GOTO 56";
  57 = "WINDOW GOTO 57";
  58 = "WINDOW GOTO 58";
  59 = "WINDOW GOTO 59";
  60 = "WINDOW GOTO 60";
  61 = "WINDOW GOTO 61";
  62 = "WINDOW GOTO 62";
  63 = "WINDOW GOTO 63";
  64 = "WINDOW GOTO 64";
  65 = "WINDOW GOTO 65";
  66 = "WINDOW GOTO 66";
  67 = "WINDOW GOTO 67";
  68 = "WINDOW GOTO 68";
  69 = "WINDOW GOTO 69";
  70 = "WINDOW GOTO 70";
  71 = "WINDOW GOTO 71";
  72 = "WINDOW GOTO 72";
  73 = "WINDOW GOTO 73";
  74 = "WINDOW GOTO 74";
  75 = "WINDOW GOTO 75";
  76 = "WINDOW GOTO 76";
  77 = "WINDOW GOTO 77";
  78 = "WINDOW GOTO 78";
  79 = "WINDOW GOTO 79";
  80 = "WINDOW GOTO 80";
  81 = "WINDOW GOTO 81";
  82 = "WINDOW GOTO 82";
  83 = "WINDOW GOTO 83";
  84 = "WINDOW GOTO 84";
  85 = "WINDOW GOTO 85";
  86 = "WINDOW GOTO 86";
  87 = "WINDOW GOTO 87";
  88 = "WINDOW GOTO 88";
  89 = "WINDOW GOTO 89";
  90 = "WINDOW GOTO 90";
  91 = "WINDOW GOTO 91";
  92 = "WINDOW GOTO 92";
  93 = "WINDOW GOTO 93";
  94 = "WINDOW GOTO 94";
  95 = "WINDOW GOTO 95";
  96 = "WINDOW GOTO 96";
  97 = "WINDOW GOTO 97";
  98 = "WINDOW GOTO 98";
  99 = "WINDOW GOTO 99";
};

statusbar = {

  items = {

    barstart = "{sbstart}";
    barend = "{sbend}";

    topicbarstart = "{topicsbstart}";
    topicbarend = "{topicsbend}";

    time = "{sb $Z}";
    user = "{sb {sbnickmode $cumode}$N{sbmode $usermode}{sbaway $A}}";

    window = "{sb $winref:$tag/$itemname{sbmode $M}}";
    window_empty = "{sb $winref{sbservertag $tag}}";

    prompt = "{prompt $[.15]itemname}";
    prompt_empty = "{prompt $winname}";

    topic = " $topic";
    topic_empty = " Irssi v$J - http://www.irssi.org";

    lag = "{sb Lag: $0-}";
    act = "{sb Act: $0-}";
    more = "-- more --";
  };

  default = {

    window = {

      disabled = "no";
      type = "window";
      placement = "bottom";
      position = "1";
      visible = "active";

      items = {
        barstart = { priority = "100"; };
        time = { };
        user = { };
        window = { };
        window_empty = { };
        lag = { priority = "-1"; };
        act = { priority = "10"; };
        more = { priority = "-1"; alignment = "right"; };
        barend = { priority = "100"; alignment = "right"; };
      };
    };

    window_inact = {

      type = "window";
      placement = "bottom";
      position = "1";
      visible = "inactive";

      items = {
        barstart = { priority = "100"; };
        window = { };
        window_empty = { };
        more = { priority = "-1"; alignment = "right"; };
        barend = { priority = "100"; alignment = "right"; };
      };
    };

    prompt = {

      type = "root";
      placement = "bottom";
      position = "100";
      visible = "always";

      items = {
        prompt = { priority = "-1"; };
        prompt_empty = { priority = "-1"; };
        input = { priority = "10"; };
      };
    };

    topic = {

      type = "root";
      placement = "top";
      position = "1";
      visible = "always";

      items = {
        topicbarstart = { priority = "100"; };
        topic = { };
        topic_empty = { };
        topicbarend = { priority = "100"; alignment = "right"; };
      };
    };
  };
};
settings = {
  core = {
    real_name = "blah1703";
    user_name = "blah1703";
    nick = "blah1703";
  };
  "fe-text" = { actlist_sort = "refnum"; };
};
ignores = ( { level = "CTCPS"; } );

Output of nestat -tulpen

(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode      PID/Program name    
tcp        0      0 127.0.0.1:9150          0.0.0.0:*               LISTEN      1000       828882     -                   
tcp        0      0 127.0.0.1:9151          0.0.0.0:*               LISTEN      1000       828883     -                   
udp        0      0 0.0.0.0:68              0.0.0.0:*                           0          21883      -                   
udp6       0      0 fe80::32b5:c2ff:fe1:546 :::*                                0          21882      -   

Well, I meant that the tor browser is open and running which I suppose is the same as saying that tor's running, right?

Last edited by blah1703 (2018-10-15 04:29:47)

Offline

#6 2018-10-16 04:40:58

x33a
Forum Fellow
Registered: 2009-08-15
Posts: 4,587

Re: [SOLVED] - Setting up irssi/hexchat + tor

Hmm, I didn't know that you could use torbrowser with other applications. Can you list out all the steps in sequence that you are trying?

Offline

#7 2018-10-18 04:22:27

blah1703
Member
Registered: 2018-10-14
Posts: 7

Re: [SOLVED] - Setting up irssi/hexchat + tor

x33a wrote:

Hmm, I didn't know that you could use torbrowser with other applications.

What do you mean?

Can you list out all the steps in sequence that you are trying?

As I said before, I'm just following the steps on those links.

So the first thing I did was to generate the keys with:

openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:4096 -keyout ~/.config/irssi/certs/freenode.pem -out ~/.config/irssi/certs/freenode.pem

Then I get the fingerprint and add it to my fingerprint list on irssi/hexchat:

openssl x509 -in ~/.config/hexchat/certs/client.pem -outform der | sha1sum -b | cut -d \  -f1 

Next I created a new entry for the onion address and set the login method to use SASL

And finally I just set the port number to 9150 and hostname to 127.0.0.1 like this

Unfortunately the connection fails in hexchat with the following message:

 
*** Notice -- You need to identify via SASL to use this server
* Closing Link: gateway/tor-sasl/account (SASL access only)
* Disconnected (Remote host closed socket) 

Now for irssi, the situation is similar except that I used two additional commands after I create the keys and the fingerprint, namely:

 
/network add -sasl_username mary -sasl_password m1nt_54uc3 -sasl_mechanism EXTERNAL FreenodeTor
 /server add -ssl -ssl_cert ~/.irssi/certs/FreenodeTor.pem -net FreenodeTor 10.40.40.40 6697

After that I add the following entry to /etc/torrc:

mapaddress 10.40.40.40  freenodeok2gncmy.onion

And then I execute

torcsoks irssi

but as with hexchat the connection fails with the following message:

Irssi: Unable to connect server 10.40.40.40 port 6697 [Connection refused]

Last edited by blah1703 (2018-10-18 16:54:01)

Offline

#8 2018-10-19 01:47:19

blah1703
Member
Registered: 2018-10-14
Posts: 7

Re: [SOLVED] - Setting up irssi/hexchat + tor

SOLVED.

The problem was that I tried to use a sha256 fingerprint rather than sha1, namely I was doing:

openssl x509 -in ~/.config/hexchat/certs/freenode.pem -outform der | sha256sum -b | cut -d' ' -f1 

Freenode for some reason freenode doesn't accept sha256 fingerprints, which is kinda weird considering sha1 is weak now.

Anyways though, to fix it, I just used:

openssl x509 -in ~/.config/hexchat/certs/freenode.pem -outform der | sha1sum -b | cut -d' '  -f1

and added it to my fingerprint list:

/msg nickserv CERT ADD <sha1 fingerprint>

Still, the fact that freenode is using sha1 is unnerving.

Last edited by blah1703 (2018-10-19 01:48:53)

Offline

Board footer

Powered by FluxBB