[Tutorial] IRC Proxy a través de Tor

Iniciado por vk496, Julio 06, 2014, 07:51:25 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Con esto no tendréis excusas para no estar en el IRC del foro...   ^-^

Para empezar... De que me sirve un IRC Proxy o también conocido como Bouncer?
El motivo principal es para evitar perder la conversación. Si te vas del canal, no se guarda el log de la conversación en ningún lado, por lo que no vas a saber que se ha tratado en tu ausencia.



Para esto hace falta tener un servidor consumiendo energía todo el día... A no ser que tengas OpenWRT  >:(

Usaremos ZNC, que viene bastante completo en los repositorios de OpenWRT.

Aquí van los comandos:

Código: php
opkg update

Código: php
opkg install znc znc-mod-cert znc-mod-certauth znc-mod-chansaver znc-mod-perform znc-mod-sasl znc-mod-simple-away znc-mod-webadmin


Creamos el directorio:

Código: php
mkdir -p ~/.znc/configs

Código: php
mkdir -p /var/run/znc


Creamos el archivo znc.conf dentro de esa ruta

Citar// WARNING
//
// Do NOT edit this file while ZNC is running!
// Use webadmin or *controlpanel instead.
//
// Altering this file by hand will forfeit all support.
//
// But if you feel risky, you might want to read help on /znc saveconfig and /znc rehash.
// Also check No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

AnonIPLimit = 10
ConnectDelay = 5
LoadModule = webadmin
LoadModule = certauth
MaxBufferSize = 20000
PidFile = /var/run/znc/znc.pid
ProtectWebSessions = true
SSLCertFile = /root/.znc/znc.pem
ServerThrottle = 30
Skin = dark-clouds
StatusPrefix = *
Version = 1.2

<Listener listener0>
       AllowIRC = true
       AllowWeb = true
       IPv4 = true
       IPv6 = true
       Port = 8000
       SSL = true
</Listener>

<User vk496>
       Admin = true
       Allow = *
       AltNick = vk496_
       AppendTimestamp = false
       AutoClearChanBuffer = false
       BindHost = 0.0.0.0
       Buffer = 5000
       ChanModes = +stn
       DenyLoadMod = false
       DenySetBindHost = false
       Ident = vk496
       JoinTries = 10
       LoadModule = cert
       LoadModule = perform
       LoadModule = chansaver
       MaxJoins = 0
       MaxNetworks = 1
       MultiClients = true
       Nick = vk496
       PrependTimestamp = true
       QuitMsg = Bye ~ Happy hacking!
       RealName = La muchachada
       TimestampFormat = [%H:%M:%S]

       <Network freenode>
               FloodBurst = 4
               FloodRate = 1.00
               IRCConnectEnabled = true
               LoadModule = simple_away -timer 0 Not online now jejeje
               LoadModule = sasl
               Server = No tienes permitido ver los links. Registrarse o Entrar a mi cuenta 7000

               <Chan #underc0de>
               </Chan>

       </Network>

       <Pass password>
               Hash = blablabla
               Method = SHA256
               Salt = blablabla
       </Pass>
</User>

Donde veáis vk496, lo cambiáis por un nick vuestro

A continuación, generamos el certificado SSL

Código: php
znc -p


Posteriormente, tenemos que crear una contraseña que usaremos para autentificarnos a nuestro servidor. Lo hacemos con:

Código: php
znc -s


Nos devolverá algo asi

Citar<Pass password>
       Method = sha256
       Hash = cc96913905b41ee13b86b765714715a0d916e8b436acd57777d7c8c631b4f4a5
       Salt = p),VU7Q4,91V4u/6*VrF
</Pass>

Debemos abrir nuestro znc.conf y pegarlo encima de

Citar<Pass password>
               Hash = blablabla
               Method = SHA256
               Salt = blablabla
       </Pass>


La contraseña que hemos generado nos servirá para acceder a nuestro servidor.

Con todo esto listo, ejecutamos nuestro IRC Proxy con:

Código: php
znc -r


Y usamos cualquier cliente IRC (HexChat de Windows por ejemplo). Nuestro servidor tiene la IP de nuestro router (en mi caso 192.168.1.1) y usa el puerto 8000. Importante marcar que usa SSL y que se acepten los certificados inválidos.


Cuando entréis, observaréis que tardara un poquito, pero enseguida abrirá el canal que le indicamos en znc.conf (#underc0de).

Ahora viene "el problema"... Mi IP sale allí, y no me gusta. No me gusta nada.



Para solucionarlo, primero debemos crear una cuenta en freenode (buscaros la vida en Google, que tutoriales de ello sobran).

Una vez listo, metemos mas comandos:

Código: php
opkg install tor socat


Código: php
mkdir -p /var/tor


Editamos el archivo /etc/tor/torrc y dejamos únicamente esto:

CitarDataDirectory /var/tor
User root

SocksListenAddress 192.168.1.1

En donde 192.168.1.1 es la IP de nuestro router.

ejecutamos tor con:

Código: php
tor


Posteriormente ejecutamos el siguiente comando:

Código: php
socat TCP4-LISTEN:4321,fork SOCKS4A:192.168.1.1:frxleqtzgvwkv7oz.onion:6667,socksport=9050 &


En donde 192.168.1.1 es la IP de nuestro router.

Cerramos znc con:

Código: php
killall znc


Editamos el archivo znc.conf y cambiamos esto:

CitarServer = No tienes permitido ver los links. Registrarse o Entrar a mi cuenta 7000

por esto

CitarServer = 192.168.1.1 4321

En donde 192.168.1.1 es la IP de nuestro router.

Ejecutamos znc:

Código: php
znc -r


Abrimos nuestro cliente IRC y nos conectamos a nuestro Bouncer. Veréis que llega un momento en el que se os abren dos conversaciones *status y *sasl

Nos dirigimos a *sasl y ejecutamos el siguiente comando en el cliente IRC

Citar/msg *sasl Set <user> <pass>

Donde <user> es vuestro usuario de freenode y <pass> es la contraseña.

Con esto debería conectarse a través de la red Tor  >:( >:( >:(

Para comprobarlo, ponéis esto en cualquier canal

Citar/whois <user>

En <user> es vuestro usuario. Os devolverá algo así

Citar[vk496] is connecting from *@gateway/tor-sasl/vk496 255.255.255.255


Aportazo, seguramente siga el tutorial y a ver si me sale... Jajaja

Muchas gracias vk496



Excelente bro! Ya no hay escusas para no estar en el irc
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta