martes, 11 de marzo de 2014

SSH proxy + cpuminer socks

En esta oportunidad  contaré  como SSH nos puede ayudar a saltar restricciones y  levantar servicios.
Como es de conocimiento general, intuyo por eso llegaste acá, SSH nos permite crear túneles cifrados para el envió y recepción de información, aumentando considerablemente la seguridad del medio de transporte de esta, eso es uno de los grandes funciones que posee SSH, pero también es posible realizar  otras acciones ,como lo es un proxy. 

De que  sirve que  SSH pueda crear un proxy ? 

Con un proxy SSH existe la posibilidad saltar las restricciones que tengan impuestas en tu país  o lugar de trabajo, por ejemplo cueando estos bloquean  paginas: Informativas,Políticas y/o  de redes sociales,etc .
En este caso el uso que le daremos al proxy será para el minado de cripto-monedas utilizando la funcionalidad fordwarding,  de ssh (para nosotros proxy)

Objetivo
La idea principal  es poder conectarse desde una LAN que no  tiene acceso a Internet, pero si  tiene conexión hacia otra red la cual  si posee el acceso a  Internet,valga la redundancia . Tomaremos como ejemplo el siguiente diagrama:



Descripción: 
En este caso contamos con dos redes  que se conectan mediante el mismo router,  pero como se puede apreciar , la red Beta no posee acceso a Internet pero si tiene acceso a la red Alfa, puede existir escenarios distintos  o similares ( como la interacción de las redes mediante un solo swich y/o hub desde el router,etc) lo ideal es captar la idea de que : La red Beta no tiene contacto con el exterior, solo a las redes internas o quizás a un solo Servidor y/o Computador.
Detalle:
     Red "Alfa"   rango de IPs son : 1               92.168.1.1 - 192.168.1.255
     Red "Beta" cuyo rango de IPs son : 10.49.2.1     -  10.49.2.1.255
     Server A :192.168.1.2 (Linux)
     Server B  : 10.49.2.7 (Linux)

Comencemos ...
 Primero, verificar que los dos Linux tenga instalado el servidor Openssh, si no lo tienen lo instalamos,  tomaremos como referencia las distros más Conocidas:

 Debian :# aptitude install openssh-server openssh-client
 Centos :# yum -y install openssh-server openssh-clients

En Centos hay que aplicar unas instrucciones extra para su funcionamiento:
# chkconfig sshd on  
# service sshd start

Luego de esto chequeamos que este operativo el servicio con un 
# netstat -tulpn | grep :22

Una vez que  nuestro SSH esta funcionando,  procederemos a crear llaves publicas para que no nos pida la password de acceso cuando nos conectemos de un servidor a otro.
Esto es muy importante , lo explicaré más adelante del porque  es necesario el acceso mediante dichas llaves. A tener presente : El Servidor B es quien no posee Internet y por tanto es el que se va a conectar al Servidor A para obtener dicha conexión , de está manera y para que quede más claro El servidor B es quien necesita acceso al servidor A sin solicitud de password,

Para poder lograr esto :
En el servidor B, en la linea de comandos:

#ssh-keygen -t rsa  

Sigues los pasos te va solicitar una passphrase la cual omitimos presionando enter  de esta forma no nos pide password en el futuro para conectarnos, así sucesivamente ej:



 Esta operación te crea un archivo id_rsa.pub , su ruta está indicada : "Your public key has been saved in /home/xxxx/xx/.xx/id_rsa.pub".

El contenido de este archivo hay que agregarlo al servidor A (si queremos acceso a root) en : /root/.ssh/authorized_keys
puedes ocupar SCP para copiar:

scp /home/xxxx/xx/.xx/id_rsa.pub root@192.168.1.2:.ssh/authorized_keys

Despues de esto ya tenemos acceso sin password desde SSH, verifica :
ssh root@192.168.1.2


Proxy con SSH
Una vez que confirmamos que tenemos levantados los 2 servicios SSH  procedemos a levantar el Tunnel proxy mediante sockets, esto debe ser ejecutado en el Servidor B:

ssh -N -D localhost:1080 root@192.168.1.2 -p 22

Esta instrucción   habré el puerto 1080 de la maquina B que  a su vez apunta a la maquina A (192.168.1.2) , con esto ya tenemos listo nuestro proxy .
Para que lo tengas claro, si quieres ocupar el proxy desde la maquina B, debes indicar siempre que las peticiones pasen por localhost:1080

A minar
Para minar utilizaremos cpuminer , el cual nos permite minar sin utilizar GPU:
Para instalar cpuminer :
$ wget http://sourceforge.net/projects/cpuminer/files/pooler-cpuminer-2.3.2.tar
$ tar -xzf pooler-cpuminer-2.3.2.tar.gz
$ cd cpuminer-2.3.2/
$ ./configure CFLAGS="-O3"
$ make

Esto nos compilara un archivo minerd, el cual es el ejecutable , y para comenzar a minar nos unimos a un pool, yo ocupo  coinotron.com.
y ejecutamos

$ /ruta/al/archivo/minerd -a scrypt --proxy=socks5://localhost:1080 -t 4 -s 6 -o stratum+tcp://coinotron.com:3337 -O tu_usuario.3:x

Con esto ya dejamos minando nuestros LTC,
Saludos.






No hay comentarios:

Publicar un comentario